@flink-app/management-api-plugin 1.0.0 → 2.0.0-alpha.100
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/.flink/generatedAgents.ts +5 -0
- package/.flink/generatedHandlers.ts +9 -9
- package/.flink/generatedJobs.ts +1 -1
- package/.flink/generatedRepos.ts +1 -1
- package/.flink/generatedServices.ts +5 -0
- package/.flink/generatedTools.ts +5 -0
- package/.flink/schema-cache.json +347 -0
- package/.flink/schemas/schemas.json +293 -113
- package/.flink/start.ts +4 -1
- package/CHANGELOG.md +375 -0
- package/dist/.flink/generatedAgents.d.ts +1 -0
- package/dist/.flink/generatedAgents.js +14 -0
- package/dist/.flink/generatedAgents.js.map +1 -0
- package/dist/.flink/generatedHandlers.d.ts +10 -10
- package/dist/.flink/generatedHandlers.js +83 -32
- package/dist/.flink/generatedHandlers.js.map +1 -0
- package/dist/.flink/generatedJobs.js +13 -6
- package/dist/.flink/generatedJobs.js.map +1 -0
- package/dist/.flink/generatedRepos.js +25 -10
- package/dist/.flink/generatedRepos.js.map +1 -0
- package/dist/.flink/generatedServices.js +14 -0
- package/dist/.flink/generatedServices.js.map +1 -0
- package/dist/.flink/generatedTools.d.ts +1 -0
- package/dist/.flink/generatedTools.js +14 -0
- package/dist/.flink/generatedTools.js.map +1 -0
- package/dist/.flink/schema-manifest.json +297 -0
- package/dist/.flink/schemas/schemas.d.ts +10 -10
- package/dist/.flink/schemas/schemas.json +293 -113
- package/dist/.flink/start.d.ts +2 -0
- package/dist/.flink/start.js +15 -3
- package/dist/.flink/start.js.map +1 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/src/Ctx.js +3 -1
- package/dist/src/Ctx.js.map +1 -0
- package/dist/src/handlers/Management/GetManagement.d.ts +1 -1
- package/dist/src/handlers/Management/GetManagement.js +14 -47
- package/dist/src/handlers/Management/GetManagement.js.map +1 -0
- package/dist/src/handlers/User/DeleteByUserid.d.ts +1 -2
- package/dist/src/handlers/User/DeleteByUserid.js +29 -60
- package/dist/src/handlers/User/DeleteByUserid.js.map +1 -0
- package/dist/src/handlers/User/GetByUserid.d.ts +1 -2
- package/dist/src/handlers/User/GetByUserid.js +30 -61
- package/dist/src/handlers/User/GetByUserid.js.map +1 -0
- package/dist/src/handlers/User/GetList.d.ts +1 -1
- package/dist/src/handlers/User/GetList.js +19 -58
- package/dist/src/handlers/User/GetList.js.map +1 -0
- package/dist/src/handlers/User/GetMe.d.ts +1 -1
- package/dist/src/handlers/User/GetMe.js +67 -74
- package/dist/src/handlers/User/GetMe.js.map +1 -0
- package/dist/src/handlers/User/Post.d.ts +1 -2
- package/dist/src/handlers/User/Post.js +43 -79
- package/dist/src/handlers/User/Post.js.map +1 -0
- package/dist/src/handlers/User/PostLogin.d.ts +1 -2
- package/dist/src/handlers/User/PostLogin.js +47 -78
- package/dist/src/handlers/User/PostLogin.js.map +1 -0
- package/dist/src/handlers/User/PutByUserid.d.ts +1 -2
- package/dist/src/handlers/User/PutByUserid.js +47 -86
- package/dist/src/handlers/User/PutByUserid.js.map +1 -0
- package/dist/src/index.js +185 -117
- package/dist/src/index.js.map +1 -0
- package/dist/src/managementApiContext.js +3 -1
- package/dist/src/managementApiContext.js.map +1 -0
- package/dist/src/models/ManagementApi.js +12 -5
- package/dist/src/models/ManagementApi.js.map +1 -0
- package/dist/src/repos/ManagementUserRepo.js +12 -24
- package/dist/src/repos/ManagementUserRepo.js.map +1 -0
- package/dist/src/schemas/Management/GetReq.js +3 -1
- package/dist/src/schemas/Management/GetReq.js.map +1 -0
- package/dist/src/schemas/Management/GetRes.js +3 -1
- package/dist/src/schemas/Management/GetRes.js.map +1 -0
- package/dist/src/schemas/ManagementUser.js +3 -1
- package/dist/src/schemas/ManagementUser.js.map +1 -0
- package/dist/src/schemas/ManagementUserViewModel.js +49 -15
- package/dist/src/schemas/ManagementUserViewModel.js.map +1 -0
- package/dist/src/schemas/ModuleList.js +3 -1
- package/dist/src/schemas/ModuleList.js.map +1 -0
- package/dist/src/schemas/User/DeleteByUseridReq.js +3 -1
- package/dist/src/schemas/User/DeleteByUseridReq.js.map +1 -0
- package/dist/src/schemas/User/DeleteByUseridRes.js +3 -1
- package/dist/src/schemas/User/DeleteByUseridRes.js.map +1 -0
- package/dist/src/schemas/User/GetByUseridReq.js +3 -1
- package/dist/src/schemas/User/GetByUseridReq.js.map +1 -0
- package/dist/src/schemas/User/GetByUseridRes.js +3 -1
- package/dist/src/schemas/User/GetByUseridRes.js.map +1 -0
- package/dist/src/schemas/User/GetListReq.js +3 -1
- package/dist/src/schemas/User/GetListReq.js.map +1 -0
- package/dist/src/schemas/User/GetListRes.js +3 -1
- package/dist/src/schemas/User/GetListRes.js.map +1 -0
- package/dist/src/schemas/User/GetMeReq.js +3 -1
- package/dist/src/schemas/User/GetMeReq.js.map +1 -0
- package/dist/src/schemas/User/GetMeRes.js +3 -1
- package/dist/src/schemas/User/GetMeRes.js.map +1 -0
- package/dist/src/schemas/User/PostLoginReq.js +3 -1
- package/dist/src/schemas/User/PostLoginReq.js.map +1 -0
- package/dist/src/schemas/User/PostLoginRes.js +3 -1
- package/dist/src/schemas/User/PostLoginRes.js.map +1 -0
- package/dist/src/schemas/User/PostReq.js +3 -1
- package/dist/src/schemas/User/PostReq.js.map +1 -0
- package/dist/src/schemas/User/PostRes.js +3 -1
- package/dist/src/schemas/User/PostRes.js.map +1 -0
- package/dist/src/schemas/User/PutByUseridReq.js +3 -1
- package/dist/src/schemas/User/PutByUseridReq.js.map +1 -0
- package/dist/src/schemas/User/PutByUseridRes.js +3 -1
- package/dist/src/schemas/User/PutByUseridRes.js.map +1 -0
- package/dist/src/utils/bcrypt.js +30 -17
- package/dist/src/utils/bcrypt.js.map +1 -0
- package/package.json +5 -2
- package/src/handlers/User/DeleteByUserid.ts +11 -17
- package/src/handlers/User/GetByUserid.ts +7 -8
- package/src/handlers/User/GetMe.ts +15 -21
- package/src/handlers/User/PostLogin.ts +14 -24
- package/src/handlers/User/PutByUserid.ts +20 -30
- package/src/index.ts +26 -4
- 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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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:
|
|
30
|
+
method: _flink.HttpMethod.post
|
|
50
31
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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:
|
|
24
|
+
method: _flink.HttpMethod.put
|
|
46
25
|
};
|
|
47
26
|
// type Params = {
|
|
48
27
|
// userid: string;
|
|
49
28
|
// };
|
|
50
|
-
|
|
51
|
-
var model
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return
|
|
59
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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"}
|