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

adds some methods to serialize not-included CustomFields

parent 89c1cebc
No related branches found
No related tags found
2 merge requests!90Draft: restructure frontend properties 2,!82Restructure frontend
......@@ -29,8 +29,16 @@
* implied. See the Licence for the specific language governing
* permissions and limitations under the Licence.
*/
import { CustomTextField } from '@/models/CustomTextField'
import { IJsonApiNestedElement } from '@/serializers/jsonapi/JsonApiTypes'
import { ICustomTextField, CustomTextField } from '@/models/CustomTextField'
import {
IJsonApiDataWithOptionalIdWithoutRelationships,
IJsonApiNestedElement,
IJsonApiObject,
IJsonApiObjectList,
IJsonApiTypeId,
IJsonApiTypeIdAttributes,
IJsonApiTypeIdDataListDict
} from '@/serializers/jsonapi/JsonApiTypes'
export class CustomTextFieldSerializer {
convertJsonApiElementToModel (customfield: IJsonApiNestedElement): CustomTextField {
......@@ -62,4 +70,60 @@ export class CustomTextFieldSerializer {
}
return result
}
convertJsonApiObjectToModel (jsonApiObject: IJsonApiObject): CustomTextField {
const data = jsonApiObject.data
return this.convertJsonApiDataToModel(data)
}
convertJsonApiDataToModel (jsonApiData: IJsonApiTypeIdAttributes): CustomTextField {
const attributes = jsonApiData.attributes
const newEntry = new CustomTextField()
newEntry.id = jsonApiData.id.toString()
newEntry.key = attributes.key || ''
newEntry.value = attributes.value || ''
return newEntry
}
convertJsonApiObjectListToModelList (jsonApiObjectList: IJsonApiObjectList): CustomTextField[] {
return jsonApiObjectList.data.map(this.convertJsonApiDataToModel)
}
convertModelListToJsonApiRelationshipObject (customFields: ICustomTextField[]): IJsonApiTypeIdDataListDict {
return {
customfields: {
data: this.convertModelListToTupleListWithIdAndType(customFields)
}
}
}
convertModelToJsonApiData (customField: ICustomTextField): IJsonApiDataWithOptionalIdWithoutRelationships {
const data: any = {
type: 'customfield',
attributes: {
key: customField.key,
value: customField.value
}
}
if (customField.id) {
data.id = customField.id
}
return data
}
convertModelListToTupleListWithIdAndType (customFields: ICustomTextField[]): IJsonApiTypeId[] {
const result: IJsonApiTypeId[] = []
for (const field of customFields) {
if (field.id !== null) {
result.push({
id: field.id,
type: 'customfield'
})
}
}
return result
}
}
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