aboutsummaryrefslogtreecommitdiffstats
path: root/app/Controllers/Http/ServiceController.js
diff options
context:
space:
mode:
authorLibravatar vantezzen <properly@protonmail.com>2019-09-05 11:22:49 +0200
committerLibravatar vantezzen <properly@protonmail.com>2019-09-05 11:22:49 +0200
commit29b8334b060dc0c05a509d523ead4b3a30229fef (patch)
tree4dbfcfb90a3eff31acd219b27557bbdc594f589f /app/Controllers/Http/ServiceController.js
parentAdd cookie notice to login page (diff)
downloadferdium-server-29b8334b060dc0c05a509d523ead4b3a30229fef.tar.gz
ferdium-server-29b8334b060dc0c05a509d523ead4b3a30229fef.tar.zst
ferdium-server-29b8334b060dc0c05a509d523ead4b3a30229fef.zip
Add eslint
Diffstat (limited to 'app/Controllers/Http/ServiceController.js')
-rw-r--r--app/Controllers/Http/ServiceController.js200
1 files changed, 97 insertions, 103 deletions
diff --git a/app/Controllers/Http/ServiceController.js b/app/Controllers/Http/ServiceController.js
index e887e3a..309ae09 100644
--- a/app/Controllers/Http/ServiceController.js
+++ b/app/Controllers/Http/ServiceController.js
@@ -1,9 +1,6 @@
1'use strict'
2
3const User = use('App/Models/User');
4const Service = use('App/Models/Service'); 1const Service = use('App/Models/Service');
5const { 2const {
6 validateAll 3 validateAll,
7} = use('Validator'); 4} = use('Validator');
8 5
9const uuid = require('uuid/v4'); 6const uuid = require('uuid/v4');
@@ -13,12 +10,12 @@ class ServiceController {
13 async create({ 10 async create({
14 request, 11 request,
15 response, 12 response,
16 auth 13 auth,
17 }) { 14 }) {
18 try { 15 try {
19 await auth.getUser() 16 await auth.getUser();
20 } catch (error) { 17 } catch (error) {
21 return response.send('Missing or invalid api token') 18 return response.send('Missing or invalid api token');
22 } 19 }
23 20
24 // Validate user input 21 // Validate user input
@@ -28,10 +25,10 @@ class ServiceController {
28 }); 25 });
29 if (validation.fails()) { 26 if (validation.fails()) {
30 return response.status(401).send({ 27 return response.status(401).send({
31 "message": "Invalid POST arguments", 28 message: 'Invalid POST arguments',
32 "messages": validation.messages(), 29 messages: validation.messages(),
33 "status": 401 30 status: 401,
34 }) 31 });
35 } 32 }
36 33
37 const data = request.all(); 34 const data = request.all();
@@ -40,83 +37,82 @@ class ServiceController {
40 let serviceId; 37 let serviceId;
41 do { 38 do {
42 serviceId = uuid(); 39 serviceId = uuid();
43 } while ((await Service.query().where('serviceId', serviceId).fetch()).rows.length > 0) 40 } while ((await Service.query().where('serviceId', serviceId).fetch()).rows.length > 0); // eslint-disable-line no-await-in-loop
44 41
45 const service = await Service.create({ 42 await Service.create({
46 userId: auth.user.id, 43 userId: auth.user.id,
47 serviceId, 44 serviceId,
48 name: data.name, 45 name: data.name,
49 recipeId: data.recipeId, 46 recipeId: data.recipeId,
50 settings: JSON.stringify(data) 47 settings: JSON.stringify(data),
51 }); 48 });
52 49
53 return response.send({ 50 return response.send({
54 "data": { 51 data: {
55 userId: auth.user.id, 52 userId: auth.user.id,
56 id: serviceId, 53 id: serviceId,
57 "isEnabled": true, 54 isEnabled: true,
58 "isNotificationEnabled": true, 55 isNotificationEnabled: true,
59 "isBadgeEnabled": true, 56 isBadgeEnabled: true,
60 "isMuted": false, 57 isMuted: false,
61 "isDarkModeEnabled": "", 58 isDarkModeEnabled: '',
62 "spellcheckerLanguage": "", 59 spellcheckerLanguage: '',
63 "order": 1, 60 order: 1,
64 "customRecipe": false, 61 customRecipe: false,
65 "hasCustomIcon": false, 62 hasCustomIcon: false,
66 "workspaces": [], 63 workspaces: [],
67 "iconUrl": null, 64 iconUrl: null,
68 ...data, 65 ...data,
69 }, 66 },
70 "status": ["created"] 67 status: ['created'],
71 }) 68 });
72 } 69 }
73 70
74 // List all services a user has created 71 // List all services a user has created
75 async list({ 72 async list({
76 request,
77 response, 73 response,
78 auth 74 auth,
79 }) { 75 }) {
80 try { 76 try {
81 await auth.getUser() 77 await auth.getUser();
82 } catch (error) { 78 } catch (error) {
83 return response.send('Missing or invalid api token') 79 return response.send('Missing or invalid api token');
84 } 80 }
85 81
86 const services = (await auth.user.services().fetch()).rows; 82 const services = (await auth.user.services().fetch()).rows;
87 // Convert to array with all data Franz wants 83 // Convert to array with all data Franz wants
88 const servicesArray = services.map(service => ({ 84 const servicesArray = services.map((service) => ({
89 "customRecipe": false, 85 customRecipe: false,
90 "hasCustomIcon": false, 86 hasCustomIcon: false,
91 "isBadgeEnabled": true, 87 isBadgeEnabled: true,
92 "isDarkModeEnabled": "", 88 isDarkModeEnabled: '',
93 "isEnabled": true, 89 isEnabled: true,
94 "isMuted": false, 90 isMuted: false,
95 "isNotificationEnabled": true, 91 isNotificationEnabled: true,
96 "order": 1, 92 order: 1,
97 "spellcheckerLanguage": "", 93 spellcheckerLanguage: '',
98 "workspaces": [], 94 workspaces: [],
99 "iconUrl": null, 95 iconUrl: null,
100 ...JSON.parse(service.settings), 96 ...JSON.parse(service.settings),
101 "id": service.serviceId, 97 id: service.serviceId,
102 "name": service.name, 98 name: service.name,
103 "recipeId": service.recipeId, 99 recipeId: service.recipeId,
104 "userId": auth.user.id, 100 userId: auth.user.id,
105 })) 101 }));
106 102
107 return response.send(servicesArray) 103 return response.send(servicesArray);
108 } 104 }
109 105
110 async edit({ 106 async edit({
111 request, 107 request,
112 response, 108 response,
113 auth, 109 auth,
114 params 110 params,
115 }) { 111 }) {
116 try { 112 try {
117 await auth.getUser() 113 await auth.getUser();
118 } catch (error) { 114 } catch (error) {
119 return response.send('Missing or invalid api token') 115 return response.send('Missing or invalid api token');
120 } 116 }
121 117
122 // Validate user input 118 // Validate user input
@@ -125,15 +121,15 @@ class ServiceController {
125 }); 121 });
126 if (validation.fails()) { 122 if (validation.fails()) {
127 return response.status(401).send({ 123 return response.status(401).send({
128 "message": "Invalid POST arguments", 124 message: 'Invalid POST arguments',
129 "messages": validation.messages(), 125 messages: validation.messages(),
130 "status": 401 126 status: 401,
131 }) 127 });
132 } 128 }
133 129
134 const data = request.all(); 130 const data = request.all();
135 const { 131 const {
136 id 132 id,
137 } = params; 133 } = params;
138 134
139 // Get current settings from db 135 // Get current settings from db
@@ -141,7 +137,7 @@ class ServiceController {
141 .where('serviceId', id) 137 .where('serviceId', id)
142 .where('userId', auth.user.id).fetch()).rows[0]; 138 .where('userId', auth.user.id).fetch()).rows[0];
143 139
144 let settings = { 140 const settings = {
145 ...JSON.parse(serviceData.settings), 141 ...JSON.parse(serviceData.settings),
146 ...data, 142 ...data,
147 }; 143 };
@@ -150,9 +146,9 @@ class ServiceController {
150 await (Service.query() 146 await (Service.query()
151 .where('serviceId', id) 147 .where('serviceId', id)
152 .where('userId', auth.user.id)).update({ 148 .where('userId', auth.user.id)).update({
153 name: data.name, 149 name: data.name,
154 settings: JSON.stringify(settings) 150 settings: JSON.stringify(settings),
155 }); 151 });
156 152
157 // Get updated row 153 // Get updated row
158 const service = (await Service.query() 154 const service = (await Service.query()
@@ -160,88 +156,86 @@ class ServiceController {
160 .where('userId', auth.user.id).fetch()).rows[0]; 156 .where('userId', auth.user.id).fetch()).rows[0];
161 157
162 return response.send({ 158 return response.send({
163 "id": service.serviceId, 159 id: service.serviceId,
164 "name": data.name, 160 name: data.name,
165 ...settings, 161 ...settings,
166 "userId": auth.user.id 162 userId: auth.user.id,
167 }) 163 });
168 } 164 }
169 165
170 async reorder({ 166 async reorder({
171 request, 167 request,
172 response, 168 response,
173 auth 169 auth,
174 }) { 170 }) {
175 const data = request.all(); 171 const data = request.all();
176 172
177 for (const service in data) { 173 for (const service of Object.keys(data)) {
178 // Get current settings from db 174 // Get current settings from db
179 const serviceData = (await Service.query() 175 const serviceData = (await Service.query() // eslint-disable-line no-await-in-loop
180 .where('serviceId', service) 176 .where('serviceId', service)
181 .where('userId', auth.user.id).fetch()).rows[0]; 177 .where('userId', auth.user.id).fetch()).rows[0];
182 178
183 let settings = { 179 const settings = {
184 ...JSON.parse(serviceData.settings), 180 ...JSON.parse(serviceData.settings),
185 order: data[service] 181 order: data[service],
186 }; 182 };
187 183
188 // Update data in database 184 // Update data in database
189 await (Service.query() 185 await (Service.query() // eslint-disable-line no-await-in-loop
190 .where('serviceId', service) 186 .where('serviceId', service)
191 .where('userId', auth.user.id)) 187 .where('userId', auth.user.id))
192 .update({ 188 .update({
193 settings: JSON.stringify(settings) 189 settings: JSON.stringify(settings),
194 }); 190 });
195 } 191 }
196 192
197 // Get new services 193 // Get new services
198 const services = (await auth.user.services().fetch()).rows; 194 const services = (await auth.user.services().fetch()).rows;
199 // Convert to array with all data Franz wants 195 // Convert to array with all data Franz wants
200 const servicesArray = services.map(service => ({ 196 const servicesArray = services.map((service) => ({
201 "customRecipe": false, 197 customRecipe: false,
202 "hasCustomIcon": false, 198 hasCustomIcon: false,
203 "isBadgeEnabled": true, 199 isBadgeEnabled: true,
204 "isDarkModeEnabled": "", 200 isDarkModeEnabled: '',
205 "isEnabled": true, 201 isEnabled: true,
206 "isMuted": false, 202 isMuted: false,
207 "isNotificationEnabled": true, 203 isNotificationEnabled: true,
208 "order": 1, 204 order: 1,
209 "spellcheckerLanguage": "", 205 spellcheckerLanguage: '',
210 "workspaces": [], 206 workspaces: [],
211 "iconUrl": null, 207 iconUrl: null,
212 ...JSON.parse(service.settings), 208 ...JSON.parse(service.settings),
213 "id": service.serviceId, 209 id: service.serviceId,
214 "name": service.name, 210 name: service.name,
215 "recipeId": service.recipeId, 211 recipeId: service.recipeId,
216 "userId": auth.user.id, 212 userId: auth.user.id,
217 })) 213 }));
218 214
219 return response.send(servicesArray) 215 return response.send(servicesArray);
220 } 216 }
221 217
222 update({ 218 update({
223 request, 219 response,
224 response
225 }) { 220 }) {
226 return response.send([]) 221 return response.send([]);
227 } 222 }
228 223
229 async delete({ 224 async delete({
230 request,
231 params, 225 params,
232 auth, 226 auth,
233 response 227 response,
234 }) { 228 }) {
235 // Update data in database 229 // Update data in database
236 await (Service.query() 230 await (Service.query()
237 .where('serviceId', params.id) 231 .where('serviceId', params.id)
238 .where('userId', auth.user.id)).delete() 232 .where('userId', auth.user.id)).delete();
239 233
240 return response.send({ 234 return response.send({
241 "message": "Sucessfully deleted service", 235 message: 'Sucessfully deleted service',
242 "status": 200 236 status: 200,
243 }) 237 });
244 } 238 }
245} 239}
246 240
247module.exports = ServiceController 241module.exports = ServiceController;