UNPKG

tfk-arkiv-metadatagenerator

Version:
101 lines (95 loc) 3.62 kB
'use strict' function getUnregisteredContacts (contact) { return { UnregisteredContactParameter: [{ Address: contact.address, ContactCompanyName: contact.name, ContactName: contact.name, IsUnofficial: false, ReferenceNumber: contact.enterpriseNumber, Role: contact.role || 'Mottaker', ZipCode: contact.zipCode, ZipPlace: contact.zipPlace }] } } module.exports = (options) => { if (!options) { throw new Error('Missing required input: options') } if (!options.title) { throw new Error('Missing required input: options.title') } if (!options.unofficialTitle) { throw new Error('Missing required input: options.unofficialTitle') } if (!options.accessCode) { throw new Error('Missing required input: options.accessCode') } if (!options.file) { throw new Error('Missing required input: options.file') } if (!options.file.title) { throw new Error('Missing required input: options.file.title') } if (!options.file.data) { throw new Error('Missing required input: options.file.data') } if (!options.caseNumber) { throw new Error('Missing required input: options.caseNumber') } if (!options.category) { throw new Error('Missing required input: options.category') } const meta = { clientService: 'DocumentService', clientMethod: 'CreateDocument', args: { parameter: { AccessCode: options.accessCode || 'J', // Codetable: Accesscode AccessGroup: options.accessGroup || 'Alle', // Codetable: Tilgangsgruppe navn Category: options.category, // Codetable: Document category Contacts: [ { DocumentContactParameter: options.contacts } ], DocumentDate: options.documentCreated || undefined, Files: [ { CreateFileParameter: { Base64Data: options.file.data, // Must be base64 encoded Category: options.file.category || '1', // Codetable: File category Format: options.file.format || 'pdf', // Codetable: File format Status: options.file.status || 'F', // Codetable: FileStatus Title: options.file.title, VersionFormat: options.file.versionFormat || 'A' // Codetable: File status } } ], Paragraph: options.paragraph || undefined, // Codetable: Paragraph ResponsibleEnterpriseRecno: options.responsibleEnterpriseRecno || undefined, // Recnr ansvarlig virksomhet ResponsibleEnterpriseNumber: options.responsibleEnterpriseNumber || undefined, ResponsiblePersonRecno: options.responsiblePersonRecno || undefined, Status: options.status || 'J', // Codetable: Document status Title: options.title, UnofficialTitle: options.unofficialTitle, UnregisteredContacts: options.unregisteredContacts ? getUnregisteredContacts(options.unregisteredContacts) : undefined, Archive: options.archive || 'Saksdokument', // Codetable: Document archive CaseNumber: options.caseNumber, SendersReference: options.sendersReference || undefined } } } // Remove contact object if no contact was defined if (!options.contacts || options.contacts.length === 0) { delete meta.args.parameter.Contacts } if (options.responsibleEnterpriseNumber) { delete meta.args.parameter.ResponsibleEnterpriseRecno meta.args.parameter.ResponsibleEnterpriseNumber = options.responsibleEnterpriseNumber } else { delete meta.args.parameter.ResponsibleEnterpriseNumber } return meta }