This commit is contained in:
parent
68dfe7c5eb
commit
785cb149f3
|
@ -123,7 +123,14 @@ export default class AbstractService {
|
|||
this.loading = false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////
|
||||
// Default factories
|
||||
// It is possible to specify a factory for each type of request.
|
||||
// This makes it possible to have different models returned from different routes.
|
||||
// Specific factories for each request are completly optional, if these are not specified, the defautl factory is used.
|
||||
////////////////
|
||||
|
||||
/**
|
||||
* 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.
|
||||
|
@ -134,6 +141,42 @@ export default class AbstractService {
|
|||
return data
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the model factory for get requests.
|
||||
* @param data
|
||||
* @return {*}
|
||||
*/
|
||||
modelGetFactory(data) {
|
||||
return this.modelFactory(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the model factory for get all requests.
|
||||
* @param data
|
||||
* @return {*}
|
||||
*/
|
||||
modelGetAllFactory(data) {
|
||||
return this.modelFactory(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the model factory for create requests.
|
||||
* @param data
|
||||
* @return {*}
|
||||
*/
|
||||
modelCreateFactory(data) {
|
||||
return this.modelFactory(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* This is the model factory for update requests.
|
||||
* @param data
|
||||
* @return {*}
|
||||
*/
|
||||
modelUpdateFactory(data) {
|
||||
return this.modelFactory(data)
|
||||
}
|
||||
|
||||
//////////////
|
||||
// Preprocessors
|
||||
////////////
|
||||
|
@ -196,7 +239,7 @@ export default class AbstractService {
|
|||
return this.errorHandler(error)
|
||||
})
|
||||
.then(response => {
|
||||
return Promise.resolve(this.modelFactory(response.data))
|
||||
return Promise.resolve(this.modelGetFactory(response.data))
|
||||
})
|
||||
.finally(() => {
|
||||
cancel()
|
||||
|
@ -224,10 +267,10 @@ export default class AbstractService {
|
|||
.then(response => {
|
||||
if (Array.isArray(response.data)) {
|
||||
return Promise.resolve(response.data.map(entry => {
|
||||
return this.modelFactory(entry)
|
||||
return this.modelGetAllFactory(entry)
|
||||
}))
|
||||
}
|
||||
return Promise.resolve(this.modelFactory(response.data))
|
||||
return Promise.resolve(this.modelGetAllFactory(response.data))
|
||||
})
|
||||
.finally(() => {
|
||||
cancel()
|
||||
|
@ -251,7 +294,7 @@ export default class AbstractService {
|
|||
return this.errorHandler(error)
|
||||
})
|
||||
.then(response => {
|
||||
return Promise.resolve(this.modelFactory(response.data))
|
||||
return Promise.resolve(this.modelCreateFactory(response.data))
|
||||
})
|
||||
.finally(() => {
|
||||
cancel()
|
||||
|
@ -275,7 +318,7 @@ export default class AbstractService {
|
|||
return this.errorHandler(error)
|
||||
})
|
||||
.then(response => {
|
||||
return Promise.resolve(this.modelFactory(response.data))
|
||||
return Promise.resolve(this.modelUpdateFactory(response.data))
|
||||
})
|
||||
.finally(() => {
|
||||
cancel()
|
||||
|
|
Reference in New Issue
Block a user