From 0ff1daeaff31e7fc384d571e8f3eca94c32da84e Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sun, 30 May 2021 20:24:45 +0200 Subject: :sparkles: Relationship types --- src/models/Event.ts | 19 +++++++++++++++++-- src/models/User.ts | 13 +++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/models/Event.ts b/src/models/Event.ts index 635adc46..8c692be1 100644 --- a/src/models/Event.ts +++ b/src/models/Event.ts @@ -1,4 +1,4 @@ -import { ConnectedAccount, PublicUser, User, UserSettings } from "./User"; +import { ConnectedAccount, PublicUser, Relationship, User, UserSettings } from "./User"; import { DMChannel, Channel } from "./Channel"; import { Guild } from "./Guild"; import { Member, PublicMember, UserGuildSettings } from "./Member"; @@ -49,7 +49,7 @@ export interface ReadyEventData { user: PublicUser & { mobile: boolean; desktop: boolean; - email: string | null ; + email: string | null; flags: bigint; mfa_enabled: boolean; nsfw_allowed: boolean; @@ -431,6 +431,19 @@ export interface MessageAckEvent extends Event { }; } +export interface RelationshipAddEvent extends Event { + event: "RELATIONSHIP_ADD"; + data: Relationship & { + should_notify?: boolean; + user: PublicUser; + }; +} + +export interface RelationshipRemoveEvent extends Event { + event: "RELATIONSHIP_REMOVE"; + data: Omit; +} + // located in collection events export enum EVENTEnum { @@ -520,6 +533,8 @@ export type EVENT = | "APPLICATION_COMMAND_UPDATE" | "APPLICATION_COMMAND_DELETE" | "MESSAGE_ACK" + | "RELATIONSHIP_ADD" + | "RELATIONSHIP_REMOVE" | CUSTOMEVENTS; export type CUSTOMEVENTS = "INVALIDATED"; diff --git a/src/models/User.ts b/src/models/User.ts index 76922903..31f91a4b 100644 --- a/src/models/User.ts +++ b/src/models/User.ts @@ -80,8 +80,14 @@ export interface ConnectedAccount { export interface Relationship { id: string; nickname?: string; - type: number; - user_id: string; + type: RelationshipType; +} + +export enum RelationshipType { + outgoing = 4, + incoming = 3, + blocked = 2, + friends = 1, } export interface UserSettings { @@ -158,10 +164,9 @@ export const UserSchema = new Schema({ valid_tokens_since: Date, // all tokens with a previous issue date are invalid relationships: [ { - id: String, + id: { type: String, required: true }, nickname: String, type: { type: Number }, - user_id: String, }, ], connected_accounts: [ -- cgit 1.5.1