From 6c64e16469316dd3aca2d9f0120a7fe485d4fed9 Mon Sep 17 00:00:00 2001 From: Dominik Pschenitschni Date: Mon, 14 Feb 2022 00:28:48 +0100 Subject: [PATCH] feat: improve conversion --- src/services/abstractService.ts | 43 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/services/abstractService.ts b/src/services/abstractService.ts index bc737d785..0b3002ce3 100644 --- a/src/services/abstractService.ts +++ b/src/services/abstractService.ts @@ -11,7 +11,7 @@ interface Paths { delete : string } -function convertObject(o) { +function convertObject(o: Record) { if (o instanceof Date) { return o.toISOString() } @@ -19,7 +19,7 @@ function convertObject(o) { return o } -function prepareParams(params) { +function prepareParams(params: Record) { if (typeof params !== 'object') { return params } @@ -36,7 +36,7 @@ function prepareParams(params) { return objectToSnakeCase(params) } -export default class AbstractService { +export default class AbstractService { ///////////////////////////// // Initial variable definitions @@ -116,6 +116,7 @@ export default class AbstractService { * Whether or not to use the update interceptor which processes a request payload into json */ useUpdateInterceptor(): boolean { + return true } /** @@ -133,7 +134,7 @@ export default class AbstractService { * Returns an object with all route parameters and their values. */ getRouteReplacements(route : string, parameters = {}) { - const replace$$1 = {} + const replace$$1: {} = {} let pattern = this.getRouteParameterPattern() pattern = new RegExp(pattern instanceof RegExp ? pattern.source : pattern, 'g') @@ -190,35 +191,35 @@ export default class AbstractService { * The modelFactory returns an model from an object. * This one here is the default one, usually the service definitions for a model will override this. */ - modelFactory(data : Partial) { + modelFactory(data : Partial) { return new AbstractModel(data) } /** * This is the model factory for get requests. */ - modelGetFactory(data : Partial) { + modelGetFactory(data : Partial) { return this.modelFactory(data) } /** * This is the model factory for get all requests. */ - modelGetAllFactory(data : Partial) { + modelGetAllFactory(data : Partial) { return this.modelFactory(data) } /** * This is the model factory for create requests. */ - modelCreateFactory(data : Partial) { + modelCreateFactory(data : Partial) { return this.modelFactory(data) } /** * This is the model factory for update requests. */ - modelUpdateFactory(data : Partial) { + modelUpdateFactory(data : Partial) { return this.modelFactory(data) } @@ -229,28 +230,28 @@ export default class AbstractService { /** * Default preprocessor for get requests */ - beforeGet(model : InstanceType) { + beforeGet(model : Model) { return model } /** * Default preprocessor for create requests */ - beforeCreate(model : InstanceType) { + beforeCreate(model : Model) { return model } /** * Default preprocessor for update requests */ - beforeUpdate(model : InstanceType) { + beforeUpdate(model : Model) { return model } /** * Default preprocessor for delete requests */ - beforeDelete(model : InstanceType) { + beforeDelete(model : Model) { return model } @@ -263,7 +264,7 @@ export default class AbstractService { * @param model The model to use. The request path is built using the values from the model. * @param params Optional query parameters */ - get(model : InstanceType, params = {}) { + get(model : Model, params = {}) { if (this.paths.get === '') { throw new Error('This model is not able to get data.') } @@ -308,7 +309,7 @@ export default class AbstractService { * @param params Optional query parameters * @param page The page to get */ - async getAll(model : InstanceType = new AbstractModel({}), params = {}, page = 1) { + async getAll(model : Model = new AbstractModel({}), params = {}, page = 1) { if (this.paths.getAll === '') { throw new Error('This model is not able to get data.') } @@ -341,7 +342,7 @@ export default class AbstractService { * Performs a put request to the url specified before * @returns {Promise} */ - async create(model : InstanceType) { + async create(model : Model) { if (this.paths.create === '') { throw new Error('This model is not able to create data.') } @@ -365,7 +366,7 @@ export default class AbstractService { * An abstract implementation to send post requests. * Services can use this to implement functions to do post requests other than using the update method. */ - async post(url : string, model : InstanceType) { + async post(url : string, model : Model) { const cancel = this.setLoading() try { @@ -383,7 +384,7 @@ export default class AbstractService { /** * Performs a post request to the update url */ - update(model : InstanceType) { + update(model : Model) { if (this.paths.update === '') { throw new Error('This model is not able to update data.') } @@ -395,7 +396,7 @@ export default class AbstractService { /** * Performs a delete request to the update url */ - async delete(model : InstanceType) { + async delete(model : Model) { if (this.paths.delete === '') { throw new Error('This model is not able to delete data.') } @@ -424,7 +425,7 @@ export default class AbstractService { /** * Uploads a blob to a url. */ - uploadBlob(url : string, blob, fieldName, filename : string) { + uploadBlob(url : string, blob: Blob, fieldName: string, filename : string) { const data = new FormData() data.append(fieldName, blob, filename) return this.uploadFormData(url, data) @@ -433,7 +434,7 @@ export default class AbstractService { /** * Uploads a form data object. */ - async uploadFormData(url : string, formData) { + async uploadFormData(url : string, formData: Record) { const cancel = this.setLoading() try { const response = await this.http.put(