diff --git a/assets/openapi.json b/assets/openapi.json index d1796bbde..7132ad932 100644 Binary files a/assets/openapi.json and b/assets/openapi.json differ diff --git a/assets/schemas.json b/assets/schemas.json index 682c7bb5e..24c016c24 100644 Binary files a/assets/schemas.json and b/assets/schemas.json differ diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts index 8b028f431..1fe6d0ee1 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts @@ -176,9 +176,8 @@ router.get( x.author = User.create({ id: "4", discriminator: pomeloEnabled ? "0" : "0000", - username: "Spacebar Ghost", - global_name: "spacebarghost", - display_name: "Spacebar Ghost", + username: "spacebarghost", + global_name: "Spacebar Ghost", public_flags: 0, }); x.attachments?.forEach((y: Attachment) => { diff --git a/src/api/routes/guilds/#guild_id/bans.ts b/src/api/routes/guilds/#guild_id/bans.ts index ede9f4bde..87fcc7f17 100644 --- a/src/api/routes/guilds/#guild_id/bans.ts +++ b/src/api/routes/guilds/#guild_id/bans.ts @@ -71,7 +71,6 @@ router.get( username: user.username, discriminator: user.discriminator, global_name: user.global_name, - display_name: user.display_name, id: user.id, avatar: user.avatar, public_flags: user.public_flags, diff --git a/src/api/routes/guilds/#guild_id/messages/search.ts b/src/api/routes/guilds/#guild_id/messages/search.ts index bf5fc4cd4..158c83f31 100644 --- a/src/api/routes/guilds/#guild_id/messages/search.ts +++ b/src/api/routes/guilds/#guild_id/messages/search.ts @@ -150,7 +150,6 @@ router.get( avatar_decoration: null, discriminator: x.author?.discriminator, global_name: x.author?.global_name, - display_name: x.author?.display_name, public_flags: x.author?.public_flags, }, attachments: x.attachments, diff --git a/src/api/routes/oauth2/authorize.ts b/src/api/routes/oauth2/authorize.ts index 11255b98f..b7d1cb71b 100644 --- a/src/api/routes/oauth2/authorize.ts +++ b/src/api/routes/oauth2/authorize.ts @@ -90,7 +90,6 @@ router.get( "avatar", "discriminator", "global_name", - "display_name", "public_flags", ], }); @@ -140,7 +139,6 @@ router.get( avatar_decoration: null, // TODO discriminator: user.discriminator, global_name: user.global_name, - display_name: user.display_name, public_flags: user.public_flags, }, application: { @@ -164,7 +162,6 @@ router.get( avatar_decoration: null, // TODO discriminator: bot.discriminator, global_name: bot.global_name, - display_name: bot.display_name, public_flags: bot.public_flags, bot: true, approximated_guild_count: 0, // TODO diff --git a/src/api/routes/users/#id/relationships.ts b/src/api/routes/users/#id/relationships.ts index 0008e75d0..323ce44b5 100644 --- a/src/api/routes/users/#id/relationships.ts +++ b/src/api/routes/users/#id/relationships.ts @@ -59,7 +59,6 @@ router.get( avatar: relation_user.avatar, discriminator: relation_user.discriminator, global_name: relation_user.global_name, - display_name: relation_user.display_name, public_flags: relation_user.public_flags, }); } diff --git a/src/connections/Discord/index.ts b/src/connections/Discord/index.ts index 206aa6719..a88a38ce2 100644 --- a/src/connections/Discord/index.ts +++ b/src/connections/Discord/index.ts @@ -17,6 +17,7 @@ */ import { + Config, ConnectedAccount, ConnectedAccountCommonOAuthTokenResponse, Connection, @@ -31,8 +32,7 @@ interface UserResponse { id: string; username: string; discriminator: string; - global_name: string; - display_name?: string; + global_name: string | null; avatar_url: string | null; } @@ -130,12 +130,14 @@ export default class DiscordConnection extends Connection { if (exists) return null; - // TODO: pomelo + const { pomeloEnabled } = Config.get().general; return await this.createConnection({ user_id: userId, external_id: userInfo.id, friend_sync: params.friend_sync, - name: `${userInfo.username}#${userInfo.discriminator}`, + name: pomeloEnabled + ? userInfo.username + : `${userInfo.username}#${userInfo.discriminator}`, type: this.id, }); } diff --git a/src/util/dtos/UserDTO.ts b/src/util/dtos/UserDTO.ts index 5687bcefb..063490fa4 100644 --- a/src/util/dtos/UserDTO.ts +++ b/src/util/dtos/UserDTO.ts @@ -21,8 +21,7 @@ import { User } from "../entities"; export class MinimalPublicUserDTO { id: string; username: string; - global_name: string; - display_name?: string; + global_name: string | null = null; discriminator: string; public_flags: number; avatar?: string | null; @@ -30,10 +29,10 @@ export class MinimalPublicUserDTO { constructor(user: User) { this.id = user.id; this.username = user.username; - this.global_name = user.global_name; - this.display_name = user.display_name; this.discriminator = user.discriminator; this.public_flags = user.public_flags; this.avatar = user.avatar; + + if (user.global_name) this.global_name = user.global_name; } } diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index 85dc56ee2..c1a05e516 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -38,7 +38,6 @@ import { UserSettings } from "./UserSettings"; export enum PublicUserEnum { username, global_name, - display_name, discriminator, id, public_flags, @@ -93,10 +92,7 @@ export class User extends BaseClass { username: string; // username max length 32, min 2 (should be configurable) @Column({ nullable: true }) - global_name: string; // puyo: pomelo - - @Column({ nullable: true }) - display_name?: string; // puyo: pomelo + global_name?: string; // puyo: pomelo @Column() discriminator: string; // opaque string: 4 digits on discord.com, 0 for pomelo @@ -388,8 +384,6 @@ export class User extends BaseClass { const user = User.create({ username: username, - global_name: username, // TODO: convert to lowercase, strip special characters,etc??? - // display_name: username, // TODO: how should we do this? discriminator, id: id || Snowflake.generate(), email: email, diff --git a/src/util/schemas/responses/GuildBansResponse.ts b/src/util/schemas/responses/GuildBansResponse.ts index aa53105d2..0505327a5 100644 --- a/src/util/schemas/responses/GuildBansResponse.ts +++ b/src/util/schemas/responses/GuildBansResponse.ts @@ -21,8 +21,7 @@ export interface GuildBansResponse { user: { username: string; discriminator: string; - global_name: string; - display_name: string | null; + global_name?: string; id: string; avatar: string | null; public_flags: number; diff --git a/src/util/schemas/responses/GuildWidgetJsonResponse.ts b/src/util/schemas/responses/GuildWidgetJsonResponse.ts index 60e8e7cc7..320f14dde 100644 --- a/src/util/schemas/responses/GuildWidgetJsonResponse.ts +++ b/src/util/schemas/responses/GuildWidgetJsonResponse.ts @@ -30,8 +30,7 @@ export interface GuildWidgetJsonResponse { members: { id: string; username: string; - global_name: string; - display_name: string | null; + global_name: string | null; discriminator: string; avatar: string | null; status: ClientStatus; diff --git a/src/util/schemas/responses/UserRelationsResponse.ts b/src/util/schemas/responses/UserRelationsResponse.ts index 59db277f6..586c8fac9 100644 --- a/src/util/schemas/responses/UserRelationsResponse.ts +++ b/src/util/schemas/responses/UserRelationsResponse.ts @@ -20,7 +20,6 @@ import { User } from "@spacebar/util"; export type UserRelationsResponse = (Pick & Pick & Pick & - Pick & Pick & Pick & Pick)[]; diff --git a/src/util/util/email/index.ts b/src/util/util/email/index.ts index 6d34e2349..b7df5cb94 100644 --- a/src/util/util/email/index.ts +++ b/src/util/util/email/index.ts @@ -112,12 +112,10 @@ export const Email: { ) { const { instanceName } = Config.get().general; - // TODO: pomelo: display_name should take precedence over username if pomelo is enabled. maybe we should use global_name as the username? const replacements = [ ["{instanceName}", instanceName], ["{userUsername}", user.username], ["{userGlobalName}", user.global_name], - ["{userDisplayName}", user.display_name], ["{userDiscriminator}", user.discriminator], ["{userId}", user.id], ["{phoneNumber}", user.phone?.slice(-4)],