first commit
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
import { ISession } from "../Session.model";
|
||||
import { IUserDocument } from "./Users.Adapter.Mongoose";
|
||||
|
||||
export type SignUpParams = {
|
||||
email: string;
|
||||
password: string;
|
||||
lastName: string;
|
||||
firstName: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode: string;
|
||||
phoneNumber: string;
|
||||
};
|
||||
|
||||
export type UpdateUserParams = {
|
||||
id: string;
|
||||
userName?: string;
|
||||
email?: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
street?: string;
|
||||
streetNumber?: string;
|
||||
builingFloor?: string;
|
||||
buildingApartament?: string;
|
||||
block?: string; //barrio o localidad
|
||||
city?: string;
|
||||
state?: string;
|
||||
country?: string;
|
||||
zipCode?: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode?: string;
|
||||
phoneNumber?: string;
|
||||
verificated?: boolean;
|
||||
sessionUser: string;
|
||||
external_id?: string;
|
||||
external_service?: string;
|
||||
};
|
||||
|
||||
export type LoginParams = {
|
||||
email: string;
|
||||
password: string;
|
||||
};
|
||||
|
||||
export type VerificationUserParams = LoginParams & {
|
||||
verificationCode: string;
|
||||
};
|
||||
|
||||
export type LoginByTokenParams = {
|
||||
token: string;
|
||||
};
|
||||
|
||||
export type LoginByGoogleParams = {
|
||||
token: string;
|
||||
};
|
||||
|
||||
export type ChangePasswordParams = {
|
||||
oldPassword: string;
|
||||
newPassword: string;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type SetUserFileParams = {
|
||||
sessionUser: string;
|
||||
file: Express.Multer.File;
|
||||
};
|
||||
|
||||
export type FindUsersParams = {
|
||||
_id?: string;
|
||||
email?: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
external_id?: string;
|
||||
external_service?: string;
|
||||
sessionUser?: string;
|
||||
};
|
||||
|
||||
export interface IGoogleData {
|
||||
id: string;
|
||||
email: string;
|
||||
name: string;
|
||||
picture: string;
|
||||
}
|
||||
|
||||
export interface IUserView {
|
||||
id: string;
|
||||
email: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
fullName?: string;
|
||||
avatar?: string;
|
||||
phoneNumber?: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode?: string;
|
||||
formattedPhoneNumber?: string;
|
||||
street?: string;
|
||||
streetNumber?: string;
|
||||
builingFloor?: string;
|
||||
buildingApartament?: string;
|
||||
block?: string;
|
||||
city?: string;
|
||||
state?: string;
|
||||
country?: string;
|
||||
zipCode?: string;
|
||||
}
|
||||
|
||||
export interface UserAssistanceInfo {
|
||||
message: string;
|
||||
email?: string;
|
||||
fullName?: string;
|
||||
verificated: boolean;
|
||||
activationCode?: string;
|
||||
recoveryCode?: string;
|
||||
}
|
||||
|
||||
export interface CollaboratorView {
|
||||
id: string;
|
||||
email: string;
|
||||
fullName: string;
|
||||
avatar: string;
|
||||
}
|
||||
|
||||
export type FindCollaboratorByEmailParams = {
|
||||
email: string;
|
||||
};
|
||||
|
||||
export type PaginateUsersParams = FindUsersParams & {
|
||||
page: number;
|
||||
limit: number;
|
||||
};
|
||||
|
||||
export type PaginateUsersResults = {
|
||||
data: IUser[];
|
||||
page: number;
|
||||
pages: number;
|
||||
};
|
||||
|
||||
export type RecoveryAccountParams = {
|
||||
email: string;
|
||||
recoveryCode?: string;
|
||||
newPassword?: string;
|
||||
sendRecoveryCode: boolean;
|
||||
};
|
||||
|
||||
export type DeleteUserParams = {
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type SavePayerEmailParams = {
|
||||
email: string;
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type GetPayerEmailParams = {
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export type CheckUserPhoneParams = {
|
||||
sessionUser: string;
|
||||
};
|
||||
|
||||
export interface PayerEmailResult {
|
||||
mpPayerEmail?: string;
|
||||
}
|
||||
|
||||
export type SysAdminPaginateUsersParams = {
|
||||
page: number;
|
||||
limit: number;
|
||||
name?: string;
|
||||
lastName?: string;
|
||||
email?: string;
|
||||
isVerified?: boolean;
|
||||
createdFrom?: string;
|
||||
createdTo?: string;
|
||||
sortBy?: "name" | "createdAt";
|
||||
sortOrder?: "asc" | "desc";
|
||||
};
|
||||
|
||||
export type SysAdminUpdateProfileParams = {
|
||||
userId: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
street?: string;
|
||||
streetNumber?: string;
|
||||
builingFloor?: string;
|
||||
buildingApartament?: string;
|
||||
block?: string;
|
||||
city?: string;
|
||||
state?: string;
|
||||
country?: string;
|
||||
zipCode?: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode?: string;
|
||||
phoneNumber?: string;
|
||||
};
|
||||
|
||||
export type SysAdminSetVerifiedParams = {
|
||||
userId: string;
|
||||
isVerified: boolean;
|
||||
};
|
||||
|
||||
export type SysAdminDeleteUserParams = {
|
||||
userId: string;
|
||||
};
|
||||
|
||||
export type SysAdminOrganizationsStatusParams = {
|
||||
userId: string;
|
||||
};
|
||||
|
||||
export type SysAdminUserOrganizationsResult = {
|
||||
clientIn: { companyId: string; companyName: string }[];
|
||||
collaboratorIn: { companyId: string; companyName: string }[];
|
||||
};
|
||||
|
||||
|
||||
export interface IUser {
|
||||
id?: string;
|
||||
password?: string;
|
||||
email: string;
|
||||
firstName?: string;
|
||||
lastName?: string;
|
||||
external_id?: string;
|
||||
external_service?: string;
|
||||
street?: string;
|
||||
streetNumber?: string;
|
||||
builingFloor?: string;
|
||||
buildingApartament?: string;
|
||||
block?: string;
|
||||
city?: string;
|
||||
state?: string;
|
||||
country?: string;
|
||||
zipCode?: string;
|
||||
phoneCountryCode?: string;
|
||||
phoneAreaCode?: string;
|
||||
phoneNumber?: string;
|
||||
verificated?: boolean;
|
||||
verificationCode?: string;
|
||||
recoveryCode?: string;
|
||||
avatar?: string;
|
||||
mpPayerEmail?: string;
|
||||
lastLoginDate?: Date;
|
||||
}
|
||||
|
||||
export interface IUsersAdapter {
|
||||
create(user: IUser): Promise<IUser>;
|
||||
delete(id: string): Promise<void>;
|
||||
find(filters: FindUsersParams): Promise<IUser[]>;
|
||||
findOne(filters: FindUsersParams): Promise<IUserDocument | null>;
|
||||
paginate(filters: PaginateUsersParams): Promise<PaginateUsersResults>;
|
||||
update(data: UpdateUserParams): Promise<void>;
|
||||
sysAdminPaginate(filters: SysAdminPaginateUsersParams): Promise<PaginateUsersResults>;
|
||||
}
|
||||
|
||||
export interface IUsersManager {
|
||||
users: IUsersAdapter;
|
||||
signUp(data: SignUpParams): Promise<IUser>;
|
||||
login(data: LoginParams): Promise<ISession>;
|
||||
loginByToken(data: LoginByTokenParams): Promise<ISession>;
|
||||
changePassword(data: ChangePasswordParams): Promise<void>;
|
||||
recoveryAccount(data: RecoveryAccountParams): Promise<void>;
|
||||
updateUser(data: UpdateUserParams): Promise<void>;
|
||||
setUserIcon(data: SetUserFileParams): Promise<void>;
|
||||
findOne(data: FindUsersParams): Promise<IUserView | null>;
|
||||
findByEmail(data: FindCollaboratorByEmailParams): Promise<CollaboratorView | null>;
|
||||
getUserFullName(data: IUser): string;
|
||||
deleteUser(data: DeleteUserParams): Promise<void>;
|
||||
savePayerEmail(data: SavePayerEmailParams): Promise<void>;
|
||||
getPayerEmail(data: GetPayerEmailParams): Promise<PayerEmailResult>;
|
||||
checkUserPhone(data: CheckUserPhoneParams): Promise<boolean>;
|
||||
getUserAssistanceInfo(data: FindUsersParams): Promise<UserAssistanceInfo>;
|
||||
|
||||
// SysAdmin Methods
|
||||
sysAdminPaginateUsers(data: SysAdminPaginateUsersParams): Promise<PaginateUsersResults>;
|
||||
sysAdminUpdateProfile(data: SysAdminUpdateProfileParams): Promise<void>;
|
||||
sysAdminSetVerifiedStatus(data: SysAdminSetVerifiedParams): Promise<void>;
|
||||
sysAdminDeleteUser(data: SysAdminDeleteUserParams): Promise<void>;
|
||||
sysAdminOrganizationsStatus(data: SysAdminOrganizationsStatusParams): Promise<SysAdminUserOrganizationsResult>;
|
||||
}
|
||||
Reference in New Issue
Block a user