Yangman - make elements accessible via ids - part1
[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             return service;
21
22
23             /**
24              * Validating collection import file
25              * @param data
26              * @param checkArray
27              * @returns {*}
28              */
29             function validateFile(data, checkArray){
30                 try {
31                     var obj = ParsingJsonService.parseJson(data);
32
33                     return obj && obj.every(function (el){
34                         return checkArray.every(function (arr){
35                             return el.hasOwnProperty(arr);
36                         });
37                     });
38                 } catch (e) {
39                     return e;
40                 }
41             }
42
43             /**
44              * Service for creating basic parameter object
45              * @returns {*}
46              * @param name
47              * @param value
48              */
49             function createParameter(element){
50                 var result = new ParameterModel();
51                 result.setData(element.name, element.value);
52                 return result;
53             }
54
55
56             /**
57              * Service for creating empty parameters list
58              * @param name used as name in local storage
59              * @returns {*}
60              */
61             function createEmptyParametersList(name){
62                 var result = new ParametersListModel($filter, ParsingJsonService, service);
63                 result.setName(name);
64                 return result;
65             }
66
67
68
69         }
70
71     });