Skip to content

Commit

Permalink
fix: ajout d'un 'super' dans les objets TypeOrm suite mise à jour
Browse files Browse the repository at this point in the history
  • Loading branch information
pYassine committed Aug 21, 2021
1 parent 4610626 commit 02fe5c7
Show file tree
Hide file tree
Showing 25 changed files with 230 additions and 165 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ import { AppEntity, InteractionEvent } from "..";
import { InteractionType } from "./InteractionType.type";

export type Interactions = AppEntity & {
id?: number;
createdAt?: Date;
content?: string;
dateInteraction: Date;
nbCourrier: number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { AppUserCreatedBy } from "../app-user/AppUserCreatedBy.type";
import { AppEntity } from "../_core/AppEntity.type";

export type StructureDoc = AppEntity & {
createdAt?: Date;
createdBy: AppUserCreatedBy;
tags: any;
label: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { StructureType } from "../structure/StructureType.type";
import { AppEntity } from "../_core/AppEntity.type";

export type StructureStats = AppEntity & {
createdAt?: Date;
date: Date;
nom: string;
structureId: number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export class CreateDatabase1603812391580 implements MigrationInterface {
"createdAt" timestamptz NOT NULL DEFAULT now(),
"updatedAt" timestamptz NOT NULL DEFAULT now(),
"version" int4 NOT NULL,
id serial NOT NULL,
"dateInteraction" timestamptz NOT NULL,
"nbCourrier" int4 NOT NULL,
"structureId" int4 NOT NULL,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,21 @@ export class copyDataToDatabase1603812391581 implements MigrationInterface {
appLogger.warn("> interactions");
await queryRunner.query(
`
INSERT INTO public.interactions VALUES ('4fc32424-3f6e-48c7-9ef1-02b9db388445', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 5, '2020-11-01 18:47:00.286', 3, 1, 'recommandeIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('44ba43d0-ab44-4449-a6e1-40cbcbc92adc', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 6, '2020-11-01 18:47:03.303', 4, 1, 'colisIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('b174770d-dfb4-45ea-bf5c-58f1288ff6dd', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 7, '2020-11-01 18:47:06.168', 1, 1, 'courrierIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('086a249e-67ea-462c-bb84-4aac5bf0b854', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 1, '2020-11-01 18:41:28.157', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('f5200bf7-4ec7-4331-b931-fe36df84014a', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 2, '2020-11-01 18:46:51.913', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('656aa50a-0a2c-4fe3-a312-8b694aa5f9ec', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 3, '2020-11-01 18:46:53.24', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('05706b0a-4434-4e90-8288-b58f2fe17c33', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1, 4, '2020-11-01 18:46:54.143', 0, 1, 'visite', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('b68794a5-1d02-48ca-9cc7-8b43b4a4bbf0', '2021-06-28 13:25:28.404973+00', '2021-06-28 13:25:28.404973+00', 1, 8, '2021-06-28 15:25:28.404', 2, 1, 'courrierIn', 7, 1, 'Patrick Roméro', '', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('fb8dde95-b421-4cf0-b205-9e940d9641e5', '2021-06-28 13:25:28.512802+00', '2021-06-28 13:25:28.512802+00', 1, 9, '2021-06-28 15:25:28.512', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', '', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('0a0dbf1d-055f-47db-b2ae-013c611033e8', '2021-06-28 13:25:33.70286+00', '2021-06-28 13:25:33.70286+00', 1, 10, '2021-06-28 15:25:33.702', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('f3b49608-cb17-4fdb-b793-8da431cd6ffe', '2021-06-28 13:25:35.998265+00', '2021-06-28 13:25:35.998265+00', 1, 11, '2021-06-28 15:25:35.997', 2, 1, 'courrierOut', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('53a50f2d-c906-421e-be21-8857dfca97fc', '2021-06-28 13:25:36.005054+00', '2021-06-28 13:25:36.005054+00', 1, 12, '2021-06-28 15:25:36.004', 2, 1, 'colisOut', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('7d27aea0-d9ae-4529-b1ee-e40a4eadf1ab', '2021-06-28 13:25:37.471534+00', '2021-06-28 13:25:37.471534+00', 1, 13, '2021-06-28 15:25:37.47', 1, 1, 'courrierIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('212f8184-972a-4cb3-ae83-d1738659cbf9', '2021-06-28 13:25:45.842905+00', '2021-06-28 13:25:45.842905+00', 1, 14, '2021-06-28 15:25:45.842', 1, 1, 'courrierIn', 7, 1, 'Patrick Roméro', 'Courrier très important', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('8abd81e6-403f-49f3-999a-0ead3e6456c5', '2021-06-28 13:25:51.252592+00', '2021-06-28 13:25:51.252592+00', 1, 15, '2021-06-28 15:25:51.252', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('4fc32424-3f6e-48c7-9ef1-02b9db388445', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:47:00.286', 3, 1, 'recommandeIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('44ba43d0-ab44-4449-a6e1-40cbcbc92adc', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:47:03.303', 4, 1, 'colisIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('b174770d-dfb4-45ea-bf5c-58f1288ff6dd', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:47:06.168', 1, 1, 'courrierIn', 1, 1, 'Patrick Roméro', '', '860ffa4c-88c4-4e1c-ad42-5a05cdf39830', 'create', NULL);
INSERT INTO public.interactions VALUES ('086a249e-67ea-462c-bb84-4aac5bf0b854', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:41:28.157', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('f5200bf7-4ec7-4331-b931-fe36df84014a', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:46:51.913', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('656aa50a-0a2c-4fe3-a312-8b694aa5f9ec', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:46:53.24', 1, 1, 'courrierIn', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('05706b0a-4434-4e90-8288-b58f2fe17c33', '2020-11-18 11:01:52.072912+00', '2020-11-18 11:01:52.072912+00', 1,'2020-11-01 18:46:54.143', 0, 1, 'visite', 2, 1, 'Patrick Roméro', '', '97b7e840-0e93-4bf4-ba7d-0a406aa898f2', 'create', NULL);
INSERT INTO public.interactions VALUES ('b68794a5-1d02-48ca-9cc7-8b43b4a4bbf0', '2021-06-28 13:25:28.404973+00', '2021-06-28 13:25:28.404973+00', 1,'2021-06-28 15:25:28.404', 2, 1, 'courrierIn', 7, 1, 'Patrick Roméro', '', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('fb8dde95-b421-4cf0-b205-9e940d9641e5', '2021-06-28 13:25:28.512802+00', '2021-06-28 13:25:28.512802+00', 1,'2021-06-28 15:25:28.512', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', '', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('0a0dbf1d-055f-47db-b2ae-013c611033e8', '2021-06-28 13:25:33.70286+00', '2021-06-28 13:25:33.70286+00', 1, '2021-06-28 15:25:33.702', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('f3b49608-cb17-4fdb-b793-8da431cd6ffe', '2021-06-28 13:25:35.998265+00', '2021-06-28 13:25:35.998265+00', 1, '2021-06-28 15:25:35.997', 2, 1, 'courrierOut', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('53a50f2d-c906-421e-be21-8857dfca97fc', '2021-06-28 13:25:36.005054+00', '2021-06-28 13:25:36.005054+00', 1, '2021-06-28 15:25:36.004', 2, 1, 'colisOut', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('7d27aea0-d9ae-4529-b1ee-e40a4eadf1ab', '2021-06-28 13:25:37.471534+00', '2021-06-28 13:25:37.471534+00', 1, '2021-06-28 15:25:37.47', 1, 1, 'courrierIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('212f8184-972a-4cb3-ae83-d1738659cbf9', '2021-06-28 13:25:45.842905+00', '2021-06-28 13:25:45.842905+00', 1, '2021-06-28 15:25:45.842', 1, 1, 'courrierIn', 7, 1, 'Patrick Roméro', 'Courrier très important', 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
INSERT INTO public.interactions VALUES ('8abd81e6-403f-49f3-999a-0ead3e6456c5', '2021-06-28 13:25:51.252592+00', '2021-06-28 13:25:51.252592+00', 1, '2021-06-28 15:25:51.252', 1, 1, 'colisIn', 7, 1, 'Patrick Roméro', NULL, 'b2c26e55-ab37-457d-b307-6fe161050a9b', 'create', NULL);
`
);

Expand Down
9 changes: 9 additions & 0 deletions packages/backend/src/auth/current-interaction.decorator.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Interactions } from "./../_common/model/interaction/Interactions.type";
import { createParamDecorator, ExecutionContext } from "@nestjs/common";

export const CurrentInteraction = createParamDecorator(
(data: unknown, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
return request.interaction as Interactions;
}
);
51 changes: 51 additions & 0 deletions packages/backend/src/auth/guards/interactions.guard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import {
CanActivate,
ExecutionContext,
HttpException,
HttpStatus,
Injectable,
} from "@nestjs/common";
import { interactionRepository } from "../../database";

import { appLogger } from "../../util";

@Injectable()
export class InteractionsGuard implements CanActivate {
constructor() {}

public async canActivate(context: ExecutionContext) {
const r = context.switchToHttp().getRequest();

// Récupération de l'UUID de l'interaction
const interactionUuid = r.params.interactionUuid;
const structureId = r.user.structureId;

if (interactionUuid === undefined || structureId === undefined) {
appLogger.warn(
`[InteractionsGuard] invalid interactionUuid "${interactionUuid}" or structureId "${structureId}" for user "${r.user._id}"`,
{ sentryBreadcrumb: true }
);
appLogger.error(
`[InteractionsGuard] invalid interactionUuid or structureId`
);
throw new HttpException("USAGER_NOT_FOUND", HttpStatus.BAD_REQUEST);
}

const interaction = await interactionRepository.findOne({
uuid: interactionUuid,
structureId,
});

if (!interaction || interaction === null) {
appLogger.warn(
`[InteractionsGuard] Interaction not found for interactionUuid "${interactionUuid}" for user "${r.user._id}" with role "${r.user.role}"`,
{ sentryBreadcrumb: true }
);
appLogger.error(`[InteractionsGuard] Interaction not found`);
throw new HttpException("USAGER_NOT_FOUND", HttpStatus.BAD_REQUEST);
}

r.interaction = interaction;
return r;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,20 @@ import {
} from "typeorm";
import { AppEntity } from "../../../_common/model";

export abstract class AppTypeormTable<T extends AppEntity>
implements AppEntity {
export class AppTypeormTable<T extends AppEntity> implements AppEntity {
@PrimaryGeneratedColumn("uuid")
uuid?: string;
public uuid?: string;

@CreateDateColumn({ type: "timestamptz" })
createdAt?: Date;
public createdAt?: Date;

@UpdateDateColumn({ type: "timestamptz" })
updatedAt?: Date;
public updatedAt?: Date;

@VersionColumn()
version?: number;
public version?: number;

constructor(entity?: Partial<T>) {
public constructor(entity?: Partial<T>) {
Object.assign(this, entity);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ import { AppTypeormTable } from "../_core/AppTypeormTable.typeorm";
@Entity({ name: "app_user" })
export class AppUserTable
extends AppTypeormTable<AppUserTable>
implements AppUser {
implements AppUser
{
mail: AppUserMails;

@Index()
Expand Down Expand Up @@ -69,4 +70,9 @@ export class AppUserTable
this.nom = titleCase(this.nom);
this.prenom = titleCase(this.prenom);
}

public constructor(entity?: any) {
super(entity);
Object.assign(this, entity);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
import {
Column,
Entity,
Index,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
} from "typeorm";
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
import {
InteractionEvent,
Interactions,
Expand All @@ -17,59 +10,61 @@ import { AppTypeormTable } from "../_core/AppTypeormTable.typeorm";
// https://typeorm.io/#/entities/column-types-for-postgres
@Entity({ name: "interactions" })
export class InteractionsTable
extends AppTypeormTable<Interactions>
extends AppTypeormTable<InteractionsTable>
implements Interactions
{
@PrimaryGeneratedColumn("increment")
id: number;

@Column({ type: "timestamptz" })
dateInteraction: Date;
public dateInteraction: Date;

@Column({ type: "integer" })
nbCourrier: number;
public nbCourrier: number;

@Index()
@Column({ type: "integer" })
structureId: number;
public structureId: number;

@ManyToOne(() => StructureTable, { lazy: true })
@JoinColumn({ name: "structureId", referencedColumnName: "id" })
structureFk?: Promise<StructureTable>;
public structureFk?: Promise<StructureTable>;

@Column({ type: "text" })
type: InteractionType;
public type: InteractionType;

@Index()
@Column({ type: "integer" })
usagerRef: number;
public usagerRef: number;

@Index()
@Column({ type: "text" })
usagerUUID: string;
public usagerUUID: string;

@ManyToOne(() => UsagerTable, { lazy: true })
@JoinColumn({ name: "usagerUUID", referencedColumnName: "uuid" })
usagerFk?: Promise<UsagerTable>;
public usagerFk?: Promise<UsagerTable>;

@Index()
@Column({ type: "integer", nullable: true }) // nullable if user is deleted
userId: number;
public userId: number;

// NOTE: pas de FK car les users peuvent être supprimés (si on ajoute la FK, il faudra rendre nullable les userId)
// @ManyToOne(() => AppUserTable, { lazy: true })
// @JoinColumn({ name: "userId", referencedColumnName: "id" })
// userFk?: Promise<AppUserTable>;

@Column({ type: "text" })
userName: string;
public userName: string;

@Column({ type: "text", nullable: true })
content: string;
public content: string;

@Column({ type: "text", default: "create" })
event: InteractionEvent;
public event: InteractionEvent;

@Column({ type: "jsonb", nullable: true })
previousValue?: Interactions; // if event === 'delete'
public previousValue?: Interactions; // if event === 'delete'

public constructor(entity?: Partial<InteractionsTable>) {
super(entity);
Object.assign(this, entity);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import { MessageEmailStatus } from "./MessageEmailStatus.type";
@Entity({ name: "message_email" })
export class MessageEmailTable<T = any>
extends AppTypeormTable<MessageEmailTable>
implements MessageEmail {
implements MessageEmail
{
@Column({ type: "text" })
status: MessageEmailStatus;
@Column({ type: "text" })
Expand All @@ -36,4 +37,8 @@ export class MessageEmailTable<T = any>

@Column({ type: "bytea", nullable: true })
public attachments: Bytea; // binary content, use hexEncoder to read/write

public constructor(entity?: any) {
super(entity);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ import { UsagerTable } from "./UsagerTable.typeorm";
@Unique(["structureId", "usagerRef"])
export class UsagerHistoryTable
extends AppTypeormTable<UsagerHistoryTable>
implements UsagerHistory {
implements UsagerHistory
{
@Index()
@Column({ type: "text", unique: true, update: false }) // unique par structure
public usagerUUID: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ export class UsagerTable

@Index()
@Column({ type: "integer" })
structureId: number;
public structureId: number;

@ManyToOne(() => StructureTable, { lazy: true })
@JoinColumn({ name: "structureId", referencedColumnName: "id" })
structureFk?: Promise<StructureTable>;
public structureFk?: Promise<StructureTable>;

// ETAT-CIVIL
@Column({ type: "text" })
Expand Down Expand Up @@ -137,4 +137,9 @@ export class UsagerTable
type: "jsonb",
})
public options: UsagerOptions;

public constructor(entity?: Partial<UsagerTable>) {
super(entity);
Object.assign(this, entity);
}
}
14 changes: 8 additions & 6 deletions packages/backend/src/interactions/interactions.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ import {
} from "@nestjs/common";
import { AuthGuard } from "@nestjs/passport";
import { ApiTags } from "@nestjs/swagger";
import { CurrentInteraction } from "../auth/current-interaction.decorator";
import { CurrentUsager } from "../auth/current-usager.decorator";
import { CurrentUser } from "../auth/current-user.decorator";
import { UsagerAccessGuard } from "../auth/guards/usager-access.guard";
import { interactionRepository } from "../database";
import { AppAuthUser, UsagerLight } from "../_common/model";
import { AppAuthUser, Interactions, UsagerLight } from "../_common/model";
import { InteractionDto } from "./interactions.dto";
import { interactionsCreator, InteractionsDeletor } from "./services";
import { InteractionsSmsManager } from "./services/InteractionsSmsManager.service";
Expand Down Expand Up @@ -73,16 +74,17 @@ export class InteractionsController {
});
}

@Delete(":usagerRef/:interactionId")
@Delete(":usagerRef/:interactionUuid")
public async deleteInteraction(
@Param("interactionId") interactionId: number,
@Param("interactionUuid") interactionUuid: string,
@CurrentUser() user: AppAuthUser,
@CurrentUsager() usager: UsagerLight
@CurrentUsager() usager: UsagerLight,
@CurrentInteraction() interaction: Interactions
) {
return this.interactionDeletor.deleteOrRestoreInteraction({
interactionId,
interaction,
user,
usagerRef: usager.ref,
usager,
structure: user.structure,
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ describe("InteractionsDeletor", () => {
{
const usagerAfterDelete =
await interactionsDeletor.deleteOrRestoreInteraction({
interactionId: interactionCreated.id,
usagerRef: usager.ref,
interaction: interactionCreated,
usager: usagerAfterCreate,
user,
structure,
});
Expand Down
Loading

0 comments on commit 02fe5c7

Please sign in to comment.