Skip to content
This repository has been archived by the owner on Jan 16, 2025. It is now read-only.

Commit

Permalink
Address is handled by azf-dsf
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgtho committed Dec 10, 2021
1 parent 418a6d9 commit 3c726a4
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 112 deletions.
7 changes: 4 additions & 3 deletions lib/archive/syncPrivatePerson.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ module.exports = async personData => {
if (privatePersonRes.length === 1 && privatePersonRes[0].PersonalIdNumber) {
if (privatePersonRes[0].PrivateAddress && privatePersonRes[0].PrivateAddress.StreetAddress && !(privatePersonRes[0].PrivateAddress.StreetAddress.toLowerCase().includes('sperret'))) {
const updatedPrivatePerson = await callTemplateData('elevmappe', 'update-private-person', { ...personData, recno: privatePersonRes[0].Recno }) // Returns recno of updated privatePerson
if (!isNaN(updatedPrivatePerson)) {
if (Number(updatedPrivatePerson)) {
person.recno = updatedPrivatePerson
person.updated = true
}
Expand All @@ -86,10 +86,11 @@ module.exports = async personData => {
} else {
// Trenger ikke oppdatere - har allerede sperret adresse
logger('info', ['syncPrivatePerson', `Found address block both in DSF and P360, will not update privatePerson with "Recno: ${privatePersonRes[0].Recno}"`])
person.recno = privatePersonRes[0].Recno
}
} else if (privatePersonRes.length === 0) {
const newPrivatePersonRecno = await callTemplateData('elevmappe', 'create-private-person', personData) // Returns recno of created privatePerson
if (!isNaN(newPrivatePersonRecno)) {
if (Number(newPrivatePersonRecno)) {
person.recno = newPrivatePersonRecno
}
// Send mail til 360 administrator om at det er opprettet privatperson med adressesperre
Expand All @@ -99,7 +100,7 @@ module.exports = async personData => {
subject: 'VIKTIG: Opprettet privatperson med adressesperre!',
body: mailStrBlock
})
logger('info', ['syncPrivatePerson', `Found address block in DSF but not privatePerson in P360. Created PrivatePerson with "Recno: ${person.recno}" and sent mail to address block-contact`])
logger('info', ['syncPrivatePerson', `Found address block in DSF but no existing privatePerson in P360. Created PrivatePerson with "Recno: ${person.recno}" and sent mail to address block-contact`])
} else {
// Send mail til 360 administrator om at det er funnet flere privatpersoner med samme fnr og adressesperre i p360
logger('error', ['syncPrivatePerson', `Several privatePersons found on social security number: ${ssn}, send to arkiv-administrator for handling`])
Expand Down
2 changes: 0 additions & 2 deletions lib/dsf/get-dsf-data.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ module.exports = async dsfSearchParameter => {

try {
const { data } = await axios.post(url, payload, { headers: { Authorization: generateSystemJwt(jwtSecret) } })
if (data.RESULT.ANTA === '0000') throw new HTTPError(404, 'Could not find any persons with given identification')
if (data.RESULT.ANTA) throw new HTTPError(404, 'Found several persons with given identification, cannot automate')
if (dsfSearchParameter.snn) data.RESULT.HOV.oldSsn = dsfSearchParameter.snn // Hvis ikke sendt med oldssn, sett searchparameter.ssn til oldssn, det hender man får det nye rett fra dsf
if (dsfSearchParameter.oldSsn) data.RESULT.HOV.oldSsn = dsfSearchParameter.oldSsn
return data
Expand Down
61 changes: 10 additions & 51 deletions lib/dsf/repackDsfObject.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,15 @@
const capitalize = (string) => {
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase()
}

const capitalizeWords = (string) => {
const stringList = string.split(' ')
const res = []
for (const str of stringList) {
const dashList = str.split('-') // Some names have dashes in them, we want to capitalize here as well
const res2 = []
for (const dash of dashList) {
res2.push(capitalize(dash))
}
res.push(res2.join('-'))
}
return res.join(' ')
}

module.exports = (dsfPerson) => {
const repacked = {
ssn: `${dsfPerson.FODT}${dsfPerson.PERS}`,
oldSsn: dsfPerson.oldSsn ? dsfPerson.oldSsn : `${dsfPerson.FODT}${dsfPerson.PERS}`, // fanger opp om det følger med et gammelt fnr her
firstName: dsfPerson['NAVN-M'] ? `${capitalizeWords(dsfPerson['NAVN-F'])} ${capitalizeWords(dsfPerson['NAVN-M'])}` : `${capitalizeWords(dsfPerson['NAVN-F'])}`,
lastName: capitalizeWords(dsfPerson['NAVN-S']),
streetAddress: capitalize(dsfPerson.SPES),
zipCode: '_9999',
zipPlace: 'UKJENT',
addressType: 'normal',
addressCode: Number.parseInt(dsfPerson['SPES-KD'])
}

const addressBlockCodes = ['6', '7']

if (addressBlockCodes.includes(dsfPerson['SPES-KD'])) {
repacked.addressType = capitalize(dsfPerson.SPES)
// postStreetAddress: adrBlock.postbox,
// postZipCode: adrBlock.zipcode,
// postZipPlace: adrBlock.zipplace,
} else if (dsfPerson['SPES-KD'] === '4') {
repacked.addressType = 'klientadresse'
// postStreetAddress: dsfPerson['ADR-T'] ? `${dsfPerson['ADR-T']}\n${capitalizeWords(dsfPerson.ADR)}` : capitalizeWords(dsfPerson.ADR),
// postZipCode: dsfPerson.POSTN,
// postZipPlace: capitalizeWords(dsfPerson.POSTS),
} else if (dsfPerson.STAT === 'UTVANDRET') { // Må håndteres manuelt til vi finner ut hvordan utenlandske adresser fungerer i DSF -> 360 -> SvarUT...
repacked.streetAddress = 'Utvandret'
repacked.addressType = 'utvandret'
} else {
if (dsfPerson.ADR) repacked.streetAddress = capitalizeWords(dsfPerson.ADR)
if (dsfPerson.ADR1) repacked.streetAddress = capitalizeWords(dsfPerson.ADR1)
if (dsfPerson.POSTN) repacked.zipCode = capitalizeWords(dsfPerson.POSTN)
if (dsfPerson.ADR2) repacked.zipCode = capitalizeWords(dsfPerson.ADR2)
if (dsfPerson.POSTS) repacked.zipPlace = capitalizeWords(dsfPerson.POSTS)
if (dsfPerson.ADR3) repacked.zipPlace = capitalizeWords(dsfPerson.ADR3)
ssn: dsfPerson.FNR,
oldSsn: dsfPerson.oldSsn ? dsfPerson.oldSsn : dsfPerson.FNR, // fanger opp om det følger med et gammelt fnr her
firstName: dsfPerson['NAVN-M'] ? `${dsfPerson['NAVN-F']} ${dsfPerson['NAVN-M']}` : `${dsfPerson['NAVN-F']}`,
lastName: dsfPerson['NAVN-S'],
streetAddress: dsfPerson.postAdresse.ADR,
zipCode: dsfPerson.postAdresse.POSTN,
zipPlace: dsfPerson.postAdresse.POSTS,
addressType: dsfPerson.SPES,
addressCode: Number.parseInt(dsfPerson['SPES-KD']),
residentialAddress: dsfPerson.bostedsAdresse
}

return repacked
Expand Down
76 changes: 20 additions & 56 deletions test/repackDsfObject.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,29 @@ const person = {
PERS: '98053',
INR: '25815100000',
STAT: 'BOSATT',
'NAVN-S': 'TUNNEL',
'NAVN-F': 'OFFISIELL',
'NAVN-M': 'BANE',
NAVN: 'TUNNEL OFFISIELL BANE',
ADR: 'HUSØYVEIEN 28',
'NAVN-S': 'Tunnel',
'NAVN-F': 'Offisiell',
'NAVN-M': 'Bane',
NAVN: 'Tunnel Offisiell Bane',
ADR: 'Husøyveien 28',
POSTN: '3132',
POSTS: 'HUSØYSUND',
ADR1: 'Husøygata',
ADR2: '29',
ADR3: '3133 HUSØYVIK',
'SPES-KD': '0',
SPES: 'VANLIG BOSATT'
}

const personOn4 = {
...person,
'SPES-KD': '4',
SPES: 'KLIENTADRESSE'
}

const personOn6 = {
...person,
'SPES-KD': '6',
SPES: 'SPERRET ADRESSE, STRENGT FORTROLIG'
}

const personOn7 = {
...person,
'SPES-KD': '7',
SPES: 'SPERRET ADRESSE, FORTROLIG'
SPES: 'VANLIG BOSATT',
FNR: '25815198053',
postAdresse: {
ADR: 'Husøygata 29',
POSTN: '3133',
POSTS: 'HUSØYVIK'
},
bostedsAdresse: {
ADR: 'Husøyveien 28',
POSTN: '3132',
POSTS: 'HUSØYSUND'
}
}

const expectedProperties = [
Expand Down Expand Up @@ -74,35 +70,3 @@ test('Repack gives back an object with correct properties and layout', () => {
expect(typeof repacked).toBe('object')
expectedProperties.forEach(({ name, type }) => expect(typeof repacked[name]).toBe(type))
})

test('SPES-KD 0 returns object with real streetAddress', () => {
const repacked = repack(person)
expect(repacked.streetAddress.toLowerCase()).toBe(person.ADR.toLowerCase())
expect(repacked.zipCode).toBe(person.POSTN)
expect(repacked.zipPlace.toLowerCase()).toBe(person.POSTS.toLowerCase())
expect(repacked.addressType).toBe('normal')
})

test('SPES-KD 4 returns object without real streetAddress', () => {
const repacked = repack(personOn4)
expect(repacked.streetAddress).toBe('Klientadresse')
expect(repacked.zipCode).toBe('_9999')
expect(repacked.zipPlace).toBe('UKJENT')
expect(repacked.addressType).toBe('klientadresse')
})

test('SPES-KD 6 returns object without real streetAddress', () => {
const repacked = repack(personOn6)
expect(repacked.streetAddress.toLowerCase()).toBe(personOn6.SPES.toLowerCase())
expect(repacked.zipCode).toBe('_9999')
expect(repacked.zipPlace).toBe('UKJENT')
expect(repacked.addressType).toBe('Sperret adresse, strengt fortrolig')
})

test('SPES-KD 7 returns object without real streetAddress', () => {
const repacked = repack(personOn7)
expect(repacked.streetAddress.toLowerCase()).toBe(personOn7.SPES.toLowerCase())
expect(repacked.zipCode).toBe('_9999')
expect(repacked.zipPlace).toBe('UKJENT')
expect(repacked.addressType).toBe('Sperret adresse, fortrolig')
})

0 comments on commit 3c726a4

Please sign in to comment.