7c7d3fd07da759537a179dcbb10f8a54e21a7f44
[dlux.git] / modules / yangman-resources / src / main / resources / yangman / services / parameters.services.js
1 define([
2     'app/yangman/models/parameter.model',
3     'app/yangman/models/parameterslist.model',
4 ],
5     function (ParameterModel, ParametersListModel) {
6         'use strict';
7
8         angular.module('app.yangman').service('ParametersService', ParametersService);
9
10         ParametersService.$inject = ['$filter', 'ParsingJsonService'];
11
12         function ParametersService($filter, ParsingJsonService){
13
14             var service = {};
15
16             service.createEmptyParametersList = createEmptyParametersList;
17             service.createParameter = createParameter;
18             service.validateFile = validateFile;
19
20             /**
21              * Validating collection import file
22              * @param data
23              * @param checkArray
24              * @returns {*}
25              */
26             function validateFile(data, checkArray){
27                 try {
28                     var obj = ParsingJsonService.parseJson(data);
29
30                     return obj && obj.every(function (el){
31                         return checkArray.every(function (arr){
32                             return el.hasOwnProperty(arr);
33                         });
34                     });
35                 } catch (e) {
36                     return e;
37                 }
38             }
39
40             /**
41              * Service for creating basic parameter object
42              * @returns {*}
43              * @param name
44              * @param value
45              */
46             function createParameter(element){
47                 var result = new ParameterModel();
48                 result.setData(element.name, element.value);
49                 return result;
50             }
51
52
53             /**
54              * Service for creating empty parameters list
55              * @param name used as name in local storage
56              * @returns {*}
57              */
58             function createEmptyParametersList(name){
59                 var result = new ParametersListModel($filter, ParsingJsonService, service);
60                 result.setName(name);
61                 return result;
62             }
63
64
65             return service;
66
67         }
68
69     });