111 lines
2.8 KiB
TypeScript
111 lines
2.8 KiB
TypeScript
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
|
|
);
|
|
}
|