You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mobile/api/service/stub/service.stub.user.tsx

168 lines
3.7 KiB

import { User } from "@/model/User";
import { IUserService } from "../interface/service.interface.user";
export class UserServiceStub implements IUserService {
private readonly users: User[] = [
new User({
name: "Alice",
age: 28,
height: 165,
weight: 58,
sexe: false,
logo: "alice.png",
nbSessionPerWeek: 3,
goal: "Perdre du poids",
healthProblems: [],
sport: "YOGA",
sleepLevel: "GOOD",
sportLevel: "BEGINNER",
email: "test@1.com",
password: "password1",
}),
new User({
email: "test@2.com",
password: "password2",
}),
new User({
name: "Charlie",
age: 22,
height: 172,
weight: 70,
sexe: true,
logo: "charlie.png",
nbSessionPerWeek: 2,
goal: "Se remettre en forme",
healthProblems: [],
sport: "BIKING",
sleepLevel: "GOOD",
sportLevel: "BEGINNER",
email: "test@3.com",
password: "password3",
}),
new User({
name: "Diana",
age: 31,
height: 160,
weight: 55,
sexe: false,
logo: "diana.png",
nbSessionPerWeek: 5,
goal: "Préparer un marathon",
healthProblems: [],
sport: "RUNNING",
sleepLevel: "GOOD",
sportLevel: "VERY_SPORTY",
email: "test@4.com",
password: "password4",
}),
new User({
name: "Ethan",
age: 40,
height: 180,
weight: 88,
sexe: true,
logo: "ethan.png",
nbSessionPerWeek: 1,
goal: "Maintenir sa forme",
healthProblems: ["MIGRAINE"],
sport: "WALKING",
sleepLevel: "BAD",
sportLevel: "SPORTY",
email: "test@5.com",
password: "password5",
}),
new User({
name: "Fiona",
age: 26,
height: 167,
weight: 62,
sexe: false,
logo: "fiona.png",
nbSessionPerWeek: 3,
goal: "Renforcer le dos",
healthProblems: ["MIGRAINE"],
sport: "FOOTBALL",
sleepLevel: "BAD",
sportLevel: "BEGINNER",
email: "test@6.com",
password: "password6",
}),
new User({
name: "George",
age: 30,
height: 185,
weight: 90,
sexe: true,
logo: "george.png",
nbSessionPerWeek: 4,
goal: "Perdre du gras",
healthProblems: [],
sport: "BIKING",
sleepLevel: "TERRIBLE",
sportLevel: "SPORTY",
email: "test@7.com",
password: "password7",
}),
new User({
name: "Hanna",
age: 24,
height: 158,
weight: 54,
sexe: false,
logo: "hanna.png",
nbSessionPerWeek: 2,
goal: "Se tonifier",
healthProblems: [],
sport: "HANDBALL",
sleepLevel: "GOOD",
sportLevel: "BEGINNER",
email: "test@8.com",
password: "password8",
}),
new User({
name: "Ivan",
age: 50,
height: 175,
weight: 95,
sexe: true,
logo: "ivan.png",
nbSessionPerWeek: 1,
goal: "Rééducation",
healthProblems: ["ARTHROSE"],
sport: "WALKING",
sleepLevel: "BAD",
sportLevel: "BEGINNER",
email: "test@9.com",
password: "password9",
}),
new User({
name: "Julia",
age: 29,
height: 170,
weight: 60,
sexe: false,
logo: "julia.png",
nbSessionPerWeek: 3,
goal: "Rester active",
healthProblems: [],
sport: "ELSE",
sleepLevel: "GOOD",
sportLevel: "SPORTY",
email: "test@10.com",
password: "password10",
}),
];
async login(email: string, password: string): Promise<User> {
const user = this.users.find(
(x) => x.email === email && x.password === password
);
if (!user) {
throw new Error("User not found.");
}
return user;
}
}