mirror of
https://github.com/stoatchat/javascript-client-sdk.git
synced 2026-07-19 17:13:31 -04:00
feat: add support for policy changes / ack
This commit is contained in:
+6
-1
@@ -27,7 +27,7 @@ import {
|
||||
EventClient,
|
||||
type EventClientOptions,
|
||||
} from "./events/EventClient.js";
|
||||
import { handleEvent } from "./events/v1.js";
|
||||
import { ProtocolV1, handleEvent } from "./events/v1.js";
|
||||
import type { HydratedChannel } from "./hydration/channel.js";
|
||||
import type { HydratedEmoji } from "./hydration/emoji.js";
|
||||
import type { HydratedMessage } from "./hydration/message.js";
|
||||
@@ -51,6 +51,11 @@ export type Events = {
|
||||
ready: [];
|
||||
logout: [];
|
||||
|
||||
policyChanges: [
|
||||
policyChanges: (ProtocolV1["server"] & { type: "Ready" })["policy_changes"],
|
||||
acknowledge: () => Promise<void>,
|
||||
];
|
||||
|
||||
messageCreate: [message: Message];
|
||||
messageUpdate: [message: Message, previousMessage: HydratedMessage];
|
||||
messageDelete: [message: HydratedMessage];
|
||||
|
||||
@@ -180,6 +180,12 @@ type ReadyData = {
|
||||
channels: Channel[];
|
||||
members: Member[];
|
||||
emojis: Emoji[];
|
||||
policy_changes: {
|
||||
created_time: string;
|
||||
effective_time: string;
|
||||
description: string;
|
||||
url: string;
|
||||
}[];
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -238,6 +244,12 @@ export async function handleEvent(
|
||||
setReady(true);
|
||||
client.emit("ready");
|
||||
|
||||
if (event.policy_changes.length) {
|
||||
client.emit("policyChanges", event.policy_changes, async () =>
|
||||
client.api.post("/policy/acknowledge"),
|
||||
);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "Message": {
|
||||
|
||||
Reference in New Issue
Block a user