express-ext 0.2.2 → 0.2.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.
@@ -33,7 +33,6 @@ var GenericController = (function (_super) {
33
33
  }
34
34
  }
35
35
  _this.create = _this.create.bind(_this);
36
- _this.insert = _this.insert.bind(_this);
37
36
  _this.update = _this.update.bind(_this);
38
37
  _this.patch = _this.patch.bind(_this);
39
38
  _this.delete = _this.delete.bind(_this);
@@ -44,10 +43,7 @@ var GenericController = (function (_super) {
44
43
  return _this;
45
44
  }
46
45
  GenericController.prototype.create = function (req, res) {
47
- return this.insert(req, res);
48
- };
49
- GenericController.prototype.insert = function (req, res) {
50
- validateAndCreate(req, res, this.service.insert, this.log, this.validate, this.build);
46
+ validateAndCreate(req, res, this.service.create, this.log, this.validate, this.build);
51
47
  };
52
48
  GenericController.prototype.update = function (req, res) {
53
49
  var id = buildAndCheckIdWithBody(req, res, this.keys, this.service.update);
package/lib/client.js CHANGED
@@ -1,69 +1,90 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var http = require("http");
4
- var https = require("https");
5
- function getHealthSecure(url, timeout) {
6
- return new Promise(function (resolve) {
7
- https.get(url, { rejectUnauthorized: false }, function (res) {
8
- var data = '';
9
- res.on('data', function (d) {
10
- data += d;
11
- });
12
- res.on('end', function () {
13
- resolve({ statusCode: res.statusCode, data: data, statusMessage: res.statusMessage });
14
- });
15
- }).on('error', function (e) {
16
- return { statusCode: 500, statusMessage: e };
17
- });
18
- setTimeout(function () { return resolve({ statusCode: 408, statusMessage: 'Time out' }); }, timeout);
19
- });
20
- }
21
- function getHealth(url, timeout) {
22
- return new Promise(function (resolve) {
23
- http.get(url, function (res) {
24
- var data = '';
25
- res.on('data', function (d) {
26
- data += d;
27
- });
28
- res.on('end', function () {
29
- resolve({ statusCode: res.statusCode, data: data, statusMessage: res.statusMessage });
30
- });
31
- }).on('error', function (e) {
32
- return { statusCode: 500, statusMessage: e };
33
- });
34
- setTimeout(function () { return resolve({ statusCode: 408, statusMessage: 'Time out' }); }, timeout);
35
- });
36
- }
37
- var ClientChecker = (function () {
38
- function ClientChecker(service, url, timeout) {
39
- this.service = service;
40
- this.url = url;
41
- this.timeout = (timeout ? timeout : 4200);
42
- this.check = this.check.bind(this);
43
- this.name = this.name.bind(this);
44
- this.build = this.build.bind(this);
3
+ var http_1 = require("./http");
4
+ function checkId(obj, id, keys) {
5
+ var n = (keys && keys.length === 1 && keys[0].name ? keys[0].name : 'id');
6
+ var o = obj;
7
+ var i = id;
8
+ if (!keys || keys.length === 1) {
9
+ var v = o[n];
10
+ if (!v) {
11
+ o[n] = i;
12
+ return true;
13
+ }
14
+ if (v != i) {
15
+ return false;
16
+ }
17
+ return true;
18
+ }
19
+ var ks = Object.keys(i);
20
+ for (var _i = 0, ks_1 = ks; _i < ks_1.length; _i++) {
21
+ var k = ks_1[_i];
22
+ var v = o[k];
23
+ if (!v) {
24
+ o[k] = i[k];
25
+ }
26
+ else {
27
+ if (v != i[k]) {
28
+ return false;
29
+ }
30
+ }
31
+ o[k] = i[k];
45
32
  }
46
- ClientChecker.prototype.check = function () {
47
- var obj = {};
48
- if (this.url.startsWith('https://')) {
49
- return getHealthSecure(this.url, this.timeout).then(function (r) { return obj = r; });
33
+ return true;
34
+ }
35
+ exports.checkId = checkId;
36
+ function create(res, obj, insert, log, returnNumber) {
37
+ insert(obj).then(function (result) {
38
+ if (typeof result === 'number') {
39
+ if (result >= 1) {
40
+ res.status(201).json(returnNumber ? result : obj).end();
41
+ }
42
+ else {
43
+ res.status(409).json(result).end();
44
+ }
45
+ }
46
+ else if (Array.isArray(result)) {
47
+ res.status(422).json(result).end();
50
48
  }
51
49
  else {
52
- return getHealth(this.url, this.timeout).then(function (r) { return obj = r; });
50
+ res.status(201).json(result).end();
53
51
  }
54
- };
55
- ClientChecker.prototype.name = function () {
56
- return this.service;
57
- };
58
- ClientChecker.prototype.build = function (data, err) {
59
- if (err) {
60
- if (!data) {
61
- data = {};
52
+ }).catch(function (err) { return http_1.handleError(err, res, log); });
53
+ }
54
+ exports.create = create;
55
+ function update(res, obj, save, log, returnNumber) {
56
+ save(obj).then(function (result) {
57
+ if (typeof result === 'number') {
58
+ if (result >= 1) {
59
+ res.status(200).json(returnNumber ? result : obj).end();
60
+ }
61
+ else if (result === 0) {
62
+ res.status(404).json(result).end();
62
63
  }
63
- data['error'] = err;
64
+ else {
65
+ res.status(409).json(result).end();
66
+ }
67
+ }
68
+ else if (Array.isArray(result)) {
69
+ res.status(422).json(result).end();
70
+ }
71
+ else {
72
+ res.status(200).json(result).end();
73
+ }
74
+ }).catch(function (err) { return http_1.handleError(err, res, log); });
75
+ }
76
+ exports.update = update;
77
+ function isTypeError(errs) {
78
+ if (!errs) {
79
+ return false;
80
+ }
81
+ for (var _i = 0, errs_1 = errs; _i < errs_1.length; _i++) {
82
+ var err = errs_1[_i];
83
+ var c = err.code;
84
+ if (c === 'string' || c === 'number' || c === 'date' || c === 'boolean') {
85
+ return true;
64
86
  }
65
- return data;
66
- };
67
- return ClientChecker;
68
- }());
69
- exports.ClientChecker = ClientChecker;
87
+ }
88
+ return false;
89
+ }
90
+ exports.isTypeError = isTypeError;
package/lib/edit.js CHANGED
@@ -43,11 +43,8 @@ function create(res, obj, insert, log, returnNumber) {
43
43
  res.status(409).json(result).end();
44
44
  }
45
45
  }
46
- else if (Array.isArray(result)) {
47
- res.status(422).json(result).end();
48
- }
49
46
  else {
50
- res.status(201).json(result).end();
47
+ res.status(422).json(result).end();
51
48
  }
52
49
  }).catch(function (err) { return http_1.handleError(err, res, log); });
53
50
  }
@@ -65,11 +62,8 @@ function update(res, obj, save, log, returnNumber) {
65
62
  res.status(409).json(result).end();
66
63
  }
67
64
  }
68
- else if (Array.isArray(result)) {
69
- res.status(422).json(result).end();
70
- }
71
65
  else {
72
- res.status(200).json(result).end();
66
+ res.status(422).json(result).end();
73
67
  }
74
68
  }).catch(function (err) { return http_1.handleError(err, res, log); });
75
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-ext",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "express-ext",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./src/index.ts",
@@ -12,7 +12,7 @@ export type Save<T> = (obj: T, ctx?: any) => Promise<number|T|ErrorMessage[]>;
12
12
  export interface GenericService<T, ID, R> {
13
13
  metadata?(): Attributes|undefined;
14
14
  load(id: ID, ctx?: any): Promise<T|null>;
15
- insert(obj: T, ctx?: any): Promise<R>;
15
+ create(obj: T, ctx?: any): Promise<R>;
16
16
  update(obj: T, ctx?: any): Promise<R>;
17
17
  patch?(obj: Partial<T>, ctx?: any): Promise<R>;
18
18
  delete?(id: ID, ctx?: any): Promise<number>;
@@ -30,7 +30,6 @@ export class GenericController<T, ID> extends LoadController<T, ID> {
30
30
  }
31
31
  }
32
32
  this.create = this.create.bind(this);
33
- this.insert = this.insert.bind(this);
34
33
  this.update = this.update.bind(this);
35
34
  this.patch = this.patch.bind(this);
36
35
  this.delete = this.delete.bind(this);
@@ -40,10 +39,7 @@ export class GenericController<T, ID> extends LoadController<T, ID> {
40
39
  }
41
40
  }
42
41
  create(req: Request, res: Response): void {
43
- return this.insert(req, res);
44
- }
45
- insert(req: Request, res: Response): void {
46
- validateAndCreate(req, res, this.service.insert, this.log, this.validate, this.build);
42
+ validateAndCreate(req, res, this.service.create, this.log, this.validate, this.build);
47
43
  }
48
44
  update(req: Request, res: Response): void {
49
45
  const id = buildAndCheckIdWithBody<T, ID, any>(req, res, this.keys, this.service.update);