nitweb/angular: add user controller
[nit.git] / share / nitweb / javascripts / model.js
1 /*
2 * Copyright 2016 Alexandre Terrasa <alexandre@moz-code.org>.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 (function() {
18 var apiUrl = '/api';
19
20 angular
21 .module('model', [])
22
23 .factory('Model', [ '$http', function($http) {
24 return {
25
26 loadEntity: function(id, cb, cbErr) {
27 $http.get(apiUrl + '/entity/' + id)
28 .success(cb)
29 .error(cbErr);
30 },
31
32 loadEntityLinearization: function(id, cb, cbErr) {
33 $http.get(apiUrl + '/linearization/' + id)
34 .success(cb)
35 .error(cbErr);
36 },
37
38 loadEntityDefs: function(id, cb, cbErr) {
39 $http.get(apiUrl + '/defs/' + id)
40 .success(cb)
41 .error(cbErr);
42 },
43
44 loadEntityCode: function(id, cb, cbErr) {
45 $http.get(apiUrl + '/code/' + id)
46 .success(cb)
47 .error(cbErr);
48 },
49
50 loadEntityGraph: function(id, cb, cbErr) {
51 $http.get(apiUrl + '/graph/inheritance/' + id + '?cdepth=3')
52 .success(cb)
53 .error(cbErr);
54 },
55
56 search: function(q, n, cb, cbErr) {
57 $http.get(apiUrl + '/search?q=' + q + '&n=' + n)
58 .success(cb)
59 .error(cbErr);
60 }
61 };
62 }])
63
64 .factory('Catalog', [ '$http', function($http) {
65 return {
66 loadHightlighted: function(cb, cbErr) {
67 $http.get(apiUrl + '/catalog/highlighted')
68 .success(cb)
69 .error(cbErr);
70 },
71
72 loadMostRequired: function(cb, cbErr) {
73 $http.get(apiUrl + '/catalog/required')
74 .success(cb)
75 .error(cbErr);
76 },
77
78 loadByTags: function(cb, cbErr) {
79 $http.get(apiUrl + '/catalog/bytags')
80 .success(cb)
81 .error(cbErr);
82 },
83
84 loadStats: function(cb, cbErr) {
85 $http.get(apiUrl + '/catalog/stats')
86 .success(cb)
87 .error(cbErr);
88 },
89
90 loadContributors: function(cb, cbErr) {
91 $http.get(apiUrl + '/catalog/contributors')
92 .success(cb)
93 .error(cbErr);
94 },
95 }
96 }])
97
98 .factory('Feedback', [ '$http', function($http) {
99 return {
100 loadEntityStars: function(id, cb, cbErr) {
101 $http.get(apiUrl + '/feedback/stars/' + id)
102 .success(cb)
103 .error(cbErr);
104 },
105 postEntityStar: function(id, rating, cb, cbErr) {
106 $http.post(apiUrl + '/feedback/stars/' + id, {rating: rating})
107 .success(cb)
108 .error(cbErr);
109 }
110 }
111 }])
112
113 .factory('DocDown', [ '$http', function($http) {
114 return {
115 postMarkdown: function(md, cb, cbErr) {
116 $http.post(apiUrl + '/docdown', md)
117 .success(cb)
118 .error(cbErr);
119 }
120 }
121 }])
122
123 .factory('Metrics', [ '$http', function($http) {
124 return {
125 loadStructuralMetrics: function(id, cb, cbErr) {
126 $http.get(apiUrl + '/metrics/structural/' + id)
127 .success(cb)
128 .error(cbErr);
129 }
130 }
131 }])
132
133 .factory('User', [ '$http', function($http) {
134 return {
135 loadUser: function(cb, cbErr) {
136 $http.get(apiUrl + '/user')
137 .success(cb)
138 .error(cbErr);
139 }
140 }
141 }])
142 })();