import logger from "../logger/logger"; import { USERNAME_MIN_LENGTH, USERNAME_MAX_LENGTH, PASSWORD_MIN_LENGTH, PASSWORD_MAX_LENGTH, ACCOUNT_NAME_MIN_LENGTH, ACCOUNT_NAME_MAX_LENGTH, USER_ID_LENGTH, STORE_SERVICE_MIN_LENGTH, STORE_SERVICE_MAX_LENGTH, STORE_SERVICE_ACTIVITY_NAME_MAX_LENGTH, STORE_SERVICE_ACTIVITY_NAME_MIN_LENGTH, STORE_SERVICE_ACTIVITY_DESCRIPTION_MAX_LENGTH, STORE_SERVICE_ACTIVITY_DESCRIPTION_MIN_LENGTH, STORE_SERVICE_ACTIVITY_PRICE_MAX, STORE_SERVICE_ACTIVITY_PRICE_MIN, STORE_SERVICE_ACTIVITY_DURATION_MAX, STORE_SERVICE_ACTIVITY_DURATION_MIN, } from "../utils/constants"; import User from "../models/user"; // TODO: regex for username export function isUsernameValid(username: string) { return ( username.length >= USERNAME_MIN_LENGTH && username.length <= USERNAME_MAX_LENGTH ); } // TODO: regex for account name export async function isAccountNameValid(accountName: string) { if ( accountName.length < ACCOUNT_NAME_MIN_LENGTH || accountName.length > ACCOUNT_NAME_MAX_LENGTH ) { return false; } // check if account name is already taken in the database const existingUser = await User.findOne({ where: { account_name: accountName, }, }); if (existingUser) { return false; } return true; } // TODO: regex for password export function isPasswordValid(password: string) { return ( password.length >= PASSWORD_MIN_LENGTH && password.length <= PASSWORD_MAX_LENGTH ); } export function isUserIdValid(userId: string) { return userId.length === USER_ID_LENGTH; } export function isStoreServiceNameValid(storeServiceName: string) { return ( storeServiceName.length >= STORE_SERVICE_MIN_LENGTH && storeServiceName.length <= STORE_SERVICE_MAX_LENGTH ); } export function isStoreServiceActivityNameValid( storeServiceActivityName: string ) { return ( storeServiceActivityName.length >= STORE_SERVICE_ACTIVITY_NAME_MIN_LENGTH && storeServiceActivityName.length <= STORE_SERVICE_ACTIVITY_NAME_MAX_LENGTH ); } export function isStoreServiceActivityDescriptionValid( storeServiceActivityDescription: string ) { return ( storeServiceActivityDescription.length >= STORE_SERVICE_ACTIVITY_DESCRIPTION_MIN_LENGTH && storeServiceActivityDescription.length <= STORE_SERVICE_ACTIVITY_DESCRIPTION_MAX_LENGTH ); } export function isStoreServiceActivityPriceValid( storeServiceActivityPrice: number ) { return ( storeServiceActivityPrice >= STORE_SERVICE_ACTIVITY_PRICE_MIN && storeServiceActivityPrice <= STORE_SERVICE_ACTIVITY_PRICE_MAX ); } export function isStoreServiceActivityDurationValid( storeServiceActivityDuration: number ) { return ( storeServiceActivityDuration >= STORE_SERVICE_ACTIVITY_DURATION_MIN && storeServiceActivityDuration <= STORE_SERVICE_ACTIVITY_DURATION_MAX ); }