Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 0 additions & 26 deletions src/repositories/baseOrgRepository.js
Original file line number Diff line number Diff line change
Expand Up @@ -924,32 +924,6 @@ class BaseOrgRepository extends BaseRepository {
? applyLeanLegacyOrgDefaults(data)
: applyLeanRegistryOrgDefaults(data)

if (returnLegacyFormat) {
const parentOrg = await BaseOrgModel.findOne({ oversees: result.UUID }).select('UUID').lean()
if (parentOrg) {
result.reports_to = parentOrg.UUID
}

const relatedOrgUUIDs = new Set()
if (Array.isArray(result.oversees)) {
result.oversees.forEach(uuid => relatedOrgUUIDs.add(uuid))
}
if (result.reports_to) {
relatedOrgUUIDs.add(result.reports_to)
}

if (relatedOrgUUIDs.size > 0) {
const relatedOrgs = await BaseOrgModel.find({ UUID: { $in: Array.from(relatedOrgUUIDs) } }).select('short_name long_name UUID').lean()
if (relatedOrgs.length > 0) {
result._relatedOrganizations = relatedOrgs.map(org => ({
short_name: org.short_name,
long_name: org.long_name,
UUID: org.UUID
}))
}
}
}

if (result.reports_to === null) delete result.reports_to
if (result.top_level_root === null) delete result.top_level_root

Expand Down
26 changes: 26 additions & 0 deletions test/integration-tests/registry-org/rootOrgTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,32 @@ describe('Testing ROOT Organization Type', () => {
})
})

for (const identifierField of ['short_name', 'UUID']) {
it(`Omits registry relationships from legacy organization details retrieved by ${identifierField}`, async () => {
const legacyResponse = await chai.request(app)
.get(`/api/org/${reportingOrg[identifierField]}`)
.set(secretariatHeaders)

expect(legacyResponse).to.have.status(200)
expect(legacyResponse.body.UUID).to.equal(reportingOrg.UUID)
expect(legacyResponse.body.short_name).to.equal(reportingOrg.short_name)
expect(legacyResponse.body.name).to.equal(reportingOrg.long_name)
expect(legacyResponse.body.authority).to.deep.equal({ active_roles: ['CNA'] })
expect(legacyResponse.body.policies.id_quota).to.equal(100)
expect(legacyResponse.body).to.not.have.any.keys('reports_to', '_relatedOrganizations', '_hierarchy')

const registryResponse = await chai.request(app)
.get(`/api/registry/org/${reportingOrg[identifierField]}`)
.set(secretariatHeaders)

expect(registryResponse).to.have.status(200)
expect(registryResponse.body.reports_to).to.equal(secondRootOrg.short_name)
expect(registryResponse.body.top_level_root).to.equal(topLevelRootOrg.short_name)
expect(registryResponse.body._hierarchy).to.be.an('array').that.is.not.empty
expect(registryResponse.body).to.not.have.property('_relatedOrganizations')
})
}

it('Preserves overseen organizations when updating a ROOT that reports to another ROOT', async () => {
await chai.request(app)
.put(`/api/registry/org/${secondRootOrg.short_name}`)
Expand Down
Loading