Compare commits

..

1 Commits

Author SHA1 Message Date
Dominik Pschenitschni 3df37fb093
feat: improve models
continuous-integration/drone/pr Build is passing Details
2022-09-13 16:21:30 +02:00
7 changed files with 20 additions and 35 deletions

View File

@ -98,7 +98,7 @@
<script lang="ts"> <script lang="ts">
import {defineComponent, type PropType} from 'vue' import {defineComponent, type PropType} from 'vue'
import TaskModel from '../../../models/task' import TaskModel from '@/models/task'
import type {ITask} from '@/modelTypes/ITask' import type {ITask} from '@/modelTypes/ITask'
import PriorityLabel from './priorityLabel.vue' import PriorityLabel from './priorityLabel.vue'
import TaskService from '../../../services/task' import TaskService from '../../../services/task'

View File

@ -14,13 +14,10 @@ export default class AttachmentModel extends AbstractModel<IAttachment> implemen
constructor(data: Partial<IAttachment>) { constructor(data: Partial<IAttachment>) {
super() super()
this.assignData(data, (data) => { this.assignData(data)
return {
...data, this.createdBy = new UserModel(this.createdBy)
createdBy: new UserModel(data.createdBy), this.file = new FileModel(this.file)
file: new FileModel(data.file), this.created = new Date(this.created)
created: new Date(data.created),
}
})
} }
} }

View File

@ -21,17 +21,12 @@ export default class BucketModel extends AbstractModel<IBucket> implements IBuck
constructor(data: Partial<IBucket>) { constructor(data: Partial<IBucket>) {
super() super()
this.assignData(data, (data) => { this.assignData(data)
return {
...data,
tasks: data.tasks.map(t => new TaskModel(t)),
createdBy: new UserModel(data.createdBy),
created: new Date(data.created),
updated: new Date(data.updated),
}
})
this.tasks = this.tasks.map(t => new TaskModel(t))
this.createdBy = new UserModel(this.createdBy)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
} }
} }

View File

@ -8,13 +8,10 @@ export default class CaldavTokenModel extends AbstractModel<ICaldavToken> implem
constructor(data: Partial<CaldavTokenModel>) { constructor(data: Partial<CaldavTokenModel>) {
super() super()
this.assignData(data, (data) => { this.assignData(data)
return {
...data,
...data?.created && new Date(this.created),
}
})
if (this.created) {
this.created = new Date(this.created)
}
} }
} }

View File

@ -278,10 +278,8 @@ export default abstract class AbstractService<Model extends IAbstract = IAbstrac
try { try {
const response = await this.http.get(finalUrl, {params: prepareParams(params)}) const response = await this.http.get(finalUrl, {params: prepareParams(params)})
const result = this.modelGetFactory({ const result = this.modelGetFactory(response.data)
...response.data, result.maxRight = Number(response.headers['x-max-right']) as Right
maxRight: Number(response.headers['x-max-right']) as Right,
})
return result return result
} finally { } finally {
cancel() cancel()

View File

@ -18,10 +18,8 @@ export default class AttachmentService extends AbstractService<AttachmentModel>
} }
processModel(model: IAttachment) { processModel(model: IAttachment) {
return { model.created = formatISO(new Date(model.created))
...model, return model
created: formatISO(new Date(model.created)),
}
} }
useCreateInterceptor() { useCreateInterceptor() {

View File

@ -1,4 +1,4 @@
import type { IFile } from '@/modelTypes/IFile' import type {IFile} from '@/modelTypes/IFile'
import AbstractService from '../abstractService' import AbstractService from '../abstractService'
// This service builds on top of the abstract service and basically just hides away method names. // This service builds on top of the abstract service and basically just hides away method names.