| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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<Address>
- // 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<Array<Structure>> {
- 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<Structure> {
- return await this.get(
- `/api/public/federation_structures/get?organization-id=${organizationId}`
- ).then((s) => {
- return this.normalize(s)
- })
- }
- }
- export default StructuresProvider
|