express-ext 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/GenericController.js +125 -129
- package/lib/edit.js +61 -53
- package/package.json +1 -1
- package/src/GenericController.ts +2 -4
- package/src/edit.ts +6 -0
package/lib/GenericController.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict"
|
|
2
2
|
var __extends =
|
|
3
3
|
(this && this.__extends) ||
|
|
4
4
|
(function () {
|
|
@@ -7,246 +7,242 @@ var __extends =
|
|
|
7
7
|
Object.setPrototypeOf ||
|
|
8
8
|
({ __proto__: [] } instanceof Array &&
|
|
9
9
|
function (d, b) {
|
|
10
|
-
d.__proto__ = b
|
|
10
|
+
d.__proto__ = b
|
|
11
11
|
}) ||
|
|
12
12
|
function (d, b) {
|
|
13
|
-
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]
|
|
14
|
-
}
|
|
15
|
-
return extendStatics(d, b)
|
|
16
|
-
}
|
|
13
|
+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]
|
|
14
|
+
}
|
|
15
|
+
return extendStatics(d, b)
|
|
16
|
+
}
|
|
17
17
|
return function (d, b) {
|
|
18
|
-
extendStatics(d, b)
|
|
18
|
+
extendStatics(d, b)
|
|
19
19
|
function __() {
|
|
20
|
-
this.constructor = d
|
|
20
|
+
this.constructor = d
|
|
21
21
|
}
|
|
22
|
-
d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __())
|
|
23
|
-
}
|
|
24
|
-
})()
|
|
25
|
-
Object.defineProperty(exports,
|
|
26
|
-
var edit_1 = require(
|
|
27
|
-
var http_1 = require(
|
|
28
|
-
var LoadController_1 = require(
|
|
29
|
-
var resources_1 = require(
|
|
30
|
-
var view_1 = require(
|
|
22
|
+
d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __())
|
|
23
|
+
}
|
|
24
|
+
})()
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
26
|
+
var edit_1 = require("./edit")
|
|
27
|
+
var http_1 = require("./http")
|
|
28
|
+
var LoadController_1 = require("./LoadController")
|
|
29
|
+
var resources_1 = require("./resources")
|
|
30
|
+
var view_1 = require("./view")
|
|
31
31
|
var GenericController = (function (_super) {
|
|
32
|
-
__extends(GenericController, _super)
|
|
32
|
+
__extends(GenericController, _super)
|
|
33
33
|
function GenericController(log, service, build, validate, returnNumber) {
|
|
34
|
-
var _this = _super.call(this, log, service) || this
|
|
35
|
-
_this.service = service
|
|
36
|
-
_this.build = build
|
|
37
|
-
_this.validate = validate
|
|
38
|
-
_this.returnNumber = returnNumber
|
|
34
|
+
var _this = _super.call(this, log, service) || this
|
|
35
|
+
_this.service = service
|
|
36
|
+
_this.build = build
|
|
37
|
+
_this.validate = validate
|
|
38
|
+
_this.returnNumber = returnNumber
|
|
39
39
|
if (service.metadata) {
|
|
40
|
-
var m = service.metadata()
|
|
40
|
+
var m = service.metadata()
|
|
41
41
|
if (m) {
|
|
42
|
-
_this.metadata = m
|
|
42
|
+
_this.metadata = m
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
_this.create = _this.create.bind(_this)
|
|
46
|
-
_this.update = _this.update.bind(_this)
|
|
47
|
-
_this.patch = _this.patch.bind(_this)
|
|
48
|
-
_this.delete = _this.delete.bind(_this)
|
|
45
|
+
_this.create = _this.create.bind(_this)
|
|
46
|
+
_this.update = _this.update.bind(_this)
|
|
47
|
+
_this.patch = _this.patch.bind(_this)
|
|
48
|
+
_this.delete = _this.delete.bind(_this)
|
|
49
49
|
if (!validate && resources_1.resources.createValidator && _this.metadata) {
|
|
50
|
-
var v = resources_1.resources.createValidator(_this.metadata)
|
|
51
|
-
_this.validate = v.validate
|
|
50
|
+
var v = resources_1.resources.createValidator(_this.metadata)
|
|
51
|
+
_this.validate = v.validate
|
|
52
52
|
}
|
|
53
|
-
return _this
|
|
53
|
+
return _this
|
|
54
54
|
}
|
|
55
55
|
GenericController.prototype.create = function (req, res) {
|
|
56
|
-
validateAndCreate(req, res, this.service.create, this.log, this.validate, this.build)
|
|
57
|
-
}
|
|
56
|
+
validateAndCreate(req, res, this.service.create, this.log, this.validate, this.build)
|
|
57
|
+
}
|
|
58
58
|
GenericController.prototype.update = function (req, res) {
|
|
59
|
-
var id = buildAndCheckIdWithBody(req, res, this.keys, this.service.update)
|
|
59
|
+
var id = buildAndCheckIdWithBody(req, res, this.keys, this.service.update)
|
|
60
60
|
if (id) {
|
|
61
|
-
validateAndUpdate(res, req.body, false, this.service.update, this.log, this.validate, undefined, this.build)
|
|
61
|
+
validateAndUpdate(res, req.body, false, this.service.update, this.log, this.validate, undefined, this.build)
|
|
62
62
|
}
|
|
63
|
-
}
|
|
63
|
+
}
|
|
64
64
|
GenericController.prototype.patch = function (req, res) {
|
|
65
|
-
var id = buildAndCheckIdWithBody(req, res, this.keys, this.service.patch)
|
|
65
|
+
var id = buildAndCheckIdWithBody(req, res, this.keys, this.service.patch)
|
|
66
66
|
if (id && this.service.patch) {
|
|
67
|
-
validateAndUpdate(res, req.body, true, this.service.patch, this.log, this.validate, undefined, this.build)
|
|
67
|
+
validateAndUpdate(res, req.body, true, this.service.patch, this.log, this.validate, undefined, this.build)
|
|
68
68
|
}
|
|
69
|
-
}
|
|
69
|
+
}
|
|
70
70
|
GenericController.prototype.delete = function (req, res) {
|
|
71
|
-
var _this = this
|
|
72
|
-
var id = view_1.buildAndCheckId(req, res, this.keys)
|
|
71
|
+
var _this = this
|
|
72
|
+
var id = view_1.buildAndCheckId(req, res, this.keys)
|
|
73
73
|
if (id) {
|
|
74
74
|
if (!this.service.delete) {
|
|
75
|
-
res.status(405).end(
|
|
75
|
+
res.status(405).end("Method Not Allowed")
|
|
76
76
|
} else {
|
|
77
77
|
this.service
|
|
78
78
|
.delete(id)
|
|
79
79
|
.then(function (count) {
|
|
80
|
-
res.status(getDeleteStatus(count)).json(count).end()
|
|
80
|
+
res.status(getDeleteStatus(count)).json(count).end()
|
|
81
81
|
})
|
|
82
82
|
.catch(function (err) {
|
|
83
|
-
return http_1.handleError(err, res, _this.log)
|
|
84
|
-
})
|
|
83
|
+
return http_1.handleError(err, res, _this.log)
|
|
84
|
+
})
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
}
|
|
88
|
-
return GenericController
|
|
89
|
-
})(LoadController_1.LoadController)
|
|
90
|
-
exports.GenericController = GenericController
|
|
87
|
+
}
|
|
88
|
+
return GenericController
|
|
89
|
+
})(LoadController_1.LoadController)
|
|
90
|
+
exports.GenericController = GenericController
|
|
91
91
|
function validateAndCreate(req, res, save, log, validate, build, returnNumber) {
|
|
92
|
-
var obj = req.body
|
|
93
|
-
if (!obj || obj ===
|
|
94
|
-
res.status(400).end(
|
|
92
|
+
var obj = req.body
|
|
93
|
+
if (!obj || obj === "") {
|
|
94
|
+
res.status(400).end("The request body cannot be empty.")
|
|
95
95
|
} else {
|
|
96
96
|
if (validate) {
|
|
97
97
|
validate(obj)
|
|
98
98
|
.then(function (errors) {
|
|
99
99
|
if (errors && errors.length > 0) {
|
|
100
|
-
res.status(getStatusCode(errors)).json(errors).end()
|
|
100
|
+
res.status(edit_1.getStatusCode(errors)).json(errors).end()
|
|
101
101
|
} else {
|
|
102
102
|
if (build) {
|
|
103
|
-
build(res, obj, true)
|
|
103
|
+
build(res, obj, true)
|
|
104
104
|
}
|
|
105
|
-
edit_1.create(res, obj, save, log, returnNumber)
|
|
105
|
+
edit_1.create(res, obj, save, log, returnNumber)
|
|
106
106
|
}
|
|
107
107
|
})
|
|
108
108
|
.catch(function (err) {
|
|
109
|
-
return http_1.handleError(err, res, log)
|
|
110
|
-
})
|
|
109
|
+
return http_1.handleError(err, res, log)
|
|
110
|
+
})
|
|
111
111
|
} else {
|
|
112
|
-
edit_1.create(res, obj, save, log, returnNumber)
|
|
112
|
+
edit_1.create(res, obj, save, log, returnNumber)
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
exports.validateAndCreate = validateAndCreate
|
|
116
|
+
exports.validateAndCreate = validateAndCreate
|
|
117
117
|
function validateAndUpdate(res, obj, isPatch, save, log, validate, resource, build, returnNumber) {
|
|
118
118
|
if (validate) {
|
|
119
119
|
validate(obj, resource, isPatch)
|
|
120
120
|
.then(function (errors) {
|
|
121
121
|
if (errors && errors.length > 0) {
|
|
122
|
-
res.status(getStatusCode(errors)).json(errors).end()
|
|
122
|
+
res.status(edit_1.getStatusCode(errors)).json(errors).end()
|
|
123
123
|
} else {
|
|
124
124
|
if (build) {
|
|
125
|
-
build(res, obj, false, isPatch)
|
|
125
|
+
build(res, obj, false, isPatch)
|
|
126
126
|
}
|
|
127
|
-
edit_1.update(res, obj, save, log, returnNumber)
|
|
127
|
+
edit_1.update(res, obj, save, log, returnNumber)
|
|
128
128
|
}
|
|
129
129
|
})
|
|
130
130
|
.catch(function (err) {
|
|
131
|
-
return http_1.handleError(err, res, log)
|
|
132
|
-
})
|
|
131
|
+
return http_1.handleError(err, res, log)
|
|
132
|
+
})
|
|
133
133
|
} else {
|
|
134
|
-
edit_1.update(res, obj, save, log, returnNumber)
|
|
134
|
+
edit_1.update(res, obj, save, log, returnNumber)
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
exports.validateAndUpdate = validateAndUpdate
|
|
137
|
+
exports.validateAndUpdate = validateAndUpdate
|
|
138
138
|
function buildAndCheckIdWithBody(req, res, keys, patch) {
|
|
139
|
-
var obj = req.body
|
|
140
|
-
if (!obj || obj ===
|
|
141
|
-
res.status(400).end(
|
|
142
|
-
return undefined
|
|
139
|
+
var obj = req.body
|
|
140
|
+
if (!obj || obj === "") {
|
|
141
|
+
res.status(400).end("The request body cannot be empty.")
|
|
142
|
+
return undefined
|
|
143
143
|
}
|
|
144
144
|
if (!patch) {
|
|
145
|
-
res.status(405).end(
|
|
146
|
-
return undefined
|
|
145
|
+
res.status(405).end("Method Not Allowed")
|
|
146
|
+
return undefined
|
|
147
147
|
}
|
|
148
|
-
var id = view_1.buildId(req, keys)
|
|
148
|
+
var id = view_1.buildId(req, keys)
|
|
149
149
|
if (!id) {
|
|
150
|
-
res.status(400).end(
|
|
151
|
-
return undefined
|
|
150
|
+
res.status(400).end("Invalid parameters")
|
|
151
|
+
return undefined
|
|
152
152
|
}
|
|
153
|
-
var ok = edit_1.checkId(obj, id, keys)
|
|
153
|
+
var ok = edit_1.checkId(obj, id, keys)
|
|
154
154
|
if (!ok) {
|
|
155
|
-
res.status(400).end(
|
|
156
|
-
return undefined
|
|
155
|
+
res.status(400).end("body and url are not matched")
|
|
156
|
+
return undefined
|
|
157
157
|
}
|
|
158
|
-
return id
|
|
158
|
+
return id
|
|
159
159
|
}
|
|
160
|
-
exports.buildAndCheckIdWithBody = buildAndCheckIdWithBody
|
|
160
|
+
exports.buildAndCheckIdWithBody = buildAndCheckIdWithBody
|
|
161
161
|
function getDeleteStatus(count) {
|
|
162
162
|
if (count > 0) {
|
|
163
|
-
return 200
|
|
163
|
+
return 200
|
|
164
164
|
} else if (count === 0) {
|
|
165
|
-
return 404
|
|
165
|
+
return 404
|
|
166
166
|
} else {
|
|
167
|
-
return 409
|
|
167
|
+
return 409
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
-
exports.getDeleteStatus = getDeleteStatus
|
|
171
|
-
function getStatusCode(errs) {
|
|
172
|
-
return edit_1.isTypeError(errs) ? 400 : 422;
|
|
173
|
-
}
|
|
174
|
-
exports.getStatusCode = getStatusCode;
|
|
170
|
+
exports.getDeleteStatus = getDeleteStatus
|
|
175
171
|
function useBuild(c, generate) {
|
|
176
172
|
var b = new Builder(
|
|
177
173
|
generate,
|
|
178
|
-
c.id ? c.id :
|
|
179
|
-
c.payload ? c.payload :
|
|
180
|
-
c.user ? c.user :
|
|
181
|
-
c.updatedBy ? c.updatedBy :
|
|
182
|
-
c.updatedAt ? c.updatedAt :
|
|
183
|
-
c.createdBy ? c.createdBy :
|
|
184
|
-
c.createdAt ? c.createdAt :
|
|
185
|
-
c.version ? c.version :
|
|
186
|
-
)
|
|
187
|
-
return b.build
|
|
174
|
+
c.id ? c.id : "",
|
|
175
|
+
c.payload ? c.payload : "",
|
|
176
|
+
c.user ? c.user : "",
|
|
177
|
+
c.updatedBy ? c.updatedBy : "",
|
|
178
|
+
c.updatedAt ? c.updatedAt : "",
|
|
179
|
+
c.createdBy ? c.createdBy : "",
|
|
180
|
+
c.createdAt ? c.createdAt : "",
|
|
181
|
+
c.version ? c.version : "",
|
|
182
|
+
)
|
|
183
|
+
return b.build
|
|
188
184
|
}
|
|
189
|
-
exports.useBuild = useBuild
|
|
185
|
+
exports.useBuild = useBuild
|
|
190
186
|
var Builder = (function () {
|
|
191
187
|
function Builder(generate, id, payload, user, updatedBy, updatedAt, createdBy, createdAt, version) {
|
|
192
|
-
this.generate = generate
|
|
193
|
-
this.id = id
|
|
194
|
-
this.payload = payload
|
|
195
|
-
this.user = user
|
|
196
|
-
this.updatedBy = updatedBy
|
|
197
|
-
this.updatedAt = updatedAt
|
|
198
|
-
this.createdBy = createdBy
|
|
199
|
-
this.createdAt = createdAt
|
|
200
|
-
this.version = version
|
|
201
|
-
this.build = this.build.bind(this)
|
|
188
|
+
this.generate = generate
|
|
189
|
+
this.id = id
|
|
190
|
+
this.payload = payload
|
|
191
|
+
this.user = user
|
|
192
|
+
this.updatedBy = updatedBy
|
|
193
|
+
this.updatedAt = updatedAt
|
|
194
|
+
this.createdBy = createdBy
|
|
195
|
+
this.createdAt = createdAt
|
|
196
|
+
this.version = version
|
|
197
|
+
this.build = this.build.bind(this)
|
|
202
198
|
}
|
|
203
199
|
Builder.prototype.build = function (res, obj, isCreate, isPatch) {
|
|
204
|
-
var o = obj
|
|
205
|
-
var usr =
|
|
200
|
+
var o = obj
|
|
201
|
+
var usr = ""
|
|
206
202
|
if (this.user.length > 0) {
|
|
207
203
|
if (this.payload.length > 0) {
|
|
208
|
-
var payload = res.locals[this.payload]
|
|
204
|
+
var payload = res.locals[this.payload]
|
|
209
205
|
if (payload) {
|
|
210
|
-
usr = payload[this.user]
|
|
206
|
+
usr = payload[this.user]
|
|
211
207
|
}
|
|
212
208
|
} else {
|
|
213
|
-
usr = res.locals[this.user]
|
|
209
|
+
usr = res.locals[this.user]
|
|
214
210
|
}
|
|
215
211
|
}
|
|
216
212
|
if (!usr) {
|
|
217
|
-
usr =
|
|
213
|
+
usr = ""
|
|
218
214
|
}
|
|
219
|
-
var now = new Date()
|
|
215
|
+
var now = new Date()
|
|
220
216
|
if (isCreate) {
|
|
221
217
|
if (this.generate && this.id.length > 0) {
|
|
222
|
-
o[this.id] = this.generate()
|
|
218
|
+
o[this.id] = this.generate()
|
|
223
219
|
}
|
|
224
220
|
if (usr.length > 0) {
|
|
225
221
|
if (this.createdAt.length > 0) {
|
|
226
|
-
o[this.createdAt] = now
|
|
222
|
+
o[this.createdAt] = now
|
|
227
223
|
}
|
|
228
224
|
if (this.createdBy.length > 0) {
|
|
229
|
-
o[this.createdBy] = usr
|
|
225
|
+
o[this.createdBy] = usr
|
|
230
226
|
}
|
|
231
227
|
}
|
|
232
228
|
if (this.version.length > 0) {
|
|
233
|
-
o[this.version] = 1
|
|
229
|
+
o[this.version] = 1
|
|
234
230
|
}
|
|
235
231
|
} else if (isPatch) {
|
|
236
|
-
var keys = Object.keys(o)
|
|
232
|
+
var keys = Object.keys(o)
|
|
237
233
|
if (keys.length === 0) {
|
|
238
|
-
return
|
|
234
|
+
return
|
|
239
235
|
}
|
|
240
236
|
}
|
|
241
237
|
if (usr.length > 0) {
|
|
242
238
|
if (this.updatedAt.length > 0) {
|
|
243
|
-
o[this.updatedAt] = now
|
|
239
|
+
o[this.updatedAt] = now
|
|
244
240
|
}
|
|
245
241
|
if (this.updatedBy.length > 0) {
|
|
246
|
-
o[this.updatedBy] = usr
|
|
242
|
+
o[this.updatedBy] = usr
|
|
247
243
|
}
|
|
248
244
|
}
|
|
249
|
-
}
|
|
250
|
-
return Builder
|
|
251
|
-
})()
|
|
252
|
-
exports.Builder = Builder
|
|
245
|
+
}
|
|
246
|
+
return Builder
|
|
247
|
+
})()
|
|
248
|
+
exports.Builder = Builder
|
package/lib/edit.js
CHANGED
|
@@ -1,108 +1,116 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports,
|
|
3
|
-
var http_1 = require(
|
|
1
|
+
"use strict"
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true })
|
|
3
|
+
var http_1 = require("./http")
|
|
4
4
|
function checkId(obj, id, keys) {
|
|
5
|
-
var n = keys && keys.length === 1 && keys[0].name ? keys[0].name :
|
|
6
|
-
var o = obj
|
|
7
|
-
var i = id
|
|
5
|
+
var n = keys && keys.length === 1 && keys[0].name ? keys[0].name : "id"
|
|
6
|
+
var o = obj
|
|
7
|
+
var i = id
|
|
8
8
|
if (!keys || keys.length === 1) {
|
|
9
|
-
var v = o[n]
|
|
9
|
+
var v = o[n]
|
|
10
10
|
if (!v) {
|
|
11
|
-
o[n] = i
|
|
12
|
-
return true
|
|
11
|
+
o[n] = i
|
|
12
|
+
return true
|
|
13
13
|
}
|
|
14
14
|
if (v != i) {
|
|
15
|
-
return false
|
|
15
|
+
return false
|
|
16
16
|
}
|
|
17
|
-
return true
|
|
17
|
+
return true
|
|
18
18
|
}
|
|
19
|
-
var ks = Object.keys(i)
|
|
19
|
+
var ks = Object.keys(i)
|
|
20
20
|
for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
|
|
21
|
-
var k = ks_1[_i]
|
|
22
|
-
var v = o[k]
|
|
21
|
+
var k = ks_1[_i]
|
|
22
|
+
var v = o[k]
|
|
23
23
|
if (!v) {
|
|
24
|
-
o[k] = i[k]
|
|
24
|
+
o[k] = i[k]
|
|
25
25
|
} else {
|
|
26
26
|
if (v != i[k]) {
|
|
27
|
-
return false
|
|
27
|
+
return false
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
o[k] = i[k]
|
|
30
|
+
o[k] = i[k]
|
|
31
31
|
}
|
|
32
|
-
return true
|
|
32
|
+
return true
|
|
33
33
|
}
|
|
34
|
-
exports.checkId = checkId
|
|
34
|
+
exports.checkId = checkId
|
|
35
35
|
function create(res, obj, insert, log, returnNumber) {
|
|
36
36
|
insert(obj)
|
|
37
37
|
.then(function (result) {
|
|
38
|
-
if (typeof result ===
|
|
38
|
+
if (typeof result === "number") {
|
|
39
39
|
if (result >= 1) {
|
|
40
40
|
res
|
|
41
41
|
.status(201)
|
|
42
42
|
.json(returnNumber ? result : obj)
|
|
43
|
-
.end()
|
|
43
|
+
.end()
|
|
44
44
|
} else {
|
|
45
|
-
res.status(409).json(result).end()
|
|
45
|
+
res.status(409).json(result).end()
|
|
46
46
|
}
|
|
47
47
|
} else if (Array.isArray(result)) {
|
|
48
|
-
res.status(422).json(result).end()
|
|
48
|
+
res.status(422).json(result).end()
|
|
49
49
|
} else {
|
|
50
|
-
res.status(201).json(result).end()
|
|
50
|
+
res.status(201).json(result).end()
|
|
51
51
|
}
|
|
52
52
|
})
|
|
53
53
|
.catch(function (err) {
|
|
54
|
-
return http_1.handleError(err, res, log)
|
|
55
|
-
})
|
|
54
|
+
return http_1.handleError(err, res, log)
|
|
55
|
+
})
|
|
56
56
|
}
|
|
57
|
-
exports.create = create
|
|
57
|
+
exports.create = create
|
|
58
58
|
function update(res, obj, save, log, returnNumber) {
|
|
59
59
|
save(obj)
|
|
60
60
|
.then(function (result) {
|
|
61
|
-
if (typeof result ===
|
|
61
|
+
if (typeof result === "number") {
|
|
62
62
|
if (result >= 1) {
|
|
63
63
|
res
|
|
64
64
|
.status(200)
|
|
65
65
|
.json(returnNumber ? result : obj)
|
|
66
|
-
.end()
|
|
66
|
+
.end()
|
|
67
67
|
} else if (result === 0) {
|
|
68
|
-
res.status(404).json(result).end()
|
|
68
|
+
res.status(404).json(result).end()
|
|
69
69
|
} else {
|
|
70
|
-
res.status(409).json(result).end()
|
|
70
|
+
res.status(409).json(result).end()
|
|
71
71
|
}
|
|
72
72
|
} else if (Array.isArray(result)) {
|
|
73
|
-
res.status(422).json(result).end()
|
|
73
|
+
res.status(422).json(result).end()
|
|
74
74
|
} else {
|
|
75
|
-
res.status(200).json(result).end()
|
|
75
|
+
res.status(200).json(result).end()
|
|
76
76
|
}
|
|
77
77
|
})
|
|
78
78
|
.catch(function (err) {
|
|
79
|
-
return http_1.handleError(err, res, log)
|
|
80
|
-
})
|
|
79
|
+
return http_1.handleError(err, res, log)
|
|
80
|
+
})
|
|
81
81
|
}
|
|
82
|
-
exports.update = update
|
|
82
|
+
exports.update = update
|
|
83
83
|
function isTypeError(errs) {
|
|
84
84
|
if (!errs) {
|
|
85
|
-
return false
|
|
85
|
+
return false
|
|
86
86
|
}
|
|
87
87
|
for (var _i = 0, errs_1 = errs; _i < errs_1.length; _i++) {
|
|
88
|
-
var err = errs_1[_i]
|
|
89
|
-
var c = err.code
|
|
88
|
+
var err = errs_1[_i]
|
|
89
|
+
var c = err.code
|
|
90
90
|
if (
|
|
91
|
-
c ===
|
|
92
|
-
c ===
|
|
93
|
-
c ===
|
|
94
|
-
c ===
|
|
95
|
-
c ===
|
|
96
|
-
c ===
|
|
97
|
-
c ===
|
|
98
|
-
c ===
|
|
99
|
-
c ===
|
|
100
|
-
c ===
|
|
101
|
-
c ===
|
|
91
|
+
c === "type" ||
|
|
92
|
+
c === "string" ||
|
|
93
|
+
c === "number" ||
|
|
94
|
+
c === "date" ||
|
|
95
|
+
c === "boolean" ||
|
|
96
|
+
c === "strings" ||
|
|
97
|
+
c === "numbers" ||
|
|
98
|
+
c === "integers" ||
|
|
99
|
+
c === "dates" ||
|
|
100
|
+
c === "datetimes" ||
|
|
101
|
+
c === "booleans"
|
|
102
102
|
) {
|
|
103
|
-
return true
|
|
103
|
+
return true
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
return false
|
|
106
|
+
return false
|
|
107
|
+
}
|
|
108
|
+
exports.isTypeError = isTypeError
|
|
109
|
+
function getStatusCode(errs) {
|
|
110
|
+
return isTypeError(errs) ? 400 : 422
|
|
111
|
+
}
|
|
112
|
+
exports.getStatusCode = getStatusCode
|
|
113
|
+
function respondError(res, errors) {
|
|
114
|
+
res.status(getStatusCode(errors)).json(errors).end()
|
|
107
115
|
}
|
|
108
|
-
exports.
|
|
116
|
+
exports.respondError = respondError
|
package/package.json
CHANGED
package/src/GenericController.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Request, Response } from "express"
|
|
2
|
-
import { checkId, create,
|
|
2
|
+
import { checkId, create, getStatusCode, update } from "./edit"
|
|
3
3
|
import { handleError, Log } from "./http"
|
|
4
4
|
import { LoadController } from "./LoadController"
|
|
5
5
|
import { Attribute, Attributes, ErrorMessage } from "./metadata"
|
|
@@ -165,9 +165,7 @@ export function getDeleteStatus(count: number): number {
|
|
|
165
165
|
return 409
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
-
|
|
169
|
-
return isTypeError(errs) ? 400 : 422
|
|
170
|
-
}
|
|
168
|
+
|
|
171
169
|
export interface ModelConfig {
|
|
172
170
|
id?: string
|
|
173
171
|
payload?: string
|
package/src/edit.ts
CHANGED
|
@@ -140,3 +140,9 @@ export function isTypeError(errs: ErrorMessage[]): boolean {
|
|
|
140
140
|
}
|
|
141
141
|
return false
|
|
142
142
|
}
|
|
143
|
+
export function getStatusCode(errs: ErrorMessage[]): number {
|
|
144
|
+
return isTypeError(errs) ? 400 : 422
|
|
145
|
+
}
|
|
146
|
+
export function respondError(res: Response, errors: ErrorMessage[]) {
|
|
147
|
+
res.status(getStatusCode(errors)).json(errors).end()
|
|
148
|
+
}
|