Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retrait du champs « Type » du model UserListEtablissement #658

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 13 additions & 14 deletions database/migrations/1736865415982-AjoutListEtEtsList.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { MigrationInterface, QueryRunner } from "typeorm"

export class AjoutListEtEtsList1736865415982 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
CREATE TABLE user_list (
list_id SERIAL PRIMARY KEY ,
ut_id uuid NOT NULL,
Expand All @@ -13,29 +13,28 @@ export class AjoutListEtEtsList1736865415982 implements MigrationInterface {
)
`);

await queryRunner.query(`
await queryRunner.query(`
CREATE TABLE user_list_etablissement (
list_id INT NOT NULL,
numero_finess VARCHAR(9) NOT NULL,
type_etablissement VARCHAR(255),
numero_finess VARCHAR(9) NOT NULL,
date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT user_list_etablissement_pk PRIMARY KEY (list_id, numero_finess)
)
`);
await queryRunner.query(`
await queryRunner.query(`
INSERT into user_list(ut_id, list_nom, is_favori)
select distinct user_id, 'Favoris', true from favori;
`);
await queryRunner.query(`
INSERT into user_list_etablissement(list_id, numero_finess, type_etablissement)
select list_id, finess_number as numero_finess, type as type_etablissement from favori
await queryRunner.query(`
INSERT into user_list_etablissement(list_id, numero_finess)
select list_id, finess_number as numero_finess from favori
left join user_list on user_list.ut_id = favori.user_id;
`);
}
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE user_list_etablissement`);
await queryRunner.query(`DROP TABLE user_list`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE user_list_etablissement`);
await queryRunner.query(`DROP TABLE user_list`);
}

}
5 changes: 1 addition & 4 deletions database/models/UserListEtablissementModel.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Entity, Column, ManyToOne, JoinColumn, PrimaryColumn, CreateDateColumn } from "typeorm";
import { CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";

import { UserListModel } from "./UserListModel";

Expand All @@ -10,9 +10,6 @@ export class UserListEtablissementModel {
@PrimaryColumn({ name: "numero_finess" })
public finessNumber!: string;

@Column({ name: 'type_etablissement' })
public typeEtablissement!: string;

@CreateDateColumn({ name: "date_creation" })
public dateCreation!: Date;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,28 +92,25 @@ describe("La recherche des etablissements dans une liste", () => {
const userListEtablissementLoader = new TypeOrmUserListEtablissementLoader(orm);

const finess = "finess";
const typeEtablissement = "type";

// WHEN
await userListEtablissementLoader.create(userUuid, listId, finess, typeEtablissement);
await userListEtablissementLoader.create(userUuid, listId, finess);

// THEN
const list = await userListRepository.findOneByOrFail({ id: listId });
expect(list).not.toBeNull();
expect(list?.userListEtablissements).toHaveLength(1);
expect(list?.userListEtablissements[0].finessNumber).toEqual(finess);
expect(list?.userListEtablissements[0].typeEtablissement).toEqual(typeEtablissement);
});

it("n’ajoute pas un etablissement à une liste d’un autre utilisateur", async () => {
// GIVEN
const userListEtablissementLoader = new TypeOrmUserListEtablissementLoader(orm);

const finess = "finess";
const typeEtablissement = "type";

// WHEN
await userListEtablissementLoader.create(otherUserUuid, listId, finess, typeEtablissement);
await userListEtablissementLoader.create(otherUserUuid, listId, finess);

// THEN
const list = await userListRepository.findOneByOrFail({ id: listId });
Expand All @@ -130,8 +127,7 @@ describe("La recherche des etablissements dans une liste", () => {
const userListEtablissement = new UserListEtablissementModel();
userListEtablissement.listId = listId;
userListEtablissement.finessNumber = finess;
userListEtablissement.typeEtablissement = "type";


await userListEtablissementRepository.save(userListEtablissement);
let list = await userListRepository.findOneByOrFail({ id: listId });
expect(list).not.toBeNull();
Expand All @@ -155,8 +151,7 @@ describe("La recherche des etablissements dans une liste", () => {
const userListEtablissement = new UserListEtablissementModel();
userListEtablissement.listId = listId;
userListEtablissement.finessNumber = finess;
userListEtablissement.typeEtablissement = "type";


await userListEtablissementRepository.save(userListEtablissement);
let list = await userListRepository.findOneByOrFail({ id: listId });
expect(list).not.toBeNull();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,10 @@ import { UserListEtablissementLoader } from "../../../métier/gateways/UserListE
export class TypeOrmUserListEtablissementLoader implements UserListEtablissementLoader {
constructor(private readonly orm: Promise<DataSource>) { }

async create(userId: string, listId: number, finessNumber: string, typeEtablissement: string): Promise<void> {
async create(userId: string, listId: number, finessNumber: string): Promise<void> {
const userListEtablissementModel = new UserListEtablissementModel();
userListEtablissementModel.listId = listId;
userListEtablissementModel.finessNumber = finessNumber;
userListEtablissementModel.typeEtablissement = typeEtablissement;

const countList = await (await this.orm).getRepository(UserListModel).countBy({ id: listId, userId: userId });

Expand Down
Loading