@kkoehn/ngx-resource-core
Version:
Core of resource library
19 lines • 3.76 kB
JavaScript
import { ResourceRequestMethod } from './Declarations';
export function ResourceAction(methodOptions) {
methodOptions = methodOptions || {};
if (methodOptions.method === undefined) {
methodOptions.method = ResourceRequestMethod.Get;
}
// tslint:disable-next-line: only-arrow-functions
return function (target, propertyKey) {
target[propertyKey] = function (...args) {
const callbacks = args.filter((arg) => typeof arg === 'function');
const data = args.filter((arg) => typeof arg !== 'function');
const [body, query, params] = data;
const [onSuccess, onError] = callbacks;
const actionOptions = { ...this.getResourceOptions(), ...methodOptions };
return this.$restAction({ actionAttributes: { body, query, params, onSuccess, onError }, actionOptions });
};
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VBY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVzb3VyY2UvY29yZS9zcmMvbGliL1Jlc291cmNlQWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RSxNQUFNLFVBQVUsY0FBYyxDQUFDLGFBQStCO0lBRTVELGFBQWEsR0FBRyxhQUFhLElBQUksRUFBRSxDQUFDO0lBRXBDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDdEMsYUFBYSxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7S0FDbEQ7SUFFRCxpREFBaUQ7SUFDakQsT0FBTyxVQUFTLE1BQWdCLEVBQUUsV0FBbUI7UUFFbEQsTUFBYyxDQUFDLFdBQVcsQ0FBQyxHQUFHLFVBQVMsR0FBRyxJQUFXO1lBRXBELE1BQU0sU0FBUyxHQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sSUFBSSxHQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDO1lBRXZFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNuQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUV2QyxNQUFNLGFBQWEsR0FBb0IsRUFBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFDLENBQUM7WUFFeEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztRQUV4RyxDQUFDLENBQUM7SUFFSixDQUFDLENBQUM7QUFFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICcuL1Jlc291cmNlJztcclxuaW1wb3J0IHsgSVJlc291cmNlQWN0aW9uLCBSZXNvdXJjZVJlcXVlc3RNZXRob2QgfSBmcm9tICcuL0RlY2xhcmF0aW9ucyc7XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFJlc291cmNlQWN0aW9uKG1ldGhvZE9wdGlvbnM/OiBJUmVzb3VyY2VBY3Rpb24pIHtcclxuXHJcbiAgbWV0aG9kT3B0aW9ucyA9IG1ldGhvZE9wdGlvbnMgfHwge307XHJcblxyXG4gIGlmIChtZXRob2RPcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICBtZXRob2RPcHRpb25zLm1ldGhvZCA9IFJlc291cmNlUmVxdWVzdE1ldGhvZC5HZXQ7XHJcbiAgfVxyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ubHktYXJyb3ctZnVuY3Rpb25zXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogUmVzb3VyY2UsIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcclxuXHJcbiAgICAodGFyZ2V0IGFzIGFueSlbcHJvcGVydHlLZXldID0gZnVuY3Rpb24oLi4uYXJnczogYW55W10pOiBhbnkge1xyXG5cclxuICAgICAgY29uc3QgY2FsbGJhY2tzOiBhbnkgPSBhcmdzLmZpbHRlcigoYXJnOiBhbnkpID0+IHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicpO1xyXG4gICAgICBjb25zdCBkYXRhOiBhbnkgPSBhcmdzLmZpbHRlcigoYXJnOiBhbnkpID0+IHR5cGVvZiBhcmcgIT09ICdmdW5jdGlvbicpO1xyXG5cclxuICAgICAgY29uc3QgW2JvZHksIHF1ZXJ5LCBwYXJhbXNdID0gZGF0YTtcclxuICAgICAgY29uc3QgW29uU3VjY2Vzcywgb25FcnJvcl0gPSBjYWxsYmFja3M7XHJcblxyXG4gICAgICBjb25zdCBhY3Rpb25PcHRpb25zOiBJUmVzb3VyY2VBY3Rpb24gPSB7Li4udGhpcy5nZXRSZXNvdXJjZU9wdGlvbnMoKSwgLi4ubWV0aG9kT3B0aW9uc307XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy4kcmVzdEFjdGlvbih7YWN0aW9uQXR0cmlidXRlczoge2JvZHksIHF1ZXJ5LCBwYXJhbXMsIG9uU3VjY2Vzcywgb25FcnJvcn0sIGFjdGlvbk9wdGlvbnN9KTtcclxuXHJcbiAgICB9O1xyXG5cclxuICB9O1xyXG5cclxufVxyXG4iXX0=