@flink-app/management-api-plugin 1.0.0 → 2.0.0-alpha.101

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.
Files changed (114) hide show
  1. package/.flink/generatedAgents.ts +5 -0
  2. package/.flink/generatedHandlers.ts +9 -9
  3. package/.flink/generatedJobs.ts +1 -1
  4. package/.flink/generatedRepos.ts +1 -1
  5. package/.flink/generatedServices.ts +5 -0
  6. package/.flink/generatedTools.ts +5 -0
  7. package/.flink/schema-cache.json +347 -0
  8. package/.flink/schemas/schemas.json +293 -113
  9. package/.flink/start.ts +4 -1
  10. package/CHANGELOG.md +382 -0
  11. package/dist/.flink/generatedAgents.d.ts +1 -0
  12. package/dist/.flink/generatedAgents.js +14 -0
  13. package/dist/.flink/generatedAgents.js.map +1 -0
  14. package/dist/.flink/generatedHandlers.d.ts +10 -10
  15. package/dist/.flink/generatedHandlers.js +83 -32
  16. package/dist/.flink/generatedHandlers.js.map +1 -0
  17. package/dist/.flink/generatedJobs.js +13 -6
  18. package/dist/.flink/generatedJobs.js.map +1 -0
  19. package/dist/.flink/generatedRepos.js +25 -10
  20. package/dist/.flink/generatedRepos.js.map +1 -0
  21. package/dist/.flink/generatedServices.js +14 -0
  22. package/dist/.flink/generatedServices.js.map +1 -0
  23. package/dist/.flink/generatedTools.d.ts +1 -0
  24. package/dist/.flink/generatedTools.js +14 -0
  25. package/dist/.flink/generatedTools.js.map +1 -0
  26. package/dist/.flink/schema-manifest.json +297 -0
  27. package/dist/.flink/schemas/schemas.d.ts +10 -10
  28. package/dist/.flink/schemas/schemas.json +293 -113
  29. package/dist/.flink/start.d.ts +2 -0
  30. package/dist/.flink/start.js +15 -3
  31. package/dist/.flink/start.js.map +1 -0
  32. package/dist/.tsbuildinfo +1 -0
  33. package/dist/src/Ctx.js +3 -1
  34. package/dist/src/Ctx.js.map +1 -0
  35. package/dist/src/handlers/Management/GetManagement.d.ts +1 -1
  36. package/dist/src/handlers/Management/GetManagement.js +14 -47
  37. package/dist/src/handlers/Management/GetManagement.js.map +1 -0
  38. package/dist/src/handlers/User/DeleteByUserid.d.ts +1 -2
  39. package/dist/src/handlers/User/DeleteByUserid.js +29 -60
  40. package/dist/src/handlers/User/DeleteByUserid.js.map +1 -0
  41. package/dist/src/handlers/User/GetByUserid.d.ts +1 -2
  42. package/dist/src/handlers/User/GetByUserid.js +30 -61
  43. package/dist/src/handlers/User/GetByUserid.js.map +1 -0
  44. package/dist/src/handlers/User/GetList.d.ts +1 -1
  45. package/dist/src/handlers/User/GetList.js +19 -58
  46. package/dist/src/handlers/User/GetList.js.map +1 -0
  47. package/dist/src/handlers/User/GetMe.d.ts +1 -1
  48. package/dist/src/handlers/User/GetMe.js +67 -74
  49. package/dist/src/handlers/User/GetMe.js.map +1 -0
  50. package/dist/src/handlers/User/Post.d.ts +1 -2
  51. package/dist/src/handlers/User/Post.js +43 -79
  52. package/dist/src/handlers/User/Post.js.map +1 -0
  53. package/dist/src/handlers/User/PostLogin.d.ts +1 -2
  54. package/dist/src/handlers/User/PostLogin.js +47 -78
  55. package/dist/src/handlers/User/PostLogin.js.map +1 -0
  56. package/dist/src/handlers/User/PutByUserid.d.ts +1 -2
  57. package/dist/src/handlers/User/PutByUserid.js +47 -86
  58. package/dist/src/handlers/User/PutByUserid.js.map +1 -0
  59. package/dist/src/index.js +185 -117
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/managementApiContext.js +3 -1
  62. package/dist/src/managementApiContext.js.map +1 -0
  63. package/dist/src/models/ManagementApi.js +12 -5
  64. package/dist/src/models/ManagementApi.js.map +1 -0
  65. package/dist/src/repos/ManagementUserRepo.js +12 -24
  66. package/dist/src/repos/ManagementUserRepo.js.map +1 -0
  67. package/dist/src/schemas/Management/GetReq.js +3 -1
  68. package/dist/src/schemas/Management/GetReq.js.map +1 -0
  69. package/dist/src/schemas/Management/GetRes.js +3 -1
  70. package/dist/src/schemas/Management/GetRes.js.map +1 -0
  71. package/dist/src/schemas/ManagementUser.js +3 -1
  72. package/dist/src/schemas/ManagementUser.js.map +1 -0
  73. package/dist/src/schemas/ManagementUserViewModel.js +49 -15
  74. package/dist/src/schemas/ManagementUserViewModel.js.map +1 -0
  75. package/dist/src/schemas/ModuleList.js +3 -1
  76. package/dist/src/schemas/ModuleList.js.map +1 -0
  77. package/dist/src/schemas/User/DeleteByUseridReq.js +3 -1
  78. package/dist/src/schemas/User/DeleteByUseridReq.js.map +1 -0
  79. package/dist/src/schemas/User/DeleteByUseridRes.js +3 -1
  80. package/dist/src/schemas/User/DeleteByUseridRes.js.map +1 -0
  81. package/dist/src/schemas/User/GetByUseridReq.js +3 -1
  82. package/dist/src/schemas/User/GetByUseridReq.js.map +1 -0
  83. package/dist/src/schemas/User/GetByUseridRes.js +3 -1
  84. package/dist/src/schemas/User/GetByUseridRes.js.map +1 -0
  85. package/dist/src/schemas/User/GetListReq.js +3 -1
  86. package/dist/src/schemas/User/GetListReq.js.map +1 -0
  87. package/dist/src/schemas/User/GetListRes.js +3 -1
  88. package/dist/src/schemas/User/GetListRes.js.map +1 -0
  89. package/dist/src/schemas/User/GetMeReq.js +3 -1
  90. package/dist/src/schemas/User/GetMeReq.js.map +1 -0
  91. package/dist/src/schemas/User/GetMeRes.js +3 -1
  92. package/dist/src/schemas/User/GetMeRes.js.map +1 -0
  93. package/dist/src/schemas/User/PostLoginReq.js +3 -1
  94. package/dist/src/schemas/User/PostLoginReq.js.map +1 -0
  95. package/dist/src/schemas/User/PostLoginRes.js +3 -1
  96. package/dist/src/schemas/User/PostLoginRes.js.map +1 -0
  97. package/dist/src/schemas/User/PostReq.js +3 -1
  98. package/dist/src/schemas/User/PostReq.js.map +1 -0
  99. package/dist/src/schemas/User/PostRes.js +3 -1
  100. package/dist/src/schemas/User/PostRes.js.map +1 -0
  101. package/dist/src/schemas/User/PutByUseridReq.js +3 -1
  102. package/dist/src/schemas/User/PutByUseridReq.js.map +1 -0
  103. package/dist/src/schemas/User/PutByUseridRes.js +3 -1
  104. package/dist/src/schemas/User/PutByUseridRes.js.map +1 -0
  105. package/dist/src/utils/bcrypt.js +30 -17
  106. package/dist/src/utils/bcrypt.js.map +1 -0
  107. package/package.json +5 -2
  108. package/src/handlers/User/DeleteByUserid.ts +11 -17
  109. package/src/handlers/User/GetByUserid.ts +7 -8
  110. package/src/handlers/User/GetMe.ts +15 -21
  111. package/src/handlers/User/PostLogin.ts +14 -24
  112. package/src/handlers/User/PutByUserid.ts +20 -30
  113. package/src/index.ts +26 -4
  114. package/.flink/schemas/schemas.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/management-api-plugin/src/handlers/User/Post.ts"],"sourcesContent":["import { badRequest, conflict, Handler, HttpMethod, RouteProps } from \"@flink-app/flink\";\nimport { Ctx } from \"../../Ctx\";\nimport { GetManagementUserViewModel } from \"../../schemas/ManagementUserViewModel\";\nimport { PostUserReq } from \"../../schemas/User/PostReq\";\nimport { PostUserRes } from \"../../schemas/User/PostRes\";\nimport { encrypt, genSalt } from \"../../utils/bcrypt\";\nexport const Route: RouteProps = {\n path: \"/user\",\n method: HttpMethod.post,\n};\n\ntype Params = {};\n\nconst PostUser: Handler<Ctx, PostUserReq, PostUserRes, Params> = async ({ ctx, req }) => {\n if (req.body.username.length == 0 || req.body.password.length == 0) {\n return badRequest(\"Username and password must be specified\");\n }\n const existingUser = await ctx.repos.managementuserRepo.getOne({ username: req.body.username });\n if (existingUser != null) {\n return conflict(\"Username already taken\");\n }\n\n const salt = await genSalt(10);\n const hash = await encrypt(req.body.password, salt);\n\n var obj = {\n username: req.body.username,\n password: hash,\n salt: salt,\n };\n\n const user = await ctx.repos.managementuserRepo.create(obj);\n\n return {\n data: GetManagementUserViewModel(user),\n status: 200,\n };\n};\nexport default PostUser;\n"],"names":["Route","path","method","HttpMethod","post","PostUser","ctx","req","body","username","length","password","badRequest","existingUser","repos","managementuserRepo","getOne","conflict","salt","genSalt","hash","encrypt","obj","user","create","data","GetManagementUserViewModel","status"],"mappings":";;;;;;;;;;;QAMaA;eAAAA;;QAgCb;eAAA;;;uBAtCsE;yCAE3B;wBAGV;AAC1B,MAAMA,QAAoB;IAC7BC,MAAM;IACNC,QAAQC,iBAAU,CAACC,IAAI;AAC3B;AAIA,MAAMC,WAA2D,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;IAChF,IAAIA,IAAIC,IAAI,CAACC,QAAQ,CAACC,MAAM,IAAI,KAAKH,IAAIC,IAAI,CAACG,QAAQ,CAACD,MAAM,IAAI,GAAG;QAChE,OAAOE,IAAAA,iBAAU,EAAC;IACtB;IACA,MAAMC,eAAe,MAAMP,IAAIQ,KAAK,CAACC,kBAAkB,CAACC,MAAM,CAAC;QAAEP,UAAUF,IAAIC,IAAI,CAACC,QAAQ;IAAC;IAC7F,IAAII,gBAAgB,MAAM;QACtB,OAAOI,IAAAA,eAAQ,EAAC;IACpB;IAEA,MAAMC,OAAO,MAAMC,IAAAA,eAAO,EAAC;IAC3B,MAAMC,OAAO,MAAMC,IAAAA,eAAO,EAACd,IAAIC,IAAI,CAACG,QAAQ,EAAEO;IAE9C,IAAII,MAAM;QACNb,UAAUF,IAAIC,IAAI,CAACC,QAAQ;QAC3BE,UAAUS;QACVF,MAAMA;IACV;IAEA,MAAMK,OAAO,MAAMjB,IAAIQ,KAAK,CAACC,kBAAkB,CAACS,MAAM,CAACF;IAEvD,OAAO;QACHG,MAAMC,IAAAA,mDAA0B,EAACH;QACjCI,QAAQ;IACZ;AACJ;MACA,WAAetB"}
@@ -6,5 +6,4 @@ export declare const Route: RouteProps;
6
6
  type Params = {};
7
7
  declare const PostUserLogin: Handler<Ctx, PostUserLoginReq, PostUserLoginRes, Params>;
8
8
  export default PostUserLogin;
9
- export declare const __assumedHttpMethod = "post", __file = "PostLogin.ts", __query: never[], __params: never[];
10
- export declare const __schemas: any;
9
+ export declare const __assumedHttpMethod = "post", __file = "src/handlers/User/PostLogin.ts", __query: never[], __params: never[];
@@ -1,84 +1,53 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
10
+ }
11
+ _export(exports, {
12
+ get Route () {
13
+ return Route;
14
+ },
15
+ get default () {
16
+ return _default;
36
17
  }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.__schemas = exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = exports.Route = void 0;
43
- var flink_1 = require("@flink-app/flink");
44
- var jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
45
- var ManagementUserViewModel_1 = require("../../schemas/ManagementUserViewModel");
46
- var bcrypt_1 = require("../../utils/bcrypt");
47
- exports.Route = {
18
+ });
19
+ const _flink = require("@flink-app/flink");
20
+ const _jsonwebtoken = /*#__PURE__*/ _interop_require_default(require("jsonwebtoken"));
21
+ const _ManagementUserViewModel = require("../../schemas/ManagementUserViewModel");
22
+ const _bcrypt = require("../../utils/bcrypt");
23
+ function _interop_require_default(obj) {
24
+ return obj && obj.__esModule ? obj : {
25
+ default: obj
26
+ };
27
+ }
28
+ const Route = {
48
29
  path: "/user/login",
49
- method: flink_1.HttpMethod.post,
30
+ method: _flink.HttpMethod.post
50
31
  };
51
- var PostUserLogin = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
52
- var user, hashCandidate, viewUser, token;
53
- var ctx = _b.ctx, req = _b.req;
54
- return __generator(this, function (_c) {
55
- switch (_c.label) {
56
- case 0: return [4 /*yield*/, ctx.repos.managementuserRepo.getOne({
57
- username: req.body.username,
58
- })];
59
- case 1:
60
- user = _c.sent();
61
- if (user == null) {
62
- return [2 /*return*/, (0, flink_1.unauthorized)("Username or password invalid")];
63
- }
64
- return [4 /*yield*/, (0, bcrypt_1.encrypt)(req.body.password, user.salt)];
65
- case 2:
66
- hashCandidate = _c.sent();
67
- if (hashCandidate !== user.password) {
68
- return [2 /*return*/, (0, flink_1.unauthorized)("Username or password invalid")];
69
- }
70
- viewUser = (0, ManagementUserViewModel_1.GetManagementUserViewModel)(user);
71
- token = jsonwebtoken_1.default.sign(viewUser, ctx.plugins.managementApi.jwtSecret);
72
- return [2 /*return*/, {
73
- data: {
74
- user: viewUser,
75
- token: token,
76
- },
77
- status: 200,
78
- }];
79
- }
32
+ const PostUserLogin = async ({ ctx, req })=>{
33
+ const user = await ctx.repos.managementuserRepo.getOne({
34
+ username: req.body.username
80
35
  });
81
- }); };
82
- exports.default = PostUserLogin;
83
- exports.__assumedHttpMethod = "post", exports.__file = "PostLogin.ts", exports.__query = [], exports.__params = [];
84
- exports.__schemas = { reqSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "username": { "type": "string" }, "password": { "type": "string" } }, "required": ["password", "username"], "definitions": {} }, resSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "user": { "type": "object", "additionalProperties": false, "properties": { "_id": { "type": "string" }, "username": { "type": "string" } }, "required": ["_id", "username"] }, "token": { "type": "string" } }, "required": ["token", "user"], "definitions": {} } };
36
+ if (user == null) {
37
+ return (0, _flink.unauthorized)("Username or password invalid");
38
+ }
39
+ const hashCandidate = await (0, _bcrypt.encrypt)(req.body.password, user.salt);
40
+ if (hashCandidate !== user.password) {
41
+ return (0, _flink.unauthorized)("Username or password invalid");
42
+ }
43
+ const viewUser = (0, _ManagementUserViewModel.GetManagementUserViewModel)(user);
44
+ const token = _jsonwebtoken.default.sign(viewUser, ctx.plugins.managementApi.jwtSecret);
45
+ return {
46
+ data: {
47
+ user: viewUser,
48
+ token
49
+ },
50
+ status: 200
51
+ };
52
+ };
53
+ const _default = PostUserLogin;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/management-api-plugin/src/handlers/User/PostLogin.ts"],"sourcesContent":["import { Handler, HttpMethod, RouteProps, unauthorized } from \"@flink-app/flink\";\nimport jsonwebtoken from \"jsonwebtoken\";\nimport { Ctx } from \"../../Ctx\";\nimport { GetManagementUserViewModel } from \"../../schemas/ManagementUserViewModel\";\nimport { PostUserLoginReq } from \"../../schemas/User/PostLoginReq\";\nimport { PostUserLoginRes } from \"../../schemas/User/PostLoginRes\";\nimport { encrypt } from \"../../utils/bcrypt\";\n\nexport const Route: RouteProps = {\n path: \"/user/login\",\n method: HttpMethod.post,\n};\n\ntype Params = {};\n\nconst PostUserLogin: Handler<Ctx, PostUserLoginReq, PostUserLoginRes, Params> = async ({ ctx, req }) => {\n const user = await ctx.repos.managementuserRepo.getOne({\n username: req.body.username,\n });\n if (user == null) {\n return unauthorized(\"Username or password invalid\");\n }\n\n const hashCandidate = await encrypt(req.body.password, user.salt);\n if (hashCandidate !== user.password) {\n return unauthorized(\"Username or password invalid\");\n }\n\n const viewUser = GetManagementUserViewModel(user);\n\n const token = jsonwebtoken.sign(viewUser, ctx.plugins.managementApi.jwtSecret);\n\n return {\n data: {\n user: viewUser,\n token,\n },\n status: 200,\n };\n};\nexport default PostUserLogin;\n"],"names":["Route","path","method","HttpMethod","post","PostUserLogin","ctx","req","user","repos","managementuserRepo","getOne","username","body","unauthorized","hashCandidate","encrypt","password","salt","viewUser","GetManagementUserViewModel","token","jsonwebtoken","sign","plugins","managementApi","jwtSecret","data","status"],"mappings":";;;;;;;;;;;QAQaA;eAAAA;;QAgCb;eAAA;;;uBAxC8D;qEACrC;yCAEkB;wBAGnB;;;;;;AAEjB,MAAMA,QAAoB;IAC7BC,MAAM;IACNC,QAAQC,iBAAU,CAACC,IAAI;AAC3B;AAIA,MAAMC,gBAA0E,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;IAC/F,MAAMC,OAAO,MAAMF,IAAIG,KAAK,CAACC,kBAAkB,CAACC,MAAM,CAAC;QACnDC,UAAUL,IAAIM,IAAI,CAACD,QAAQ;IAC/B;IACA,IAAIJ,QAAQ,MAAM;QACd,OAAOM,IAAAA,mBAAY,EAAC;IACxB;IAEA,MAAMC,gBAAgB,MAAMC,IAAAA,eAAO,EAACT,IAAIM,IAAI,CAACI,QAAQ,EAAET,KAAKU,IAAI;IAChE,IAAIH,kBAAkBP,KAAKS,QAAQ,EAAE;QACjC,OAAOH,IAAAA,mBAAY,EAAC;IACxB;IAEA,MAAMK,WAAWC,IAAAA,mDAA0B,EAACZ;IAE5C,MAAMa,QAAQC,qBAAY,CAACC,IAAI,CAACJ,UAAUb,IAAIkB,OAAO,CAACC,aAAa,CAACC,SAAS;IAE7E,OAAO;QACHC,MAAM;YACFnB,MAAMW;YACNE;QACJ;QACAO,QAAQ;IACZ;AACJ;MACA,WAAevB"}
@@ -5,5 +5,4 @@ import { PutUserByUseridRes } from "../../schemas/User/PutByUseridRes";
5
5
  export declare const Route: RouteProps;
6
6
  declare const PutUserByUserid: Handler<Ctx, PutUserByUseridReq, PutUserByUseridRes>;
7
7
  export default PutUserByUserid;
8
- export declare const __assumedHttpMethod = "put", __file = "PutByUserid.ts", __query: never[], __params: never[];
9
- export declare const __schemas: any;
8
+ export declare const __assumedHttpMethod = "put", __file = "src/handlers/User/PutByUserid.ts", __query: never[], __params: never[];
@@ -1,95 +1,56 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
10
+ }
11
+ _export(exports, {
12
+ get Route () {
13
+ return Route;
14
+ },
15
+ get default () {
16
+ return _default;
36
17
  }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.__schemas = exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = exports.Route = void 0;
40
- var flink_1 = require("@flink-app/flink");
41
- var ManagementUserViewModel_1 = require("../../schemas/ManagementUserViewModel");
42
- var bcrypt_1 = require("../../utils/bcrypt");
43
- exports.Route = {
18
+ });
19
+ const _flink = require("@flink-app/flink");
20
+ const _ManagementUserViewModel = require("../../schemas/ManagementUserViewModel");
21
+ const _bcrypt = require("../../utils/bcrypt");
22
+ const Route = {
44
23
  path: "/user/:userid",
45
- method: flink_1.HttpMethod.put,
24
+ method: _flink.HttpMethod.put
46
25
  };
47
26
  // type Params = {
48
27
  // userid: string;
49
28
  // };
50
- var PutUserByUserid = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
51
- var model, existingUser, salt, hash, updated;
52
- var ctx = _b.ctx, req = _b.req;
53
- return __generator(this, function (_c) {
54
- switch (_c.label) {
55
- case 0:
56
- model = req.body;
57
- if (!(model.username != null)) return [3 /*break*/, 2];
58
- return [4 /*yield*/, ctx.repos.managementuserRepo.getOne({
59
- username: model.username,
60
- })];
61
- case 1:
62
- existingUser = _c.sent();
63
- if (existingUser != null) {
64
- if (existingUser._id != req.params.userid) {
65
- return [2 /*return*/, (0, flink_1.conflict)("Username already taken")];
66
- }
67
- }
68
- _c.label = 2;
69
- case 2:
70
- if (!(model.password != null)) return [3 /*break*/, 5];
71
- return [4 /*yield*/, (0, bcrypt_1.genSalt)(10)];
72
- case 3:
73
- salt = _c.sent();
74
- return [4 /*yield*/, (0, bcrypt_1.encrypt)(model.password, salt)];
75
- case 4:
76
- hash = _c.sent();
77
- model.password = hash;
78
- model.salt = salt;
79
- _c.label = 5;
80
- case 5: return [4 /*yield*/, ctx.repos.managementuserRepo.updateOne(req.params.userid, model)];
81
- case 6:
82
- updated = _c.sent();
83
- if (updated == null) {
84
- return [2 /*return*/, (0, flink_1.notFound)()];
85
- }
86
- return [2 /*return*/, {
87
- data: (0, ManagementUserViewModel_1.GetManagementUserViewModel)(updated),
88
- status: 200,
89
- }];
29
+ const PutUserByUserid = async ({ ctx, req })=>{
30
+ var model = req.body;
31
+ if (model.username != null) {
32
+ const existingUser = await ctx.repos.managementuserRepo.getOne({
33
+ username: model.username
34
+ });
35
+ if (existingUser != null) {
36
+ if (existingUser._id != req.params.userid) {
37
+ return (0, _flink.conflict)("Username already taken");
38
+ }
90
39
  }
91
- });
92
- }); };
93
- exports.default = PutUserByUserid;
94
- exports.__assumedHttpMethod = "put", exports.__file = "PutByUserid.ts", exports.__query = [], exports.__params = [];
95
- exports.__schemas = { reqSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "username": { "type": "string" }, "password": { "type": "string" } }, "definitions": {} }, resSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "_id": { "type": "string" }, "username": { "type": "string" } }, "required": ["_id", "username"], "definitions": {} } };
40
+ }
41
+ if (model.password != null) {
42
+ const salt = await (0, _bcrypt.genSalt)(10);
43
+ const hash = await (0, _bcrypt.encrypt)(model.password, salt);
44
+ model.password = hash;
45
+ model.salt = salt;
46
+ }
47
+ const updated = await ctx.repos.managementuserRepo.updateById(req.params.userid, model);
48
+ if (updated == null) {
49
+ return (0, _flink.notFound)();
50
+ }
51
+ return {
52
+ data: (0, _ManagementUserViewModel.GetManagementUserViewModel)(updated),
53
+ status: 200
54
+ };
55
+ };
56
+ const _default = PutUserByUserid;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/management-api-plugin/src/handlers/User/PutByUserid.ts"],"sourcesContent":["import { conflict, Handler, HttpMethod, notFound, RouteProps } from \"@flink-app/flink\";\nimport { Ctx } from \"../../Ctx\";\nimport { ManagementUser } from \"../../schemas/ManagementUser\";\nimport { GetManagementUserViewModel } from \"../../schemas/ManagementUserViewModel\";\nimport { PutUserByUseridReq } from \"../../schemas/User/PutByUseridReq\";\nimport { PutUserByUseridRes } from \"../../schemas/User/PutByUseridRes\";\nimport { encrypt, genSalt } from \"../../utils/bcrypt\";\n\nexport const Route: RouteProps = {\n path: \"/user/:userid\",\n method: HttpMethod.put,\n};\n\n// type Params = {\n// userid: string;\n// };\n\nconst PutUserByUserid: Handler<Ctx, PutUserByUseridReq, PutUserByUseridRes> = async ({ ctx, req }) => {\n var model: Partial<ManagementUser> = req.body;\n\n if (model.username != null) {\n const existingUser = await ctx.repos.managementuserRepo.getOne({\n username: model.username,\n });\n if (existingUser != null) {\n if (existingUser._id != req.params.userid) {\n return conflict(\"Username already taken\");\n }\n }\n }\n\n if (model.password != null) {\n const salt = await genSalt(10);\n const hash = await encrypt(model.password, salt);\n\n model.password = hash;\n model.salt = salt;\n }\n\n const updated = await ctx.repos.managementuserRepo.updateById(req.params.userid, model);\n if (updated == null) {\n return notFound();\n }\n return {\n data: GetManagementUserViewModel(updated),\n status: 200,\n };\n};\nexport default PutUserByUserid;\n"],"names":["Route","path","method","HttpMethod","put","PutUserByUserid","ctx","req","model","body","username","existingUser","repos","managementuserRepo","getOne","_id","params","userid","conflict","password","salt","genSalt","hash","encrypt","updated","updateById","notFound","data","GetManagementUserViewModel","status"],"mappings":";;;;;;;;;;;QAQaA;eAAAA;;QAwCb;eAAA;;;uBAhDoE;yCAGzB;wBAGV;AAE1B,MAAMA,QAAoB;IAC7BC,MAAM;IACNC,QAAQC,iBAAU,CAACC,GAAG;AAC1B;AAEA,kBAAkB;AAClB,qBAAqB;AACrB,KAAK;AAEL,MAAMC,kBAAwE,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;IAC7F,IAAIC,QAAiCD,IAAIE,IAAI;IAE7C,IAAID,MAAME,QAAQ,IAAI,MAAM;QACxB,MAAMC,eAAe,MAAML,IAAIM,KAAK,CAACC,kBAAkB,CAACC,MAAM,CAAC;YAC3DJ,UAAUF,MAAME,QAAQ;QAC5B;QACA,IAAIC,gBAAgB,MAAM;YACtB,IAAIA,aAAaI,GAAG,IAAIR,IAAIS,MAAM,CAACC,MAAM,EAAE;gBACvC,OAAOC,IAAAA,eAAQ,EAAC;YACpB;QACJ;IACJ;IAEA,IAAIV,MAAMW,QAAQ,IAAI,MAAM;QACxB,MAAMC,OAAO,MAAMC,IAAAA,eAAO,EAAC;QAC3B,MAAMC,OAAO,MAAMC,IAAAA,eAAO,EAACf,MAAMW,QAAQ,EAAEC;QAE3CZ,MAAMW,QAAQ,GAAGG;QACjBd,MAAMY,IAAI,GAAGA;IACjB;IAEA,MAAMI,UAAU,MAAMlB,IAAIM,KAAK,CAACC,kBAAkB,CAACY,UAAU,CAAClB,IAAIS,MAAM,CAACC,MAAM,EAAET;IACjF,IAAIgB,WAAW,MAAM;QACjB,OAAOE,IAAAA,eAAQ;IACnB;IACA,OAAO;QACHC,MAAMC,IAAAA,mDAA0B,EAACJ;QACjCK,QAAQ;IACZ;AACJ;MACA,WAAexB"}