From a6bacb146388d06885f951afea2449e4730cbc87 Mon Sep 17 00:00:00 2001 From: Rossb0b Date: Wed, 17 Jul 2024 19:12:01 +0200 Subject: [PATCH 1/3] feature(types/events): discussionRoom --- src/types/events.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/types/events.ts b/src/types/events.ts index 566bc5a9..e29daa0c 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -123,6 +123,25 @@ export interface CloudDocument { } } +export type PushNotificationScope = Scope & { + persPhysiqueId: number; +}; + +export type DiscussionRoomOperation = Operation[ + keyof Pick +]; + +export type DiscussionRoomScope = PushNotificationScope; + +export interface discussionRoom { + name: "room"; + scope: DiscussionRoomScope; + operation: DiscussionRoomOperation; + data: { + id: number; + } +} + export interface Events { accountingFolder: AccountingFolder; connector: Connector; From 9cf12b1cb32512931505a94ee9e99d8ef6a8f106 Mon Sep 17 00:00:00 2001 From: Rossb0b Date: Wed, 31 Jul 2024 16:32:08 +0200 Subject: [PATCH 2/3] feat(./types/event): ts & schema for discussion events --- src/schema/events/discussion/message.json | 24 ++++++++++++ src/schema/events/discussion/room.json | 34 +++++++++++++++++ .../events/discussion/unreadMessage.json | 24 ++++++++++++ src/schema/events/index.ts | 4 ++ src/types/events.ts | 37 ++++++++++++++++++- 5 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 src/schema/events/discussion/message.json create mode 100644 src/schema/events/discussion/room.json create mode 100644 src/schema/events/discussion/unreadMessage.json diff --git a/src/schema/events/discussion/message.json b/src/schema/events/discussion/message.json new file mode 100644 index 00000000..4732597b --- /dev/null +++ b/src/schema/events/discussion/message.json @@ -0,0 +1,24 @@ +{ + "discussion_message": { + "create": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + }, + "update": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + } + } +} diff --git a/src/schema/events/discussion/room.json b/src/schema/events/discussion/room.json new file mode 100644 index 00000000..16103bda --- /dev/null +++ b/src/schema/events/discussion/room.json @@ -0,0 +1,34 @@ +{ + "discussion_room": { + "create": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + }, + "update": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + }, + "delete": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + } + } +} diff --git a/src/schema/events/discussion/unreadMessage.json b/src/schema/events/discussion/unreadMessage.json new file mode 100644 index 00000000..1b9618f0 --- /dev/null +++ b/src/schema/events/discussion/unreadMessage.json @@ -0,0 +1,24 @@ +{ + "discussion_unread_message": { + "create": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + }, + "update": { + "type": "object", + "properties": { + "id": { + "type": "number" + } + }, + "required": ["id"], + "additionalProperties": false + } + } +} diff --git a/src/schema/events/index.ts b/src/schema/events/index.ts index 4e3a81ea..669dcf8e 100644 --- a/src/schema/events/index.ts +++ b/src/schema/events/index.ts @@ -7,3 +7,7 @@ export { adminMessage } from "./adminMessage.json"; export { thirdParty } from "./thirdParty.json"; export { accountingEntryLettering } from "./accountingEntryLettering.json"; export { cloudDocument } from "./cloudDocument.json"; + +export { discussion_room } from "./discussion/room.json"; +export { discussion_message } from "./discussion/message.json"; +export { discussion_unread_message } from "./discussion/unreadMessage.json"; diff --git a/src/types/events.ts b/src/types/events.ts index e29daa0c..41470721 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -133,8 +133,8 @@ export type DiscussionRoomOperation = Operation[ export type DiscussionRoomScope = PushNotificationScope; -export interface discussionRoom { - name: "room"; +export interface DiscussionRoom { + name: "discussion_room"; scope: DiscussionRoomScope; operation: DiscussionRoomOperation; data: { @@ -142,6 +142,36 @@ export interface discussionRoom { } } +export type DiscussionMessageOperation = Operation[ + keyof Pick +]; + +export type DiscussionMessageScope = PushNotificationScope; + +export interface DiscussionMessage { + name: "discussion_message"; + scope: DiscussionMessageScope; + operation: DiscussionMessageOperation; + data: { + id: number; + } +} + +export type DiscussionUnreadMessageOperation = Operation[ + keyof Pick +]; + +export type DiscussionUnreadMessageScope = PushNotificationScope; + +export interface DiscussionUnreadMessage { + name: "discussion_unread_message"; + scope: DiscussionUnreadMessageScope; + operation: DiscussionUnreadMessageOperation; + data: { + id: number; + } +} + export interface Events { accountingFolder: AccountingFolder; connector: Connector; @@ -152,4 +182,7 @@ export interface Events { thirdParty: ThirdParty; accountingEntryLettering: AccountingEntryLettering; cloudDocument: CloudDocument; + discussionRoom: DiscussionRoom; + discussionMessage: DiscussionMessage; + discussionUnreadMessage: DiscussionUnreadMessage; } From 5e78a1d7590f12d53a5b3faca902bde84415e563 Mon Sep 17 00:00:00 2001 From: Rossb0b Date: Mon, 5 Aug 2024 05:13:57 +0200 Subject: [PATCH 3/3] refactor(./types/events): removed operation types, discussionUnreadMessage event, enhanced DiscussionRoom event --- src/schema/events/discussion/room.json | 36 +++++++++++++++++-- .../events/discussion/unreadMessage.json | 24 ------------- src/schema/events/index.ts | 1 - src/types/events.ts | 36 ++++++------------- 4 files changed, 44 insertions(+), 53 deletions(-) delete mode 100644 src/schema/events/discussion/unreadMessage.json diff --git a/src/schema/events/discussion/room.json b/src/schema/events/discussion/room.json index 16103bda..a6d60927 100644 --- a/src/schema/events/discussion/room.json +++ b/src/schema/events/discussion/room.json @@ -5,9 +5,21 @@ "properties": { "id": { "type": "number" + }, + "folderId": { + "type": "number" + }, + "roomTypeId": { + "type": "number" + }, + "memberIds": { + "type": "array", + "items": { + "type": "number" + } } }, - "required": ["id"], + "required": ["id", "folderId", "roomTypeId"], "additionalProperties": false }, "update": { @@ -15,9 +27,21 @@ "properties": { "id": { "type": "number" + }, + "folderId": { + "type": "number" + }, + "roomTypeId": { + "type": "number" + }, + "memberIds": { + "type": "array", + "items": { + "type": "number" + } } }, - "required": ["id"], + "required": ["id", "folderId", "roomTypeId", "memberIds"], "additionalProperties": false }, "delete": { @@ -25,9 +49,15 @@ "properties": { "id": { "type": "number" + }, + "folderId": { + "type": "number" + }, + "roomTypeId": { + "type": "number" } }, - "required": ["id"], + "required": ["id", "folderId", "roomTypeId"], "additionalProperties": false } } diff --git a/src/schema/events/discussion/unreadMessage.json b/src/schema/events/discussion/unreadMessage.json deleted file mode 100644 index 1b9618f0..00000000 --- a/src/schema/events/discussion/unreadMessage.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "discussion_unread_message": { - "create": { - "type": "object", - "properties": { - "id": { - "type": "number" - } - }, - "required": ["id"], - "additionalProperties": false - }, - "update": { - "type": "object", - "properties": { - "id": { - "type": "number" - } - }, - "required": ["id"], - "additionalProperties": false - } - } -} diff --git a/src/schema/events/index.ts b/src/schema/events/index.ts index 669dcf8e..a96164f4 100644 --- a/src/schema/events/index.ts +++ b/src/schema/events/index.ts @@ -10,4 +10,3 @@ export { cloudDocument } from "./cloudDocument.json"; export { discussion_room } from "./discussion/room.json"; export { discussion_message } from "./discussion/message.json"; -export { discussion_unread_message } from "./discussion/unreadMessage.json"; diff --git a/src/types/events.ts b/src/types/events.ts index 41470721..a9144671 100644 --- a/src/types/events.ts +++ b/src/types/events.ts @@ -125,48 +125,35 @@ export interface CloudDocument { export type PushNotificationScope = Scope & { persPhysiqueId: number; + accountingFolderId: number; }; export type DiscussionRoomOperation = Operation[ keyof Pick ]; + export type DiscussionRoomScope = PushNotificationScope; -export interface DiscussionRoom { +export interface DiscussionRoom { name: "discussion_room"; scope: DiscussionRoomScope; - operation: DiscussionRoomOperation; - data: { + operation: T; + data: (T extends Operation[keyof Pick] ? { + memberIds: number[]; + } : unknown) & { id: number; - } + folderId: number; + roomTypeId: number; + }; } -export type DiscussionMessageOperation = Operation[ - keyof Pick -]; - export type DiscussionMessageScope = PushNotificationScope; export interface DiscussionMessage { name: "discussion_message"; scope: DiscussionMessageScope; - operation: DiscussionMessageOperation; - data: { - id: number; - } -} - -export type DiscussionUnreadMessageOperation = Operation[ - keyof Pick -]; - -export type DiscussionUnreadMessageScope = PushNotificationScope; - -export interface DiscussionUnreadMessage { - name: "discussion_unread_message"; - scope: DiscussionUnreadMessageScope; - operation: DiscussionUnreadMessageOperation; + operation: "CREATE" | "UPDATE"; data: { id: number; } @@ -184,5 +171,4 @@ export interface Events { cloudDocument: CloudDocument; discussionRoom: DiscussionRoom; discussionMessage: DiscussionMessage; - discussionUnreadMessage: DiscussionUnreadMessage; }