Merge pull request #482 from jdegand/eslint-backend-service

fix: better typing fake-db-service
This commit is contained in:
Laforge Thomas
2024-01-09 17:19:57 +01:00
committed by GitHub

View File

@@ -7,12 +7,14 @@ import { Injectable } from '@angular/core';
import { randNumber } from '@ngneat/falso';
import { ComponentStore } from '@ngrx/component-store';
@Injectable({ providedIn: 'root' })
export class FakeDBService extends ComponentStore<{
interface AppState {
teachers: Teacher[];
students: Student[];
schools: School[];
}> {
}
@Injectable({ providedIn: 'root' })
export class FakeDBService extends ComponentStore<AppState> {
readonly teachers$ = this.select((state) => state.teachers);
readonly randomTeacher$ = this.select(
this.teachers$,
@@ -35,33 +37,45 @@ export class FakeDBService extends ComponentStore<{
super({ teachers: [], students: [], schools: [] });
}
addTeacher = this.updater((state, teacher: Teacher) => ({
...state,
teachers: [...state.teachers, teacher],
}));
addTeacher = this.updater(
(state, teacher: Teacher): AppState => ({
...state,
teachers: [...state.teachers, teacher],
}),
);
updateTeacher = this.updater((state, teacher: Teacher) => ({
...state,
teachers: state.teachers.map((t) => (t.id === teacher.id ? teacher : t)),
}));
updateTeacher = this.updater(
(state, teacher: Teacher): AppState => ({
...state,
teachers: state.teachers.map((t) => (t.id === teacher.id ? teacher : t)),
}),
);
addStudent = this.updater((state, student: Student) => ({
...state,
students: [...state.students, student],
}));
addStudent = this.updater(
(state, student: Student): AppState => ({
...state,
students: [...state.students, student],
}),
);
updateSudent = this.updater((state, student: Student) => ({
...state,
students: state.students.map((t) => (t.id === student.id ? student : t)),
}));
updateSudent = this.updater(
(state, student: Student): AppState => ({
...state,
students: state.students.map((t) => (t.id === student.id ? student : t)),
}),
);
addSchool = this.updater((state, school: School) => ({
...state,
schools: [...state.schools, school],
}));
addSchool = this.updater(
(state, school: School): AppState => ({
...state,
schools: [...state.schools, school],
}),
);
updateSchool = this.updater((state, school: School) => ({
...state,
schools: state.schools.map((t) => (t.id === school.id ? school : t)),
}));
updateSchool = this.updater(
(state, school: School): AppState => ({
...state,
schools: state.schools.map((t) => (t.id === school.id ? school : t)),
}),
);
}