aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/services/category-resource-service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/services/category-resource-service.ts')
-rw-r--r--catalog-ui/src/app/services/category-resource-service.ts61
1 files changed, 61 insertions, 0 deletions
diff --git a/catalog-ui/src/app/services/category-resource-service.ts b/catalog-ui/src/app/services/category-resource-service.ts
new file mode 100644
index 0000000000..a2e3c61e0a
--- /dev/null
+++ b/catalog-ui/src/app/services/category-resource-service.ts
@@ -0,0 +1,61 @@
+'use strict';
+// import 'angular-resource';
+import {IAppConfigurtaion, IMainCategory, IUserProperties} from "../models";
+import {Categories} from "../models/categories";
+
+// Define an interface of the object you want to use, providing it's properties
+export interface ICategoryResource extends IUserProperties,ng.resource.IResource<ICategoryResource> {
+ name:string;
+ uniqueId:string;
+ subcategories:Array<ICategoryResource>;
+
+ getAllCategories(params?:Object, success?:Function, error?:Function):Categories;
+ $saveSubCategory(params?:Object, success?:Function, error?:Function):any;
+ $deleteSubCategory(params?:Object, success?:Function, error?:Function):any;
+}
+
+// Define your resource, adding the signature of the custom actions
+export interface ICategoryResourceClass extends ng.resource.IResourceClass<ICategoryResource> {
+ getAllCategories(params?:Object, success?:Function, error?:Function):Categories;
+ saveSubCategory(params?:Object, success?:Function, error?:Function):any;
+ deleteSubCategory(params?:Object, success?:Function, error?:Function):any;
+}
+
+export class CategoryResourceService {
+
+ public static getResource = ($resource:ng.resource.IResourceService,
+ sdcConfig:IAppConfigurtaion):ICategoryResourceClass => {
+
+ // Define your custom actions here as IActionDescriptor
+ let getAllCategoriesAction:ng.resource.IActionDescriptor = {
+ method: 'GET',
+ isArray: false,
+ url: sdcConfig.api.root + sdcConfig.api.GET_categories
+ };
+ let saveSubCategory:ng.resource.IActionDescriptor = {
+ method: 'POST',
+ isArray: false,
+ url: sdcConfig.api.root + sdcConfig.api.POST_subcategory
+ };
+ let deleteSubCategory:ng.resource.IActionDescriptor = {
+ method: 'DELETE',
+ isArray: false,
+ url: sdcConfig.api.root + sdcConfig.api.POST_subcategory
+ };
+
+
+ let url:string = sdcConfig.api.root + sdcConfig.api.POST_category;
+ let categoryResource:ICategoryResourceClass = <ICategoryResourceClass>$resource(
+ url,
+ {types: '@types', categoryId: '@categoryId'},
+ {
+ getAllCategories: getAllCategoriesAction,
+ saveSubCategory: saveSubCategory,
+ deleteSubCategory: deleteSubCategory
+ }
+ );
+
+ return categoryResource;
+ }
+}
+CategoryResourceService.getResource.$inject = ['$resource', 'sdcConfig'];