OData
ember-flexberry-data supports the OData Protocol v4.
- OData adapter
Support transactional data changes
Support sending multiple model objects to save the changes in a single transaction implemented through the batchUpdate
object store
. To obtain the current status of data objects given the business logic servers and database triggers for each query, INSERT, UPDATE, DELETE, sends extra SELECT statement for the updated entities.
Example usage:
const store = this.get('store');
const models = [
store.createRecord('user', { name: 'Nif' }),
store.createRecord('user', { name: 'Naf' }),
store.createRecord('user', { name: 'Nuf' }),
];
store.batchUpdate(models).then((models) => {
const [nif, naf, nuf] = models;
});
Call functions and actions via Ajax
To facilitate references to the functions and action of the backend via ajax OData adapter provides two similar methods: callFunction
and callAction
.
callFunction
This method is to call OData functions backend. callFunction(args):
args.functionName
: the name of the function backend (the only mandatory property)args.params
: an object containing query parametersargs.url
: address OData backend. If not given, it is taken to the address specified inenvironment.js
args.fields
: object { name: value} to change the values of the corresponding fields of the XMLHttpRequest objectargs.store
: object DS.Storeargs.modelName
: name amberieu modelargs.modelProjection
: presentation amberieu modelargs.successCallback
: method orPromise
executed upon successful execution of the requestargs.failCallback
: method orPromise
performed in case of unsuccessful execution of the requestargs.alwaysCallback
: method orPromise
executed in any case.
Properties store, modelName and modelProjection needed only if the OData function returns ambarnye model.
Examples of how to use callFunction
- Without the callback functions, URL of the backend are taken from
environment.js
:
adapter.callFunction({ functionName: 'test', params: { someParams: 'someParams' } })
- To the callback functions:
adapter.callFunction({
functionName: 'test',
params: { someParams: 'someParams' },
successCallback: () => {
console.log("This is a successCallback function");
},
failCallback: () => {
console.log("This is a function failCallback");
},
alwaysCallback: () => {
console.log("This is an alwaysCallback function");
}
})
callEmberOdataFunction (Deprecated)
The same method callFunction. To maintain compatibility, can be called with the signature callEmberOdataFunction(functionName, params, url, fields, store, modelName, successCallback, failCallback, alwaysCallback).
callAction
This method is intended to invoke an OData action games backend. callAction(args):
args.actionName
: name of action backend (the only mandatory property)args.data
: an object containing query parametersargs.url
: address OData backend. If not given, it is taken to the address specified inenvironment.js
args.fields
: object { name: value} to change the values of the corresponding fields of the XMLHttpRequest objectargs.store
: object DS.Storeargs.modelName
: name amberieu modelargs.successCallback
: method orPromise
executed upon successful execution of the requestargs.failCallback
: method orPromise
performed in case of unsuccessful execution of the requestargs.alwaysCallback
: method orPromise
executed in any case.
The store property and modelName is only needed if the OData function returns ambarnye model. If the model contains masters or detaily, then this method won’t bring them back. You need to use the callFunction method of specifying presentation.
Examples of usage callAction
- Without the callback functions, URL of the backend are taken from
environment.js
:
adapter.callAction({ actionName: 'test', data: { someParams: 'someParams' } })
- To the callback functions:
adapter.callAction({
actionName: 'test',
data: { someParams: 'someParams' },
successCallback: () => {
console.log("This is a successCallback function");
},
failCallback: () => {
console.log("This is a function failCallback");
},
alwaysCallback: () => {
console.log("This is an alwaysCallback function");
}
})
callEmberOdataAction (Deprecated)
The same method callAction. To maintain compatibility, can be called with the signature callEmberOdataAction(actionName, data, url, fields, store, modelName, successCallback, failCallback, alwaysCallback).