diff --git a/src/controllers/AccountController.ts b/src/controllers/AccountController.ts index d67ca83..d31e86f 100644 --- a/src/controllers/AccountController.ts +++ b/src/controllers/AccountController.ts @@ -64,4 +64,18 @@ export class AccountController { userID: handler.getUserId() }); } + + /** + * Check out whether an email is associated to an account + * or not + * + * @param h Request handler + */ + public static async ExistsMail(h: RequestHandler) { + const email = h.postEmail("email"); + + h.send({ + exists: await AccountHelper.ExistsEmail(email) + }) + } } \ No newline at end of file diff --git a/src/controllers/Routes.ts b/src/controllers/Routes.ts index 21e2a49..f9af892 100644 --- a/src/controllers/Routes.ts +++ b/src/controllers/Routes.ts @@ -43,6 +43,8 @@ export const Routes : Route[] = [ {path: "/account/id", cb: (h) => AccountController.CurrentUserID(h)}, {path: "/user/getCurrentUserID", cb: (h) => AccountController.CurrentUserID(h)}, // Legacy + {path: "/account/exists_email", cb: (h) => AccountController.ExistsMail(h), needLogin: false}, + // User controller {path: "/user/getInfo", cb: (h) => UserController.GetSingle(h), needLogin: false}, diff --git a/src/helpers/AccountHelper.ts b/src/helpers/AccountHelper.ts index 2a34c36..0175d0b 100644 --- a/src/helpers/AccountHelper.ts +++ b/src/helpers/AccountHelper.ts @@ -161,6 +161,20 @@ export class AccountHelper { }; } + /** + * Check out whether an email address exists or not + * + * @param email Email address to check + */ + public static async ExistsEmail(email: string) : Promise { + return await DatabaseHelper.Count({ + table: USER_TABLE, + where: { + mail: email + } + }) > 0; + } + /** * Check out whether a virtual directory is available or not