@flink-app/generic-auth-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.
- package/.flink/generatedAgents.ts +5 -0
- package/.flink/generatedHandlers.ts +22 -22
- 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/start.ts +4 -1
- package/CHANGELOG.md +597 -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.js +13 -6
- 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 +13 -6
- 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 +588 -0
- package/dist/.flink/schemas/schemas.js +1 -1
- 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/coreFunctions.js +356 -412
- package/dist/src/coreFunctions.js.map +1 -0
- package/dist/src/genericAuthContext.js +3 -1
- package/dist/src/genericAuthContext.js.map +1 -0
- package/dist/src/genericAuthPluginOptions.js +3 -1
- package/dist/src/genericAuthPluginOptions.js.map +1 -0
- package/dist/src/handlers/Management/DeleteUserByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/DeleteUserByUserid.js +21 -60
- package/dist/src/handlers/Management/DeleteUserByUserid.js.map +1 -0
- package/dist/src/handlers/Management/GetSchema.d.ts +1 -1
- package/dist/src/handlers/Management/GetSchema.js +16 -50
- package/dist/src/handlers/Management/GetSchema.js.map +1 -0
- package/dist/src/handlers/Management/GetUser.d.ts +1 -1
- package/dist/src/handlers/Management/GetUser.js +25 -59
- package/dist/src/handlers/Management/GetUser.js.map +1 -0
- package/dist/src/handlers/Management/GetUserByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/GetUserByUserid.js +60 -71
- package/dist/src/handlers/Management/GetUserByUserid.js.map +1 -0
- package/dist/src/handlers/Management/GetUserViewByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/GetUserViewByUserid.js +35 -74
- package/dist/src/handlers/Management/GetUserViewByUserid.js.map +1 -0
- package/dist/src/handlers/Management/PutUserPasswordByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/PutUserPasswordByUserid.js +37 -85
- package/dist/src/handlers/Management/PutUserPasswordByUserid.js.map +1 -0
- package/dist/src/handlers/Management/PutUserProfileByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/PutUserProfileByUserid.js +27 -70
- package/dist/src/handlers/Management/PutUserProfileByUserid.js.map +1 -0
- package/dist/src/handlers/Management/PutUserProfileByUseridAppend.d.ts +1 -1
- package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js +53 -76
- package/dist/src/handlers/Management/PutUserProfileByUseridAppend.js.map +1 -0
- package/dist/src/handlers/Management/PutUserRolesByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/PutUserRolesByUserid.js +24 -63
- package/dist/src/handlers/Management/PutUserRolesByUserid.js.map +1 -0
- package/dist/src/handlers/Management/PutUserUsernameByUserid.d.ts +1 -1
- package/dist/src/handlers/Management/PutUserUsernameByUserid.js +31 -72
- package/dist/src/handlers/Management/PutUserUsernameByUserid.js.map +1 -0
- package/dist/src/handlers/UserCreate.d.ts +1 -1
- package/dist/src/handlers/UserCreate.js +44 -84
- package/dist/src/handlers/UserCreate.js.map +1 -0
- package/dist/src/handlers/UserLogin.d.ts +1 -1
- package/dist/src/handlers/UserLogin.js +45 -88
- package/dist/src/handlers/UserLogin.js.map +1 -0
- package/dist/src/handlers/UserLoginByToken.d.ts +1 -1
- package/dist/src/handlers/UserLoginByToken.js +24 -63
- package/dist/src/handlers/UserLoginByToken.js.map +1 -0
- package/dist/src/handlers/UserPasswordPut.d.ts +1 -1
- package/dist/src/handlers/UserPasswordPut.js +24 -60
- package/dist/src/handlers/UserPasswordPut.js.map +1 -0
- package/dist/src/handlers/UserPasswordResetComplete.d.ts +1 -1
- package/dist/src/handlers/UserPasswordResetComplete.js +30 -66
- package/dist/src/handlers/UserPasswordResetComplete.js.map +1 -0
- package/dist/src/handlers/UserPasswordResetForm.d.ts +1 -1
- package/dist/src/handlers/UserPasswordResetForm.js +155 -110
- package/dist/src/handlers/UserPasswordResetForm.js.map +1 -0
- package/dist/src/handlers/UserPasswordResetStart.d.ts +1 -1
- package/dist/src/handlers/UserPasswordResetStart.js +66 -95
- package/dist/src/handlers/UserPasswordResetStart.js.map +1 -0
- package/dist/src/handlers/UserProfileGet.d.ts +1 -1
- package/dist/src/handlers/UserProfileGet.js +21 -60
- package/dist/src/handlers/UserProfileGet.js.map +1 -0
- package/dist/src/handlers/UserProfilePut.d.ts +1 -1
- package/dist/src/handlers/UserProfilePut.js +55 -81
- package/dist/src/handlers/UserProfilePut.js.map +1 -0
- package/dist/src/handlers/UserPushRegisterToken.d.ts +1 -1
- package/dist/src/handlers/UserPushRegisterToken.js +119 -118
- package/dist/src/handlers/UserPushRegisterToken.js.map +1 -0
- package/dist/src/handlers/UserPushRemoveToken.d.ts +1 -1
- package/dist/src/handlers/UserPushRemoveToken.js +26 -63
- package/dist/src/handlers/UserPushRemoveToken.js.map +1 -0
- package/dist/src/handlers/UserToken.d.ts +1 -1
- package/dist/src/handlers/UserToken.js +29 -63
- package/dist/src/handlers/UserToken.js.map +1 -0
- package/dist/src/index.js +133 -50
- package/dist/src/index.js.map +1 -0
- package/dist/src/init.js +160 -101
- package/dist/src/init.js.map +1 -0
- package/dist/src/management.js +109 -86
- package/dist/src/management.js.map +1 -0
- package/dist/src/schemas/Management/DeleteUserByUseridReq.js +3 -1
- package/dist/src/schemas/Management/DeleteUserByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/DeleteUserByUseridRes.js +3 -1
- package/dist/src/schemas/Management/DeleteUserByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/GetUserByUseridReq.js +3 -1
- package/dist/src/schemas/Management/GetUserByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/GetUserByUseridRes.js +3 -1
- package/dist/src/schemas/Management/GetUserByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/GetUserReq.js +3 -1
- package/dist/src/schemas/Management/GetUserReq.js.map +1 -0
- package/dist/src/schemas/Management/GetUserRes.js +3 -1
- package/dist/src/schemas/Management/GetUserRes.js.map +1 -0
- package/dist/src/schemas/Management/GetUserViewByUseridReq.js +3 -1
- package/dist/src/schemas/Management/GetUserViewByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/GetUserViewByUseridRes.js +3 -1
- package/dist/src/schemas/Management/GetUserViewByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/PutUserPasswordByUseridReq.js +3 -1
- package/dist/src/schemas/Management/PutUserPasswordByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/PutUserPasswordByUseridRes.js +3 -1
- package/dist/src/schemas/Management/PutUserPasswordByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/PutUserProfileByUseridReq.js +3 -1
- package/dist/src/schemas/Management/PutUserProfileByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/PutUserProfileByUseridRes.js +3 -1
- package/dist/src/schemas/Management/PutUserProfileByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/PutUserRolesByUseridReq.js +3 -1
- package/dist/src/schemas/Management/PutUserRolesByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/PutUserRolesByUseridRes.js +3 -1
- package/dist/src/schemas/Management/PutUserRolesByUseridRes.js.map +1 -0
- package/dist/src/schemas/Management/PutUserUsernameByUseridReq.js +3 -1
- package/dist/src/schemas/Management/PutUserUsernameByUseridReq.js.map +1 -0
- package/dist/src/schemas/Management/PutUserUsernameByUseridRes.js +3 -1
- package/dist/src/schemas/Management/PutUserUsernameByUseridRes.js.map +1 -0
- package/dist/src/schemas/PushNotificationToken.js +3 -1
- package/dist/src/schemas/PushNotificationToken.js.map +1 -0
- package/dist/src/schemas/PushNotificationTokenRes.js +3 -1
- package/dist/src/schemas/PushNotificationTokenRes.js.map +1 -0
- package/dist/src/schemas/User.js +3 -1
- package/dist/src/schemas/User.js.map +1 -0
- package/dist/src/schemas/UserCreateReq.js +3 -1
- package/dist/src/schemas/UserCreateReq.js.map +1 -0
- package/dist/src/schemas/UserCreateRes.js +3 -1
- package/dist/src/schemas/UserCreateRes.js.map +1 -0
- package/dist/src/schemas/UserLoginByTokenReq.js +3 -1
- package/dist/src/schemas/UserLoginByTokenReq.js.map +1 -0
- package/dist/src/schemas/UserLoginReq.js +3 -1
- package/dist/src/schemas/UserLoginReq.js.map +1 -0
- package/dist/src/schemas/UserLoginRes.js +3 -1
- package/dist/src/schemas/UserLoginRes.js.map +1 -0
- package/dist/src/schemas/UserPasswordChangeReq.js +3 -1
- package/dist/src/schemas/UserPasswordChangeReq.js.map +1 -0
- package/dist/src/schemas/UserPasswordChangeRes.js +3 -1
- package/dist/src/schemas/UserPasswordChangeRes.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetCompleteReq.js +3 -1
- package/dist/src/schemas/UserPasswordResetCompleteReq.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetCompleteRes.js +3 -1
- package/dist/src/schemas/UserPasswordResetCompleteRes.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetSettings.js +3 -1
- package/dist/src/schemas/UserPasswordResetSettings.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetStartReq.js +3 -1
- package/dist/src/schemas/UserPasswordResetStartReq.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetStartRes.js +3 -1
- package/dist/src/schemas/UserPasswordResetStartRes.js.map +1 -0
- package/dist/src/schemas/UserPasswordResetStartResPublic.js +3 -1
- package/dist/src/schemas/UserPasswordResetStartResPublic.js.map +1 -0
- package/dist/src/schemas/UserProfile.js +3 -1
- package/dist/src/schemas/UserProfile.js.map +1 -0
- package/dist/src/schemas/UserTokenRes.js +3 -1
- package/dist/src/schemas/UserTokenRes.js.map +1 -0
- package/package.json +9 -6
- package/src/coreFunctions.ts +3 -3
- package/src/handlers/Management/DeleteUserByUserid.ts +10 -14
- package/src/handlers/Management/GetSchema.ts +6 -12
- package/src/handlers/Management/GetUser.ts +11 -15
- package/src/handlers/Management/GetUserByUserid.ts +13 -23
- package/src/handlers/Management/PutUserPasswordByUserid.ts +39 -45
- package/src/handlers/Management/PutUserProfileByUserid.ts +21 -27
- package/src/handlers/Management/PutUserProfileByUseridAppend.ts +22 -28
- package/src/handlers/Management/PutUserRolesByUserid.ts +17 -23
- package/src/handlers/Management/PutUserUsernameByUserid.ts +24 -31
- package/src/handlers/UserLoginByToken.ts +20 -27
- package/src/handlers/UserPasswordPut.ts +17 -24
- package/src/handlers/UserPasswordResetComplete.ts +31 -40
- package/src/handlers/UserPasswordResetForm.ts +25 -29
- package/src/handlers/UserPasswordResetStart.ts +13 -5
- package/src/handlers/UserProfileGet.ts +11 -14
- package/src/handlers/UserProfilePut.ts +1 -1
- package/src/handlers/UserPushRegisterToken.ts +2 -2
- package/src/handlers/UserPushRemoveToken.ts +12 -18
- package/src/handlers/UserToken.ts +13 -24
- package/src/init.ts +23 -1
- package/tsconfig.json +1 -1
- package/.flink/schemas/schemas.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserPasswordResetForm.ts"],"sourcesContent":["import { ExpressRequest, ExpressResponse } from \"@flink-app/flink\";\nimport fs from \"fs/promises\";\nimport { log } from \"@flink-app/flink\";\nimport Handlebars from \"handlebars\";\n\nconst defaultTemplate = `<html>\n<head>\n <title>Password reset</title>\n <link rel=\"stylesheet\" href=\"form/style.css\" />\n <script src=\"form/script.js\" type=\"text/javascript\"></script>\n</head>\n<body>\n <form id=\"form\">\n <p>Please enter new password</p>\n <input type=\"password\" name=\"password\" placeholder=\"Enter new password\" />\n <input\n type=\"password\"\n name=\"confirmPassword\"\n placeholder=\"Confirm new password\"\n />\n <button id=\"submit-btn\">Submit</button>\n </form>\n <div id=\"success\">Password has been updated, please proceed to login.</div>\n</body>\n</html>\n`;\n\nconst script = `\n window.onload = () => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const params = Object.fromEntries(urlSearchParams.entries());\n const { token, code } = params;\n\n if (!token) {\n alert(\"Missing token\");\n } else if (!code) {\n alert(\"Missing code\");\n }\n\n const submitBtnEl = document.getElementById(\"submit-btn\");\n const [passwordInputEl, confirmPasswordEl] =\n document.getElementsByTagName(\"input\");\n\n submitBtnEl.onclick = async (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!passwordInputEl.value) {\n return alert(\"Enter a new password\");\n } else if (passwordInputEl.value !== confirmPasswordEl.value) {\n return alert(\n \"Passwords does not match, make sure that new and confirmed passwords are the same\"\n );\n }\n\n const res = await window.fetch(\"{{completeUrl}}\", {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n passwordResetToken: token,\n code: code,\n password: passwordInputEl.value,\n }),\n });\n\n if (res.status > 399) {\n alert(\"Failed to set new password\");\n } else {\n document.getElementById(\"form\").style.display = \"none\";\n document.getElementById(\"success\").style.display = \"block\";\n }\n };\n };\n`;\n\nconst style = ` * {\n box-sizing: border-box;\n font-family: Arial, Helvetica, sans-serif;\n }\n\n p {\n margin: 0.5rem 0;\n }\n\n body {\n padding: 1rem;\n }\n\n form {\n display: block;\n max-width: 320px;\n }\n\n input {\n width: 100%;\n display: block;\n margin: 0.5rem 0;\n }\n\n #success {\n display: none;\n font-size: 1.2rem;\n color: rgb(0, 177, 115);\n max-width: 350px;\n }\n`;\n\nexport async function handleUserPasswordResetForm(\n _req: ExpressRequest,\n res: ExpressResponse,\n { templateFile, completeUrl }: { templateFile?: string; completeUrl: string }\n) {\n const tpl = await readTemplate(templateFile);\n\n const html = Handlebars.compile(tpl)({\n completeUrl,\n });\n\n res.send(html);\n}\n\nexport async function resetPasswordFormScript(req: ExpressRequest, res: ExpressResponse, { completeUrl }: { completeUrl: string }) {\n res.header(\"Content-Type\", \"application/javascript\");\n const js = Handlebars.compile(script)({ completeUrl });\n res.send(js);\n}\n\nexport async function resetPasswordFormCss(res: ExpressResponse) {\n res.header(\"Content-Type\", \"text/css\");\n res.send(style);\n}\n\nlet cachedTemplate = \"\";\n\nasync function readTemplate(templateFilename?: string) {\n if (!cachedTemplate) {\n if (templateFilename) {\n try {\n const buff = await fs.readFile(templateFilename);\n cachedTemplate = buff.toString();\n } catch (err) {\n log.error(\"Failed reading template file for password reset\", templateFilename, err);\n throw err;\n }\n } else {\n cachedTemplate = defaultTemplate;\n }\n }\n\n return cachedTemplate;\n}\n"],"names":["handleUserPasswordResetForm","resetPasswordFormCss","resetPasswordFormScript","defaultTemplate","script","style","_req","res","templateFile","completeUrl","tpl","readTemplate","html","Handlebars","compile","send","req","header","js","cachedTemplate","templateFilename","buff","fs","readFile","toString","err","log","error"],"mappings":";;;;;;;;;;;QA8GsBA;eAAAA;;QAoBAC;eAAAA;;QANAC;eAAAA;;;iEA3HP;uBACK;mEACG;;;;;;AAEvB,MAAMC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;AAoBzB,CAAC;AAED,MAAMC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDhB,CAAC;AAED,MAAMC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Bf,CAAC;AAEM,eAAeL,4BAClBM,IAAoB,EACpBC,GAAoB,EACpB,EAAEC,YAAY,EAAEC,WAAW,EAAkD;IAE7E,MAAMC,MAAM,MAAMC,aAAaH;IAE/B,MAAMI,OAAOC,mBAAU,CAACC,OAAO,CAACJ,KAAK;QACjCD;IACJ;IAEAF,IAAIQ,IAAI,CAACH;AACb;AAEO,eAAeV,wBAAwBc,GAAmB,EAAET,GAAoB,EAAE,EAAEE,WAAW,EAA2B;IAC7HF,IAAIU,MAAM,CAAC,gBAAgB;IAC3B,MAAMC,KAAKL,mBAAU,CAACC,OAAO,CAACV,QAAQ;QAAEK;IAAY;IACpDF,IAAIQ,IAAI,CAACG;AACb;AAEO,eAAejB,qBAAqBM,GAAoB;IAC3DA,IAAIU,MAAM,CAAC,gBAAgB;IAC3BV,IAAIQ,IAAI,CAACV;AACb;AAEA,IAAIc,iBAAiB;AAErB,eAAeR,aAAaS,gBAAyB;IACjD,IAAI,CAACD,gBAAgB;QACjB,IAAIC,kBAAkB;YAClB,IAAI;gBACA,MAAMC,OAAO,MAAMC,iBAAE,CAACC,QAAQ,CAACH;gBAC/BD,iBAAiBE,KAAKG,QAAQ;YAClC,EAAE,OAAOC,KAAK;gBACVC,UAAG,CAACC,KAAK,CAAC,mDAAmDP,kBAAkBK;gBAC/E,MAAMA;YACV;QACJ,OAAO;YACHN,iBAAiBhB;QACrB;IACJ;IAEA,OAAOgB;AACX"}
|
|
@@ -5,4 +5,4 @@ import { UserPasswordResetStartReq } from "../schemas/UserPasswordResetStartReq"
|
|
|
5
5
|
import { UserPasswordResetStartResPublic } from "../schemas/UserPasswordResetStartResPublic";
|
|
6
6
|
declare const postPasswordResetStartHandler: Handler<FlinkContext<genericAuthContext & emailPluginContext>, UserPasswordResetStartReq, UserPasswordResetStartResPublic>;
|
|
7
7
|
export default postPasswordResetStartHandler;
|
|
8
|
-
export declare const __assumedHttpMethod = "", __file = "UserPasswordResetStart.ts", __query: never[], __params: never[];
|
|
8
|
+
export declare const __assumedHttpMethod = "", __file = "src/handlers/UserPasswordResetStart.ts", __query: never[], __params: never[];
|
|
@@ -1,99 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _flink = require("@flink-app/flink");
|
|
12
|
+
const _handlebars = /*#__PURE__*/ _interop_require_default(require("handlebars"));
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const postPasswordResetStartHandler = async ({ ctx, req, origin })=>{
|
|
19
|
+
var _ctx_plugins_emailPlugin;
|
|
20
|
+
let pluginName = origin || "genericAuthPlugin";
|
|
21
|
+
const genericAuthPlugin = ctx.plugins[pluginName];
|
|
22
|
+
let repo = ctx.repos[genericAuthPlugin.repoName];
|
|
23
|
+
if (((_ctx_plugins_emailPlugin = ctx.plugins.emailPlugin) === null || _ctx_plugins_emailPlugin === void 0 ? void 0 : _ctx_plugins_emailPlugin.client) == null) {
|
|
24
|
+
return (0, _flink.internalServerError)("Email plugin have to be initialized to use /password/reset");
|
|
25
|
+
}
|
|
26
|
+
if (!genericAuthPlugin.passwordResetSettings) {
|
|
27
|
+
return (0, _flink.internalServerError)("Password reset settings is needed to use /password/reset");
|
|
28
|
+
}
|
|
29
|
+
const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;
|
|
30
|
+
const resp = await genericAuthPlugin.passwordResetStart(repo, ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime, genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens);
|
|
31
|
+
if (resp.status != "success") {
|
|
32
|
+
return {
|
|
33
|
+
data: {
|
|
34
|
+
status: "success",
|
|
35
|
+
passwordResetToken: resp.passwordResetToken
|
|
32
36
|
}
|
|
33
|
-
|
|
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 };
|
|
37
|
+
};
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
_c = genericAuthPlugin.passwordResetSettings.code, jwtSecret = _c.jwtSecret, numberOfDigits = _c.numberOfDigits, lifeTime = _c.lifeTime;
|
|
62
|
-
return [4 /*yield*/, genericAuthPlugin.passwordResetStart(repo, ctx.auth, jwtSecret, req.body.username, numberOfDigits, lifeTime, genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens)];
|
|
63
|
-
case 1:
|
|
64
|
-
resp = _e.sent();
|
|
65
|
-
if (resp.status != "success") {
|
|
66
|
-
return [2 /*return*/, { data: { status: "success", passwordResetToken: resp.passwordResetToken } }];
|
|
67
|
-
}
|
|
68
|
-
emailCtx = {
|
|
69
|
-
code: resp.code,
|
|
70
|
-
passwordResetToken: resp.passwordResetToken,
|
|
71
|
-
username: req.body.username,
|
|
72
|
-
profile: resp.profile,
|
|
73
|
-
template: req.body.template,
|
|
74
|
-
additionalAuth: req.body.additionalAuth,
|
|
75
|
-
resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl
|
|
76
|
-
};
|
|
77
|
-
emailSettings = genericAuthPlugin.passwordResetSettings.email;
|
|
78
|
-
if (typeof emailSettings == "function") {
|
|
79
|
-
emailSettings = emailSettings(emailCtx);
|
|
80
|
-
}
|
|
81
|
-
subject = handlebars_1.default.compile(emailSettings.subject)(emailCtx);
|
|
82
|
-
html = handlebars_1.default.compile(emailSettings.html)(emailCtx);
|
|
83
|
-
email = req.body.username;
|
|
84
|
-
return [4 /*yield*/, ctx.plugins.emailPlugin.client.send({
|
|
85
|
-
from: emailSettings.from_address,
|
|
86
|
-
to: [email],
|
|
87
|
-
subject: subject,
|
|
88
|
-
html: html,
|
|
89
|
-
})];
|
|
90
|
-
case 2:
|
|
91
|
-
_e.sent();
|
|
92
|
-
return [2 /*return*/, {
|
|
93
|
-
data: { status: "success", passwordResetToken: resp.passwordResetToken },
|
|
94
|
-
}];
|
|
95
|
-
}
|
|
39
|
+
const emailCtx = {
|
|
40
|
+
code: resp.code,
|
|
41
|
+
passwordResetToken: resp.passwordResetToken,
|
|
42
|
+
username: req.body.username,
|
|
43
|
+
profile: resp.profile,
|
|
44
|
+
template: req.body.template,
|
|
45
|
+
additionalAuth: req.body.additionalAuth,
|
|
46
|
+
resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl
|
|
47
|
+
};
|
|
48
|
+
let emailSettings = genericAuthPlugin.passwordResetSettings.email;
|
|
49
|
+
if (typeof emailSettings == "function") {
|
|
50
|
+
emailSettings = emailSettings(emailCtx);
|
|
51
|
+
}
|
|
52
|
+
const subject = _handlebars.default.compile(emailSettings.subject)(emailCtx);
|
|
53
|
+
const html = _handlebars.default.compile(emailSettings.html)(emailCtx);
|
|
54
|
+
const email = req.body.username;
|
|
55
|
+
await ctx.plugins.emailPlugin.client.send({
|
|
56
|
+
from: emailSettings.from_address,
|
|
57
|
+
to: [
|
|
58
|
+
email
|
|
59
|
+
],
|
|
60
|
+
subject,
|
|
61
|
+
html
|
|
96
62
|
});
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
63
|
+
return {
|
|
64
|
+
data: {
|
|
65
|
+
status: "success",
|
|
66
|
+
passwordResetToken: resp.passwordResetToken
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
const _default = postPasswordResetStartHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserPasswordResetStart.ts"],"sourcesContent":["import { EmailPluginContext } from \"@flink-app/email-plugin\";\nimport { FlinkContext, Handler, internalServerError } from \"@flink-app/flink\";\nimport { JwtAuthPlugin } from \"@flink-app/jwt-auth-plugin\";\nimport Handlebars from \"handlebars\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserPasswordResetStartReq } from \"../schemas/UserPasswordResetStartReq\";\nimport { UserPasswordResetStartResPublic } from \"../schemas/UserPasswordResetStartResPublic\";\n\nconst postPasswordResetStartHandler: Handler<\n FlinkContext<genericAuthContext & EmailPluginContext>,\n UserPasswordResetStartReq,\n UserPasswordResetStartResPublic\n> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n\n const genericAuthPlugin = (<any>ctx.plugins)[pluginName] as genericAuthContext[\"genericAuthPlugin\"];\n\n let repo = ctx.repos[genericAuthPlugin.repoName];\n\n if (ctx.plugins.emailPlugin?.client == null) {\n return internalServerError(\"Email plugin have to be initialized to use /password/reset\");\n }\n\n if (!genericAuthPlugin.passwordResetSettings) {\n return internalServerError(\"Password reset settings is needed to use /password/reset\");\n }\n\n const { jwtSecret, numberOfDigits, lifeTime } = genericAuthPlugin.passwordResetSettings.code;\n\n const resp = await genericAuthPlugin.passwordResetStart(\n repo,\n <JwtAuthPlugin>ctx.auth,\n jwtSecret,\n req.body.username,\n numberOfDigits,\n lifeTime,\n genericAuthPlugin.passwordResetSettings.passwordResetReusableTokens\n );\n\n if (resp.status != \"success\") {\n return { data: { status: \"success\", passwordResetToken: resp.passwordResetToken } };\n }\n\n const emailCtx = {\n code: resp.code,\n passwordResetToken: resp.passwordResetToken,\n username: req.body.username,\n profile: resp.profile,\n template: req.body.template,\n additionalAuth: req.body.additionalAuth,\n resetPasswordFormBaseUrl: genericAuthPlugin.passwordResetSettings.resetPasswordFormBaseUrl,\n };\n\n let emailSettings = genericAuthPlugin.passwordResetSettings.email;\n\n if (typeof emailSettings == \"function\") {\n emailSettings = emailSettings(emailCtx);\n }\n\n const subject = Handlebars.compile(emailSettings.subject)(emailCtx);\n const html = Handlebars.compile(emailSettings.html)(emailCtx);\n const email = req.body.username;\n\n await ctx.plugins.emailPlugin.client.send({\n from: emailSettings.from_address,\n to: [email],\n subject,\n html,\n });\n\n return {\n data: { status: \"success\", passwordResetToken: resp.passwordResetToken },\n };\n};\n\nexport default postPasswordResetStartHandler;\n"],"names":["postPasswordResetStartHandler","ctx","req","origin","pluginName","genericAuthPlugin","plugins","repo","repos","repoName","emailPlugin","client","internalServerError","passwordResetSettings","jwtSecret","numberOfDigits","lifeTime","code","resp","passwordResetStart","auth","body","username","passwordResetReusableTokens","status","data","passwordResetToken","emailCtx","profile","template","additionalAuth","resetPasswordFormBaseUrl","emailSettings","email","subject","Handlebars","compile","html","send","from","from_address","to"],"mappings":";;;;+BA2EA;;;eAAA;;;uBA1E2D;mEAEpC;;;;;;AAKvB,MAAMA,gCAIF,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;QAOvBF;IANJ,IAAIG,aAAaD,UAAU;IAE3B,MAAME,oBAAoB,AAAMJ,IAAIK,OAAO,AAAC,CAACF,WAAW;IAExD,IAAIG,OAAON,IAAIO,KAAK,CAACH,kBAAkBI,QAAQ,CAAC;IAEhD,IAAIR,EAAAA,2BAAAA,IAAIK,OAAO,CAACI,WAAW,cAAvBT,+CAAAA,yBAAyBU,MAAM,KAAI,MAAM;QACzC,OAAOC,IAAAA,0BAAmB,EAAC;IAC/B;IAEA,IAAI,CAACP,kBAAkBQ,qBAAqB,EAAE;QAC1C,OAAOD,IAAAA,0BAAmB,EAAC;IAC/B;IAEA,MAAM,EAAEE,SAAS,EAAEC,cAAc,EAAEC,QAAQ,EAAE,GAAGX,kBAAkBQ,qBAAqB,CAACI,IAAI;IAE5F,MAAMC,OAAO,MAAMb,kBAAkBc,kBAAkB,CACnDZ,MACeN,IAAImB,IAAI,EACvBN,WACAZ,IAAImB,IAAI,CAACC,QAAQ,EACjBP,gBACAC,UACAX,kBAAkBQ,qBAAqB,CAACU,2BAA2B;IAGvE,IAAIL,KAAKM,MAAM,IAAI,WAAW;QAC1B,OAAO;YAAEC,MAAM;gBAAED,QAAQ;gBAAWE,oBAAoBR,KAAKQ,kBAAkB;YAAC;QAAE;IACtF;IAEA,MAAMC,WAAW;QACbV,MAAMC,KAAKD,IAAI;QACfS,oBAAoBR,KAAKQ,kBAAkB;QAC3CJ,UAAUpB,IAAImB,IAAI,CAACC,QAAQ;QAC3BM,SAASV,KAAKU,OAAO;QACrBC,UAAU3B,IAAImB,IAAI,CAACQ,QAAQ;QAC3BC,gBAAgB5B,IAAImB,IAAI,CAACS,cAAc;QACvCC,0BAA0B1B,kBAAkBQ,qBAAqB,CAACkB,wBAAwB;IAC9F;IAEA,IAAIC,gBAAgB3B,kBAAkBQ,qBAAqB,CAACoB,KAAK;IAEjE,IAAI,OAAOD,iBAAiB,YAAY;QACpCA,gBAAgBA,cAAcL;IAClC;IAEA,MAAMO,UAAUC,mBAAU,CAACC,OAAO,CAACJ,cAAcE,OAAO,EAAEP;IAC1D,MAAMU,OAAOF,mBAAU,CAACC,OAAO,CAACJ,cAAcK,IAAI,EAAEV;IACpD,MAAMM,QAAQ/B,IAAImB,IAAI,CAACC,QAAQ;IAE/B,MAAMrB,IAAIK,OAAO,CAACI,WAAW,CAACC,MAAM,CAAC2B,IAAI,CAAC;QACtCC,MAAMP,cAAcQ,YAAY;QAChCC,IAAI;YAACR;SAAM;QACXC;QACAG;IACJ;IAEA,OAAO;QACHZ,MAAM;YAAED,QAAQ;YAAWE,oBAAoBR,KAAKQ,kBAAkB;QAAC;IAC3E;AACJ;MAEA,WAAe1B"}
|
|
@@ -3,4 +3,4 @@ import { genericAuthContext } from "../genericAuthContext";
|
|
|
3
3
|
import { UserProfile } from "../schemas/UserProfile";
|
|
4
4
|
declare const getProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile>;
|
|
5
5
|
export default getProfileHandler;
|
|
6
|
-
export declare const __assumedHttpMethod = "", __file = "UserProfileGet.ts", __query: never[], __params: never[];
|
|
6
|
+
export declare const __assumedHttpMethod = "", __file = "src/handlers/UserProfileGet.ts", __query: never[], __params: never[];
|
|
@@ -1,63 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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 };
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _flink = require("@flink-app/flink");
|
|
12
|
+
const getProfileHandler = async ({ ctx, req, origin })=>{
|
|
13
|
+
let pluginName = origin || "genericAuthPlugin";
|
|
14
|
+
let repo = ctx.repos[ctx.plugins[pluginName].repoName];
|
|
15
|
+
let userId = req.user._id;
|
|
16
|
+
let user = await repo.getById(userId);
|
|
17
|
+
if (user == null) {
|
|
18
|
+
return (0, _flink.notFound)();
|
|
36
19
|
}
|
|
20
|
+
return {
|
|
21
|
+
data: user.profile
|
|
22
|
+
};
|
|
37
23
|
};
|
|
38
|
-
|
|
39
|
-
exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
|
|
40
|
-
var flink_1 = require("@flink-app/flink");
|
|
41
|
-
var getProfileHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
42
|
-
var pluginName, repo, userId, user;
|
|
43
|
-
var ctx = _b.ctx, req = _b.req, origin = _b.origin;
|
|
44
|
-
return __generator(this, function (_c) {
|
|
45
|
-
switch (_c.label) {
|
|
46
|
-
case 0:
|
|
47
|
-
pluginName = origin || "genericAuthPlugin";
|
|
48
|
-
repo = ctx.repos[ctx.plugins[pluginName].repoName];
|
|
49
|
-
userId = req.user._id;
|
|
50
|
-
return [4 /*yield*/, repo.getById(userId)];
|
|
51
|
-
case 1:
|
|
52
|
-
user = _c.sent();
|
|
53
|
-
if (user == null) {
|
|
54
|
-
return [2 /*return*/, (0, flink_1.notFound)()];
|
|
55
|
-
}
|
|
56
|
-
return [2 /*return*/, {
|
|
57
|
-
data: user.profile,
|
|
58
|
-
}];
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}); };
|
|
62
|
-
exports.default = getProfileHandler;
|
|
63
|
-
exports.__assumedHttpMethod = "", exports.__file = "UserProfileGet.ts", exports.__query = [], exports.__params = [];
|
|
24
|
+
const _default = getProfileHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserProfileGet.ts"],"sourcesContent":["import { FlinkContext, Handler, notFound } from \"@flink-app/flink\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserProfile } from \"../schemas/UserProfile\";\n\nconst getProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];\n\n let userId = req.user._id;\n let user = await repo.getById(userId);\n if (user == null) {\n return notFound();\n }\n\n return {\n data: user.profile,\n };\n};\n\nexport default getProfileHandler;\n"],"names":["getProfileHandler","ctx","req","origin","pluginName","repo","repos","plugins","repoName","userId","user","_id","getById","notFound","data","profile"],"mappings":";;;;+BAmBA;;;eAAA;;;uBAnBgD;AAIhD,MAAMA,oBAA4E,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;IACzG,IAAIC,aAAaD,UAAU;IAC3B,IAAIE,OAAOJ,IAAIK,KAAK,CAAC,AAAML,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACI,QAAQ,CAAC;IAE7D,IAAIC,SAASP,IAAIQ,IAAI,CAACC,GAAG;IACzB,IAAID,OAAO,MAAML,KAAKO,OAAO,CAACH;IAC9B,IAAIC,QAAQ,MAAM;QACd,OAAOG,IAAAA,eAAQ;IACnB;IAEA,OAAO;QACHC,MAAMJ,KAAKK,OAAO;IACtB;AACJ;MAEA,WAAef"}
|
|
@@ -3,4 +3,4 @@ import { genericAuthContext } from "../genericAuthContext";
|
|
|
3
3
|
import { UserProfile } from "../schemas/UserProfile";
|
|
4
4
|
declare const putUserProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile, UserProfile>;
|
|
5
5
|
export default putUserProfileHandler;
|
|
6
|
-
export declare const __assumedHttpMethod = "", __file = "UserProfilePut.ts", __query: never[], __params: never[];
|
|
6
|
+
export declare const __assumedHttpMethod = "", __file = "src/handlers/UserProfilePut.ts", __query: never[], __params: never[];
|
|
@@ -1,86 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _flink = require("@flink-app/flink");
|
|
12
|
+
function _define_property(obj, key, value) {
|
|
13
|
+
if (key in obj) {
|
|
14
|
+
Object.defineProperty(obj, key, {
|
|
15
|
+
value: value,
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true
|
|
19
|
+
});
|
|
20
|
+
} else {
|
|
21
|
+
obj[key] = value;
|
|
22
|
+
}
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
function _object_spread(target) {
|
|
26
|
+
for(var i = 1; i < arguments.length; i++){
|
|
27
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
28
|
+
var ownKeys = Object.keys(source);
|
|
29
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
30
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
31
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
32
|
+
}));
|
|
8
33
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
34
|
+
ownKeys.forEach(function(key) {
|
|
35
|
+
_define_property(target, key, source[key]);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return target;
|
|
39
|
+
}
|
|
40
|
+
const putUserProfileHandler = async ({ ctx, req, origin })=>{
|
|
41
|
+
let pluginName = origin || "genericAuthPlugin";
|
|
42
|
+
let repo = ctx.repos[ctx.plugins[pluginName].repoName];
|
|
43
|
+
let userId = req.user._id;
|
|
44
|
+
let user = await repo.getById(userId);
|
|
45
|
+
if (user == null) {
|
|
46
|
+
return (0, _flink.notFound)();
|
|
47
|
+
}
|
|
48
|
+
const updatedProfile = _object_spread({}, user.profile, req.body);
|
|
49
|
+
await repo.updateById(userId, {
|
|
50
|
+
profile: updatedProfile
|
|
20
51
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
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;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
52
|
+
user = await repo.getById(userId);
|
|
53
|
+
if (ctx.plugins[pluginName].onUserUpdated) {
|
|
54
|
+
await ctx.plugins[pluginName].onUserUpdated(user, req.body);
|
|
47
55
|
}
|
|
56
|
+
return {
|
|
57
|
+
data: user.profile
|
|
58
|
+
};
|
|
48
59
|
};
|
|
49
|
-
|
|
50
|
-
exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
|
|
51
|
-
var flink_1 = require("@flink-app/flink");
|
|
52
|
-
var putUserProfileHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
53
|
-
var pluginName, repo, userId, user, updatedProfile;
|
|
54
|
-
var ctx = _b.ctx, req = _b.req, origin = _b.origin;
|
|
55
|
-
return __generator(this, function (_c) {
|
|
56
|
-
switch (_c.label) {
|
|
57
|
-
case 0:
|
|
58
|
-
pluginName = origin || "genericAuthPlugin";
|
|
59
|
-
repo = ctx.repos[ctx.plugins[pluginName].repoName];
|
|
60
|
-
userId = req.user._id;
|
|
61
|
-
return [4 /*yield*/, repo.getById(userId)];
|
|
62
|
-
case 1:
|
|
63
|
-
user = _c.sent();
|
|
64
|
-
if (user == null) {
|
|
65
|
-
return [2 /*return*/, (0, flink_1.notFound)()];
|
|
66
|
-
}
|
|
67
|
-
updatedProfile = __assign(__assign({}, user.profile), req.body);
|
|
68
|
-
return [4 /*yield*/, repo.updateOne(userId, { profile: updatedProfile })];
|
|
69
|
-
case 2:
|
|
70
|
-
_c.sent();
|
|
71
|
-
return [4 /*yield*/, repo.getById(userId)];
|
|
72
|
-
case 3:
|
|
73
|
-
user = _c.sent();
|
|
74
|
-
if (!ctx.plugins[pluginName].onUserUpdated) return [3 /*break*/, 5];
|
|
75
|
-
return [4 /*yield*/, ctx.plugins[pluginName].onUserUpdated(user, req.body)];
|
|
76
|
-
case 4:
|
|
77
|
-
_c.sent();
|
|
78
|
-
_c.label = 5;
|
|
79
|
-
case 5: return [2 /*return*/, {
|
|
80
|
-
data: user.profile,
|
|
81
|
-
}];
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}); };
|
|
85
|
-
exports.default = putUserProfileHandler;
|
|
86
|
-
exports.__assumedHttpMethod = "", exports.__file = "UserProfilePut.ts", exports.__query = [], exports.__params = [];
|
|
60
|
+
const _default = putUserProfileHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/generic-auth-plugin/src/handlers/UserProfilePut.ts"],"sourcesContent":["import { FlinkContext, Handler, notFound } from \"@flink-app/flink\";\nimport { genericAuthContext } from \"../genericAuthContext\";\nimport { UserProfile } from \"../schemas/UserProfile\";\n\nconst putUserProfileHandler: Handler<FlinkContext<genericAuthContext>, UserProfile, UserProfile> = async ({ ctx, req, origin }) => {\n let pluginName = origin || \"genericAuthPlugin\";\n let repo = ctx.repos[(<any>ctx.plugins)[pluginName].repoName];\n\n let userId = req.user._id;\n let user = await repo.getById(userId);\n if (user == null) {\n return notFound();\n }\n\n const updatedProfile = {\n ...user.profile,\n ...req.body,\n };\n\n await repo.updateById(userId, { profile: updatedProfile });\n\n user = await repo.getById(userId);\n\n if ((<any>ctx.plugins)[pluginName].onUserUpdated) {\n await (<any>ctx.plugins)[pluginName].onUserUpdated(user, req.body);\n }\n\n return {\n data: user.profile,\n };\n};\n\nexport default putUserProfileHandler;\n"],"names":["putUserProfileHandler","ctx","req","origin","pluginName","repo","repos","plugins","repoName","userId","user","_id","getById","notFound","updatedProfile","profile","body","updateById","onUserUpdated","data"],"mappings":";;;;+BAgCA;;;eAAA;;;uBAhCgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIhD,MAAMA,wBAA6F,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;IAC1H,IAAIC,aAAaD,UAAU;IAC3B,IAAIE,OAAOJ,IAAIK,KAAK,CAAC,AAAML,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACI,QAAQ,CAAC;IAE7D,IAAIC,SAASP,IAAIQ,IAAI,CAACC,GAAG;IACzB,IAAID,OAAO,MAAML,KAAKO,OAAO,CAACH;IAC9B,IAAIC,QAAQ,MAAM;QACd,OAAOG,IAAAA,eAAQ;IACnB;IAEA,MAAMC,iBAAiB,mBAChBJ,KAAKK,OAAO,EACZb,IAAIc,IAAI;IAGf,MAAMX,KAAKY,UAAU,CAACR,QAAQ;QAAEM,SAASD;IAAe;IAExDJ,OAAO,MAAML,KAAKO,OAAO,CAACH;IAE1B,IAAI,AAAMR,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACc,aAAa,EAAE;QAC9C,MAAM,AAAMjB,IAAIM,OAAO,AAAC,CAACH,WAAW,CAACc,aAAa,CAACR,MAAMR,IAAIc,IAAI;IACrE;IAEA,OAAO;QACHG,MAAMT,KAAKK,OAAO;IACtB;AACJ;MAEA,WAAef"}
|
|
@@ -4,4 +4,4 @@ import { PushNotificationToken } from "../schemas/PushNotificationToken";
|
|
|
4
4
|
import { PushNotificatioNTokenRes } from "../schemas/PushNotificationTokenRes";
|
|
5
5
|
declare const postUserPushRegisterTokenHandler: Handler<FlinkContext<genericAuthContext>, PushNotificationToken, PushNotificatioNTokenRes>;
|
|
6
6
|
export default postUserPushRegisterTokenHandler;
|
|
7
|
-
export declare const __assumedHttpMethod = "", __file = "UserPushRegisterToken.ts", __query: never[], __params: never[];
|
|
7
|
+
export declare const __assumedHttpMethod = "", __file = "src/handlers/UserPushRegisterToken.ts", __query: never[], __params: never[];
|