Commit 52600bee by Harish Patel

Changes for registrarion

1 parent 94c6186b
...@@ -5,37 +5,69 @@ ...@@ -5,37 +5,69 @@
*/ */
const { factories } = require("@strapi/strapi"); const { factories } = require("@strapi/strapi");
const { getService } = require("@strapi/plugin-users-permissions/server/utils");
module.exports = factories.createCoreController( module.exports = factories.createCoreController(
"api::end-user.end-user", "api::end-user.end-user",
({ strapi: Strapi }) => ({ ({ strapi: Strapi }) => ({
// Wrapping a core action (leaves core logic in place) // Method 1: Creating an entirely custom action
async create(ctx) { // async finishEndUserOtpVerification(ctx) {
console.log(ctx.request.body); // (await strapi.service) <
const currentUser = ctx.state.user; // PostService >
// "api::post.post".exampleService({});
// try {
// ctx.body = "ok";
// } catch (err) {
// ctx.body = err;
// }
// },
// Find the linked user next. // Method 1: Creating an entirely custom action
// const existingUser = await strapi async finishEndUserOtpVerification(ctx) {
// .query("plugin::users-permissions.user") const { mobileNo, oneTimePassword } = ctx.request.body;
// .findOne({ username: ctx.request.body.data.mobileNo });
// const existingUserEntries = await strapi.entityService.findMany( // 1. Identify the end-user record using the above.
// "plugin::users-permissions.user", const endUser = await strapi.query("api::end-user.end-user").findOne({
// { populate: ["user"],
// // fields: ['title', 'description'], where: {
// filters: { username: ctx.request.body.data.mobileNo }, $and: [{ publishedAt: { $null: true } }, { mobileNo: mobileNo }],
// } },
// ); });
// console.log(`Inside end-user create, found existingUserEntries: `);
// console.log(existingUserEntries); if (!endUser) {
throw new ValidationError("Invalid mobile number.");
// if (!existingUserEntries || existingUserEntries.length === 0) { }
// throw new ValidationError(
// `Unable to resolve existing user with mobileNo: ${ctx.request.body.data.mobileNo}.` // 2. Then identify the user record using step 1.
// ); // 3. Verify otp.
// } const user = await strapi
.query("plugin::users-permissions.user")
.findOne({
where: {
$and: [
{ id: endUser.user.id },
{ oneTimePassword: oneTimePassword },
],
},
});
if (!user || user.blocked) {
throw new ValidationError("Code provided is not valid.");
}
// 4. stamp otp in user to null.
await getService("user").edit(user.id, {
oneTimePassword: null,
password: oneTimePassword,
});
// TODO: at this point we might have to invoke a Hiranandani API to send the newly registered user there.
ctx.send({ ok: true, message: "user registered" });
},
// const existingUser = existingUserEntries[0]; // Wrapping a core action (leaves core logic in place)
async create(ctx) {
const currentUser = ctx.state.user;
// 2. check if the current user already has an existing business listing (existingEndUser) against their name. // 2. check if the current user already has an existing business listing (existingEndUser) against their name.
const existingEndUser = await strapi.entityService.findMany( const existingEndUser = await strapi.entityService.findMany(
...@@ -85,9 +117,6 @@ module.exports = factories.createCoreController( ...@@ -85,9 +117,6 @@ module.exports = factories.createCoreController(
// We make sure that the newly created listing is created against the current business owner. // We make sure that the newly created listing is created against the current business owner.
ctx.request.body.data["user"] = currentUser.id; ctx.request.body.data["user"] = currentUser.id;
console.log(`About to insert end user: `);
console.log(ctx.request.body.data);
// Now go ahead and create the listing. // Now go ahead and create the listing.
return await super.create(ctx); return await super.create(ctx);
} }
......
const routes = {
routes: [
{
method: "POST",
path: "/end-users/finish-otp-verification",
handler: "api::end-user.end-user.finishEndUserOtpVerification",
config: {
// some configuration...
}
}
]
};
module.exports = routes;
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!