Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as connection from "./connection";
- export * from "./queries/confirmEmail";
- export * from "./queries/resetPassword";
- export * from "./queries/user";
- namespace Sql {
- export function query( ...args: any[] ) {
- return connection.query( args );
- }
- export class Errors {
- static confirmCodeExpired = "45001";
- static confirmCodeNonExistent = "45002";
- static userAlreadyConfirmed = "45003";
- }
- }
- import "../sql";
- namespace Sql.ResetPassword {
- type InsertCodeArgs = {
- code: string;
- userid: number;
- canChange: boolean;
- }
- export function insertCode( args: InsertCodeArgs, cb: Nodeback<void> ) {
- Sql.query(
- "CALL insert_reset_code( :code, :userid, :canChange );",
- {
- code: args.code,
- userid: args.userid,
- canChange: args.canChange ? 1 : 0
- },
- cb
- );
- }
- export function removeCode( code: string, cb: Nodeback<void> ) {
- Sql.query(
- "DELETE FROM `resetcodes` WHERE `code` = :code;",
- { code: code },
- cb
- );
- }
- export function checkCodeValid( code: string, cb: Nodeback<boolean> ) {
- Sql.query(
- [
- "SELECT NOW() <= `c`.`expires` AS `valid`, `c`.`canchange` as `canchange`, `u`.`id` AS `userid` FROM `resetcodes` AS `c` ",
- "INNER JOIN `users` AS `u`",
- "ON `u`.`id` = `c`.`userid`",
- "WHERE `code` = :code LIMIT 1;"
- ].join( " " ),
- { code: code },
- ( err, data ) => {
- if ( err ) return cb( err );
- if ( !data || data.length === 0 ) return cb( null, null );
- return cb( null, data[ 0 ].valid > 0, data[ 0 ].userid, data[ 0 ].canchange > 0 );
- }
- );
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement