Skip to content
Snippets Groups Projects
Unverified Commit 880cfcbb authored by Marc Hanisch's avatar Marc Hanisch
Browse files

adds methods to load and serialize properties of an device

parent 81a72354
No related branches found
No related tags found
2 merge requests!90Draft: restructure frontend properties 2,!82Restructure frontend
......@@ -32,7 +32,7 @@
import { DeviceProperty } from '@/models/DeviceProperty'
import { MeasuringRange } from '@/models/MeasuringRange'
import { IJsonApiNestedElement } from '@/serializers/jsonapi/JsonApiTypes'
import { IJsonApiNestedElement, IJsonApiTypeIdAttributes, IJsonApiObjectList } from '@/serializers/jsonapi/JsonApiTypes'
export class DevicePropertySerializer {
convertJsonApiElementToModel (property: IJsonApiNestedElement): DeviceProperty {
......@@ -98,4 +98,36 @@ export class DevicePropertySerializer {
return result
}
convertJsonApiDataToModel (jsonApiData: IJsonApiTypeIdAttributes): DeviceProperty {
const attributes = jsonApiData.attributes
const newEntry = new DeviceProperty()
newEntry.id = jsonApiData.id.toString()
newEntry.measuringRange = new MeasuringRange(
attributes.measuring_range_min,
attributes.measuring_range_max
)
newEntry.failureValue = attributes.failure_value
newEntry.accuracy = attributes.accuracy
newEntry.resolution = attributes.resolution
newEntry.label = attributes.label || ''
newEntry.unitUri = attributes.unit_uri || ''
newEntry.unitName = attributes.unit_name || ''
newEntry.compartmentUri = attributes.compartment_uri || ''
newEntry.compartmentName = attributes.compartment_name || ''
newEntry.propertyUri = attributes.property_uri || ''
newEntry.propertyName = attributes.property_name || ''
newEntry.samplingMediaUri = attributes.sampling_media_uri || ''
newEntry.samplingMediaName = attributes.sampling_media_name || ''
newEntry.resolutionUnitUri = attributes.resolution_unit_uri || ''
newEntry.resolutionUnitName = attributes.resolution_unit_name || ''
return newEntry
}
convertJsonApiObjectListToModelList (jsonApiObjectList: IJsonApiObjectList): DeviceProperty[] {
return jsonApiObjectList.data.map(this.convertJsonApiDataToModel)
}
}
......@@ -34,12 +34,14 @@ import { AxiosInstance, Method } from 'axios'
import { Contact } from '@/models/Contact'
import { CustomTextField } from '@/models/CustomTextField'
import { Device } from '@/models/Device'
import { DeviceProperty } from '@/models/DeviceProperty'
import { DeviceType } from '@/models/DeviceType'
import { Manufacturer } from '@/models/Manufacturer'
import { Status } from '@/models/Status'
import { ContactSerializer } from '@/serializers/jsonapi/ContactSerializer'
import { CustomTextFieldSerializer } from '@/serializers/jsonapi/CustomTextFieldSerializer'
import { DevicePropertySerializer } from '@/serializers/jsonapi/DevicePropertySerializer'
import { IFlaskJSONAPIFilter } from '@/utils/JSONApiInterfaces'
......@@ -147,6 +149,16 @@ export class DeviceApi {
return new CustomTextFieldSerializer().convertJsonApiObjectListToModelList(rawServerResponse.data)
})
}
findRelatedDeviceProperties (deviceId: string): Promise<DeviceProperty[]> {
const url = deviceId + '/device-properties'
const params = {
'page[size]': 10000
}
return this.axiosApi.get(url, { params }).then((rawServerResponse) => {
return new DevicePropertySerializer().convertJsonApiObjectListToModelList(rawServerResponse.data)
})
}
}
export class DeviceSearchBuilder {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment