import BaseProvider from '~/services/data/BaseProvider' class StructuresProvider extends BaseProvider { protected normalize (s: any) : Structure { s.n1Id = s.n1Id ? parseInt(s.n1Id) : null s.n2Id = s.n2Id ? parseInt(s.n2Id) : null s.n3Id = s.n3Id ? parseInt(s.n3Id) : null s.n4Id = s.n4Id ? parseInt(s.n4Id) : null s.n5Id = s.n5Id ? parseInt(s.n5Id) : null s.practices = s.practices ? s.practices.split(',') : [] s.addresses = ((s.addresses && s.addresses !== '{}') ? JSON.parse('[' + s.addresses + ']') : []) as Array
// Define the on-map address according to the chosen priorities s.mapAddress = s.addresses.find((a: Address) => { return a.type === 'ADDRESS_PRACTICE' }) || s.addresses.find((a: Address) => { return a.type === 'ADDRESS_HEAD_OFFICE' }) || s.addresses.find((a: Address) => { return a.type === 'ADDRESS_CONTACT' }) || null // Define the postal address according to the chosen priorities s.postalAddress = s.addresses.find((a: Address) => { return a.type === 'ADDRESS_CONTACT' }) || s.addresses.find((a: Address) => { return a.type === 'ADDRESS_HEAD_OFFICE' }) || null s.latitude = s.latitude ? parseFloat(s.latitude) : null s.longitude = s.longitude ? parseFloat(s.longitude) : null s.parents = s.parents ? s.parents.split(',').map((i: string) => Number(i)) : [] s.articles = (s.articles && s.articles !== '{}') ? JSON.parse('[' + s.articles + ']').reverse() : [] s.articles.sort((a: Article, b: Article) => { return a.date > b.date ? -1 : 1 }) return s } async getAll (parentId: number): Promise> { return await this.get( `/api/public/federation_structures/all?parent-id=${parentId}` ).then((res) => { return res.map((s: any) => { return this.normalize(s) }) }) } async getById (organizationId: number): Promise { return await this.get( `/api/public/federation_structures/get?organization-id=${organizationId}` ).then((s) => { return this.normalize(s) }) } } export default StructuresProvider