| @@ 7-102 (lines=96) @@ | ||
| 4 | * @since 1.0.0 |
|
| 5 | */ |
|
| 6 | ||
| 7 | const Joi = require('joi'); |
|
| 8 | const StatusType = require('./../repository/StatusType'); |
|
| 9 | const config = require('../config/server.config').url; |
|
| 10 | const dateUtil = require('../common/date-util'); |
|
| 11 | const NotifierError = require('../common/Error'); |
|
| 12 | const logger = require('winston'); |
|
| 13 | ||
| 14 | module.exports = [ |
|
| 15 | { |
|
| 16 | method: 'GET', |
|
| 17 | path: `${config.statusTypeApiPrefix}`, |
|
| 18 | handler: (request, reply) => { |
|
| 19 | StatusType.find().then((list) => { |
|
| 20 | reply({ |
|
| 21 | data: dateUtil.formatDates(list), |
|
| 22 | totalCount: list.length, |
|
| 23 | }); |
|
| 24 | }).catch(err => reply(err)); |
|
| 25 | }, |
|
| 26 | }, |
|
| 27 | { |
|
| 28 | method: 'POST', |
|
| 29 | path: `${config.statusTypeApiPrefix}`, |
|
| 30 | handler: (request, reply) => { |
|
| 31 | const statusType = Object.assign({}, request.payload); |
|
| 32 | StatusType.find({ value: statusType.value }) |
|
| 33 | .then((result) => { |
|
| 34 | if (result && result.length > 0) { |
|
| 35 | throw new NotifierError(NotifierError.Types.CONFLICT, { value: statusType.value }); |
|
| 36 | } |
|
| 37 | return true; |
|
| 38 | }) |
|
| 39 | .then(() => StatusType.add(statusType)) |
|
| 40 | .then(result => reply(result)) |
|
| 41 | .catch(err => reply(err)); |
|
| 42 | }, |
|
| 43 | config: { |
|
| 44 | validate: { |
|
| 45 | payload: { |
|
| 46 | label: Joi.string().required(), |
|
| 47 | value: Joi.string().required(), |
|
| 48 | template: Joi.string(), |
|
| 49 | }, |
|
| 50 | }, |
|
| 51 | }, |
|
| 52 | }, |
|
| 53 | { |
|
| 54 | method: 'PUT', |
|
| 55 | path: `${config.statusTypeApiPrefix}/{statusTypeId}`, |
|
| 56 | handler: (request, reply) => { |
|
| 57 | const statusType = Object.assign({}, request.payload); |
|
| 58 | let unset; |
|
| 59 | if (!statusType.template) { |
|
| 60 | unset = { template: 1 }; |
|
| 61 | } |
|
| 62 | StatusType.find({ value: statusType.value }) |
|
| 63 | .then((result) => { |
|
| 64 | if (result && result.length > 0 && request.params.statusTypeId !== result[0]._id) { |
|
| 65 | throw new NotifierError(NotifierError.Types.CONFLICT, { value: statusType.value }); |
|
| 66 | } |
|
| 67 | return true; |
|
| 68 | }) |
|
| 69 | .then(() => StatusType.update(request.params.statusTypeId, statusType, unset)) |
|
| 70 | .then(result => reply(result)) |
|
| 71 | .catch(err => reply(err)); |
|
| 72 | }, |
|
| 73 | config: { |
|
| 74 | validate: { |
|
| 75 | params: { |
|
| 76 | statusTypeId: Joi.string().required(), |
|
| 77 | }, |
|
| 78 | payload: { |
|
| 79 | label: Joi.string().required(), |
|
| 80 | value: Joi.string().required(), |
|
| 81 | template: Joi.string(), |
|
| 82 | }, |
|
| 83 | }, |
|
| 84 | }, |
|
| 85 | }, |
|
| 86 | { |
|
| 87 | method: 'DELETE', |
|
| 88 | path: `${config.statusTypeApiPrefix}/{statusTypeId}`, |
|
| 89 | handler: (request, reply) => { |
|
| 90 | StatusType.remove(request.params.statusTypeId) |
|
| 91 | .then(result => reply(result)) |
|
| 92 | .catch(err => reply(err)); |
|
| 93 | }, |
|
| 94 | config: { |
|
| 95 | validate: { |
|
| 96 | params: { |
|
| 97 | statusTypeId: Joi.string().required(), |
|
| 98 | }, |
|
| 99 | }, |
|
| 100 | }, |
|
| 101 | }, |
|
| 102 | ]; |
|
| 103 | ||
| @@ 7-102 (lines=96) @@ | ||
| 4 | * @since 1.0.0 |
|
| 5 | */ |
|
| 6 | ||
| 7 | const Joi = require('joi'); |
|
| 8 | const DeviceType = require('./../repository/DeviceType'); |
|
| 9 | const config = require('../config/server.config').url; |
|
| 10 | const dateUtil = require('../common/date-util'); |
|
| 11 | const NotifierError = require('../common/Error'); |
|
| 12 | const logger = require('winston'); |
|
| 13 | ||
| 14 | module.exports = [ |
|
| 15 | { |
|
| 16 | method: 'GET', |
|
| 17 | path: `${config.deviceTypeApiPrefix}`, |
|
| 18 | handler: (request, reply) => { |
|
| 19 | DeviceType.find().then((list) => { |
|
| 20 | reply({ |
|
| 21 | data: dateUtil.formatDates(list), |
|
| 22 | totalCount: list.length, |
|
| 23 | }); |
|
| 24 | }).catch(err => reply(err)); |
|
| 25 | }, |
|
| 26 | }, |
|
| 27 | { |
|
| 28 | method: 'POST', |
|
| 29 | path: `${config.deviceTypeApiPrefix}`, |
|
| 30 | handler: (request, reply) => { |
|
| 31 | const deviceType = Object.assign({}, request.payload); |
|
| 32 | DeviceType.find({ value: deviceType.value }) |
|
| 33 | .then((result) => { |
|
| 34 | if (result && result.length > 0) { |
|
| 35 | throw new NotifierError(NotifierError.Types.CONFLICT, { value: deviceType.value }); |
|
| 36 | } |
|
| 37 | return true; |
|
| 38 | }) |
|
| 39 | .then(() => DeviceType.add(deviceType)) |
|
| 40 | .then(result => reply(result)) |
|
| 41 | .catch(err => reply(err)); |
|
| 42 | }, |
|
| 43 | config: { |
|
| 44 | validate: { |
|
| 45 | payload: { |
|
| 46 | label: Joi.string().required(), |
|
| 47 | value: Joi.string().required(), |
|
| 48 | template: Joi.string(), |
|
| 49 | }, |
|
| 50 | }, |
|
| 51 | }, |
|
| 52 | }, |
|
| 53 | { |
|
| 54 | method: 'PUT', |
|
| 55 | path: `${config.deviceTypeApiPrefix}/{deviceTypeId}`, |
|
| 56 | handler: (request, reply) => { |
|
| 57 | const deviceType = Object.assign({}, request.payload); |
|
| 58 | let unset; |
|
| 59 | if (!deviceType.template) { |
|
| 60 | unset = { template: 1 }; |
|
| 61 | } |
|
| 62 | DeviceType.find({ value: deviceType.value }) |
|
| 63 | .then((result) => { |
|
| 64 | if (result && result.length > 0 && request.params.deviceTypeId !== result[0]._id) { |
|
| 65 | throw new NotifierError(NotifierError.Types.CONFLICT, { value: deviceType.value }); |
|
| 66 | } |
|
| 67 | return true; |
|
| 68 | }) |
|
| 69 | .then(() => DeviceType.update(request.params.deviceTypeId, deviceType, unset)) |
|
| 70 | .then(result => reply(result)) |
|
| 71 | .catch(err => reply(err)); |
|
| 72 | }, |
|
| 73 | config: { |
|
| 74 | validate: { |
|
| 75 | params: { |
|
| 76 | deviceTypeId: Joi.string().required(), |
|
| 77 | }, |
|
| 78 | payload: { |
|
| 79 | label: Joi.string().required(), |
|
| 80 | value: Joi.string().required(), |
|
| 81 | template: Joi.string(), |
|
| 82 | }, |
|
| 83 | }, |
|
| 84 | }, |
|
| 85 | }, |
|
| 86 | { |
|
| 87 | method: 'DELETE', |
|
| 88 | path: `${config.deviceTypeApiPrefix}/{deviceTypeId}`, |
|
| 89 | handler: (request, reply) => { |
|
| 90 | DeviceType.remove(request.params.deviceTypeId) |
|
| 91 | .then(result => reply(result)) |
|
| 92 | .catch(err => reply(err)); |
|
| 93 | }, |
|
| 94 | config: { |
|
| 95 | validate: { |
|
| 96 | params: { |
|
| 97 | deviceTypeId: Joi.string().required(), |
|
| 98 | }, |
|
| 99 | }, |
|
| 100 | }, |
|
| 101 | }, |
|
| 102 | ]; |
|
| 103 | ||