blob: 2b4ca50f5558933f9a67066a9141069534423153 [file] [log] [blame]
Matteo Scandolod2044a42017-08-07 16:08:28 -07001
2/*
3 * Copyright 2017-present Open Networking Foundation
4
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8
9 * http://www.apache.org/licenses/LICENSE-2.0
10
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18
Matteo Scandolo86f3f282016-08-11 11:21:33 -070019(function () {
20 'use strict';
21 angular.module('xos.UITutorial')
Matteo Scandoloef969922016-08-11 13:49:12 -070022 .service('ResponseHandler', function(TemplateHandler){
23
24 const exclude = [
25 'deleted',
26 'enabled',
27 'enacted',
28 'exposed_ports',
29 'lazy_blocked',
30 'created',
31 'validators',
32 'controllers',
33 'backend_status',
34 'backend_register',
35 'policed',
36 'no_policy',
37 'write_protect',
38 'no_sync',
39 'updated'
40 ];
41
42 this.parseObject = (obj, comma = '') => {
43 obj = _.omit(obj, exclude);
44 return TemplateHandler.jsonObject({'obj': obj, comma: comma});
45 };
46
47 this.parseCollection = (array) => {
48 array = array.map((o, i) => `${this.parseObject(o, i === (array.length - 1) ? '':',')}`);
49 return TemplateHandler.jsonCollection({'collection': array});
50 };
51
52 this.parse = (res, jsCode, done) => {
53 if(_.isArray(res)) {
54 res = this.parseCollection(res);
Matteo Scandolo86f3f282016-08-11 11:21:33 -070055 }
Matteo Scandoloef969922016-08-11 13:49:12 -070056 else{
57 res = this.parseObject(res);
58 }
59 done(TemplateHandler.resourcesResponse({
60 jsCode: jsCode,
61 res: res
62 }));
Matteo Scandolo86f3f282016-08-11 11:21:33 -070063 };
64 });
65})();