· 6 years ago · Sep 07, 2019, 05:06 AM
1const express = require('express');
2const router = express.Router();
3const axios = require('axios');
4const API = require('../../config/api.json');
5
6const dataStructure = [{
7 title: 'Name',
8 key: 'name',
9 type: 'text',
10 required: true,
11 },
12 {
13 title: 'City',
14 key: 'city',
15 type: 'text',
16 required: true,
17 },
18 {
19 title: 'Date',
20 key: 'date',
21 type: 'text',
22 required: true,
23 },
24 {
25 title: 'Description',
26 key: 'description',
27 type: 'selectRegister',
28 required: true,
29 }
30];
31const relatedAddNode = [{
32 title: 'Add Reference Object',
33 url: '',
34}];
35const relatedNode = [{
36 name: 'Reference Object',
37 url: '/ReferenceObject/Category/',
38 relationName: 'HAS_VALUE',
39 relationDirection: 'out'
40}]
41
42var label = "Register";
43router.get('/', function (req, res, next) {
44 axios.all([
45 axios.get(API.uniChannel + '/internal/node/get?label=' + label),
46 axios.get(API.uniChannel + '/internal/node/get?label=Register'),
47 axios.get(API.uniChannel + '/internal/node/get?label=Owner'),
48 ])
49 .then(axios.spread(function (res_register, res_registerType, res_register) {
50 res.render('component/content', {
51 title: "Register",
52 responseData: res_register.data,
53 dataStructure: dataStructure,
54 dataRegisterType: res_registerType.data,
55 dataRegister: res_register.data,
56 getData: {
57 url: '/register/getData',
58 method: 'POST',
59 },
60 insertAction: {
61 url: '/register/Create',
62 method: 'POST'
63 },
64 editAction: {
65 url: '/register/update',
66 method: 'PUT',
67 },
68 deleteAction: {
69 url: '/register/delete',
70 method: 'DELETE'
71 }
72 })
73 })).catch(function (err) {
74 console.log(err)
75 })
76})
77router.post('/getData', function (req, res, next) {
78 const sortby = {
79 label: req.body.orderby,
80 order: req.body.sortby
81 }
82 const dataParam = {
83 label: 'Register',
84 search: req.body.searchby,
85 sort: sortby,
86 rows: parseInt(req.body.rows),
87 page: parseInt(req.body.page)
88 }
89 console.log(dataParam)
90 axios.post(API.uniChannel + '/internal/node/queryPage', dataParam)
91 .then(function (result) {
92 var ret = result.data;
93 if (!Object.keys(ret).length) {
94 res.send('');
95 } else {
96 res.render('component/includes/dataCard', {
97 dataStructure: dataStructure,
98 responseData: result.data,
99 });
100 }
101 })
102 .catch(function (error) {
103 console.log(error);
104 });
105});
106
107router.post('/Create', function (req, res, next) {
108 const data = {
109 "labels": [
110 "Register"
111 ],
112 "properties": {
113 "name": req.body.name,
114 "city": req.body.city,
115 "date": req.body.date,
116 "description": req.body.description
117 },
118 "createdBy": " VinaLestari",
119 "createdVia": " WEB"
120 }
121 console.log(data)
122 axios.post(API.uniChannel + '/internal/node/create', data)
123 .then(result => {
124 console.log('Insert data success')
125 return res.json({
126 message: 'Insert data success.',
127 status: 'T'
128 });
129 })
130 .catch(err => {
131 console.log('Insert data failed')
132 console.log(err);
133 console.log(paramData)
134 return res.json({
135 message: 'Error.',
136 status: 'F'
137 });
138 });
139
140});
141
142// router.post('/Create', function(req, res, next) {
143// const data ={
144// name:req.body.name,
145// alias:req.body.alias,
146// description:req.body.description,
147// createdBy:'risma.fitria@amalsolution.com',
148// createdVia:'WEB'
149// }
150// axios.post(API.uniChannel + '/prefman/Category/create', data)
151// .then(result => {
152// console.log('Insert data success')
153// return res.json({
154// message:'Insert data success.',
155// status :'T'
156// });
157// })
158// .catch(err => {
159// console.log('Insert data failed')
160// console.log(err);
161// console.log(paramData)
162// return res.json({
163// message:'Error.',
164// status :'F'
165// });
166// });
167
168// });
169
170router.put('/Update', function (req, res, next) {
171 const properties = {
172 name: req.body.edit_name,
173 city: req.body.edit_city,
174 date: req.body.edit_date,
175 description: req.body.edit_description
176 }
177 const data = {
178 label: 'Register',
179 id: req.body.id,
180 properties: properties,
181 changedBy: 'VinaLestari',
182 changedVia: 'WEB'
183 }
184 axios.put(API.uniChannel + '/internal/node', data)
185 .then(result => {
186 console.log('Update data success')
187 return res.json({
188 message: 'Update data success.',
189 status: 'T'
190 });
191 })
192 .catch(err => {
193 console.log('Update data failed')
194 console.log(err);
195 console.log(paramData)
196 return res.json({
197 message: 'Error.',
198 status: 'F'
199 });
200 });
201
202});
203
204router.get('/:parentnode/:id', function (req, res, next) {
205 const parentnode = req.params.parentnode;
206 const id = req.params.id
207 axios.get(API.uniChannel + '/internal/node?id=' + id + '&includeRelations=true')
208 .then(function (response) {
209 res.render('component/content', {
210 title: parentnode,
211 dataStructure: dataStructure,
212 responseData: response.data,
213 relatedNode: [{
214 name: 'Category',
215 url: '/Category/ReferenceObject/'
216 }],
217 insertAction: {
218 url: '/Category/',
219 method: 'POST'
220 },
221 editAction: {
222 url: '/Category/',
223 method: 'PUT'
224 },
225 deleteAction: {
226 url: '/Category/',
227 method: 'DELETE'
228 }
229 });
230 })
231 .catch(function (error) {
232 console.log(error);
233 });
234});
235
236router.post('/', function (req, res, next) {
237
238 const paramData = {
239 name: req.body.name,
240 alias: req.body.alias,
241 description: req.body.description,
242
243 createdDate: new Date().getTime(),
244 createdBy: 'adm@uc-fe',
245 createdVia: 'WEB',
246 changedDate: '',
247 changedBy: '',
248 changedVia: '',
249 version: 1,
250 status: 'ACTIVE',
251 }
252
253 axios.post(API.uniChannel + '/CreateNode/Category', paramData)
254 .then(res => {
255 console.log('Insert data success')
256 return res.json({
257 message: 'Success.'
258 });
259 })
260 .catch(err => {
261 console.log('Insert data failed')
262 console.log(err);
263 console.log(paramData)
264 return res.json({
265 message: 'Error.'
266 });
267 });
268});
269
270router.put('/', function (req, res, next) {
271
272 return res.json({
273 message: 'Error.'
274 });
275
276 const paramData = {
277 name: req.body.name,
278 alias: req.body.alias,
279 description: req.body.description,
280
281 createdDate: new Date().getTime(),
282 createdBy: 'adm@uc-fe',
283 createdVia: 'WEB',
284 changedDate: '',
285 changedBy: '',
286 changedVia: '',
287 version: 1,
288 status: 'ACTIVE',
289 }
290
291 axios.post(API.uniChannel + '/CreateNode/Category', paramData)
292 .then(res => {
293 console.log('Insert data success')
294 return res.json({
295 message: 'Success.'
296 });
297 })
298 .catch(err => {
299 console.log('Insert data failed')
300 console.log(err);
301 console.log(paramData)
302 return res.json({
303 message: 'Error.'
304 });
305 });
306});
307
308router.delete('/', function (req, res, next) {
309 console.log(req.body.identity);
310 return res.json({
311 message: 'Error.'
312 });
313
314 const paramData = {
315 name: req.body.name,
316 alias: req.body.alias,
317 description: req.body.description,
318
319 createdDate: new Date().getTime(),
320 createdBy: 'adm@uc-fe',
321 createdVia: 'WEB',
322 changedDate: '',
323 changedBy: '',
324 changedVia: '',
325 version: 1,
326 status: 'ACTIVE',
327 }
328
329 axios.post(API.uniChannel + '/CreateNode/Category', paramData)
330 .then(res => {
331 console.log('Insert data success')
332 return res.json({
333 message: 'Success.'
334 });
335 })
336 .catch(err => {
337 console.log('Insert data failed')
338 console.log(err);
339 console.log(paramData)
340 return res.json({
341 message: 'Error.'
342 });
343 });
344});
345
346module.exports = router;