-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathorbweaver-resource.min.js
12 lines (12 loc) · 4.82 KB
/
orbweaver-resource.min.js
1
2
3
4
5
6
7
8
9
10
11
12
/**
* orbweaver v1.0.0
* @copyright 2013-2017 Arana Software <[email protected]>. https://github.com/aranasoft/orbweaver
* @license BSD-3-Clause
*/
!function(window,angular,undefined){"use strict";var orbResourceMinErr=angular.$$minErr("orbResource"),orbweaver=angular.module("orbResource",["ngResource"]);orbweaver.provider("orbRestfulResource",function RestfulResourceProvider(){var provider=this;this.defaults={options:{idProperty:"id",saveAsCreateOrUpdate:!0},actions:{update:{method:"PUT"},create:{method:"POST"}}},this.$get=["$resource",function($resource){function restfulResourceFactory(url,params,actions,options){var extend=angular.extend,isFunction=angular.isFunction;actions=extend({},provider.defaults.actions,actions),options=extend({},provider.defaults.options,options);var resource=$resource(url,params,actions,options);return resource.idProperty=options.idProperty,options.saveAsCreateOrUpdate!==!1&&(resource.prototype.$save=function(params,success,error){isFunction(params)&&(error=success,success=params,params={});var result=resource.save.call(this,params,this,success,error);return result.$promise||result},resource.save=function(a1,a2,a3,a4){var params={},data,success,error;switch(arguments.length){case 4:error=a4,success=a3;/* falls through */
case 3:case 2:if(!isFunction(a2)){params=a1,data=a2,success=a3;break}if(isFunction(a1))throw orbResourceMinErr("badargs","Expected between first argument to not be a function [[params,] data, [success [, error]]]");success=a2,error=a3;/* falls through */
case 1:data=a1;break;default:throw orbResourceMinErr("badargs","Expected between 1 and 4 arguments [[params,] data, [success [, error]]], got {0} arguments",arguments.length)}var method;return method=data[this.idProperty]?"update":"create",resource[method].call(this,params,data,success,error)}),resource}return restfulResourceFactory}]}),orbweaver.provider("orbRestfulService",["$resourceProvider","orbRestfulResourceProvider",function RestfulServiceProvider($resourceProvider,orbRestfulResourceProvider){this.$get=["$q","orbRestfulResource",function($q,orbRestfulResource){function restfulServiceFactory(url,params,actions,options){function RestfulService(){return new resource}var extend=angular.extend,forEach=angular.forEach,isDefined=angular.isDefined,isFunction=angular.isFunction,isObject=angular.isObject;actions=extend({},$resourceProvider.defaults.actions,orbRestfulResourceProvider.defaults.actions,actions),options=extend({},orbRestfulResourceProvider.defaults.options,options);var resource=new orbRestfulResource(url,params,actions,options);return RestfulService.empty=function(){return new resource},options.saveAsCreateOrUpdate!==!1&&(RestfulService.save=function(arg1,arg2,arg3,arg4){var params={},data,success,error;switch(arguments.length){case 4:error=arg4,success=arg3;/* falls through */
case 3:case 2:if(isFunction(arg2)){if(isFunction(arg1))throw orbResourceMinErr("badargs","Expected first argument to not be a function [[params,] data, [success [, error]]]");data=arg1,success=arg2,error=arg3}else params=arg1,data=arg2,success=arg3;break;case 1:if(isFunction(arg1))throw orbResourceMinErr("badargs","Expected first argument to not be a function [[params,] data, [success [, error]]]");data=arg1;break;default:throw orbResourceMinErr("badargs","Expected between 1 and 4 arguments [[params,] data, [success [, error]]], got {0} arguments",arguments.length)}var result;return result=isDefined(data[options.idProperty])?resource.update.apply(this,arguments):resource.create.apply(this,arguments),result.$promise||result}),forEach(actions,function(action,name){var hasBody=action.hasBody===!0||action.hasBody!==!1&&/^(POST|PUT|PATCH)$/i.test(action.method);RestfulService[name]=function(arg1,arg2,arg3,arg4,arg5){var identity,params={},data,success,error;switch(arguments.length){case 5:case 4:isFunction(arg3)?(success=arg3,error=arg4):(success=arg4,error=arg5);/* falls through */
case 3:isFunction(arg2)?(error=arg3,success=arg2,data=arg1):isFunction(arg3)?(error=arg4,success=arg3,data=arg2,isObject(arg1)?params=arg1:identity=arg1):(data=arg3,params=arg2,identity=arg1);break;case 2:if(!isFunction(arg2)){hasBody?(data=arg2,isObject(arg1)?params=arg1:identity=arg1):(params=arg2,identity=arg1);break}isFunction(arg1)?error=arg2:success=arg2;/* falls through */
case 1:isFunction(arg1)?success=arg1:hasBody?data=arg1:isObject(arg1)?params=arg1:identity=arg1;break;case 0:break;default:throw orbResourceMinErr("badargs","Expected between 1 and 5 arguments [[id,] [params,] data, [success [, error]]], got {0} arguments",arguments.length)}if(isDefined(identity)){var identityParams={};identityParams[options.idProperty]=identity,params=extend({},params,identityParams)}var result=resource[name](params,data,success,error);return result.$promise||result}}),RestfulService}return restfulServiceFactory}]}])}(window,window.angular);
//# sourceMappingURL=orbweaver-resource.min.js.map