mirror of
https://github.com/spacebarchat/server.git
synced 2026-07-20 20:00:55 +00:00
Replace APIRole with schema
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -119,7 +119,7 @@ router.patch(
|
||||
permission: "MANAGE_ROLES",
|
||||
responses: {
|
||||
200: {
|
||||
body: "APIRoleArray",
|
||||
body: "RoleListResponse",
|
||||
},
|
||||
400: {
|
||||
body: "APIErrorResponse",
|
||||
|
||||
@@ -1,3 +1,44 @@
|
||||
/*
|
||||
Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
|
||||
Copyright (C) 2026 Spacebar and Spacebar Contributors
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Snowflake } from "../../Identifiers";
|
||||
|
||||
export interface RoleResponse {
|
||||
id: Snowflake;
|
||||
name: string;
|
||||
description: string | null;
|
||||
// @deprecated
|
||||
color: number;
|
||||
colors: RoleColors;
|
||||
hoist: boolean;
|
||||
icon?: string | null;
|
||||
unicode_emoji?: string | null;
|
||||
position: number;
|
||||
// @format number
|
||||
permissions: string;
|
||||
managed: boolean;
|
||||
mentionable: boolean;
|
||||
flags?: number;
|
||||
tags?: RoleTags; // unused currently
|
||||
}
|
||||
|
||||
export type RoleListResponse = RoleResponse[];
|
||||
|
||||
export class RoleColors {
|
||||
primary_color: number;
|
||||
secondary_color: number | undefined; // only used for "holographic" and "gradient" styles
|
||||
@@ -11,3 +52,23 @@ export class RoleColors {
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export class RoleTags {
|
||||
bot_id?: Snowflake;
|
||||
integration_id?: Snowflake;
|
||||
subscription_listing_id?: Snowflake;
|
||||
// ??? https://github.com/discord-userdoccers/discord-userdoccers/issues/576 - in other words, types are currently unknown
|
||||
premium_subscriber?: boolean | null;
|
||||
available_for_purchase?: boolean | null;
|
||||
guild_connections?: boolean | null;
|
||||
|
||||
toJSON(): RoleTags {
|
||||
return {
|
||||
...this,
|
||||
// "forward compatibility"
|
||||
premium_subscriber: this.premium_subscriber ? null : undefined,
|
||||
available_for_purchase: this.available_for_purchase ? null : undefined,
|
||||
guild_connections: this.subscription_listing_id ? null : undefined,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
import { GeneralConfiguration, LimitsConfiguration } from "../../util/config/types";
|
||||
import { DmChannelDTO } from "../../util/dtos";
|
||||
// TODO: remove entity imports
|
||||
import { Application, BackupCode, Categories, Channel, Guild, Invite, Member, Message, Role, Template, Webhook } from "@spacebar/database";
|
||||
import { GuildVoiceRegion } from "./GuildVoiceRegionsResponse";
|
||||
import { Application, BackupCode, Categories, Channel, Guild, Invite, Member, Message, Template, Webhook } from "@spacebar/database";
|
||||
import { GuildCreateResponse, PrivateUser, PublicMember, PublicUser } from "@spacebar/schemas";
|
||||
|
||||
// TODO: remove this entire file!
|
||||
@@ -54,7 +53,6 @@ export interface APIGuildWithJoinedAt extends GuildCreateResponse {
|
||||
joined_at: string;
|
||||
}
|
||||
|
||||
export type APIRoleArray = Role[];
|
||||
export type APITemplateArray = Template[];
|
||||
export type APILimitsConfiguration = LimitsConfiguration;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user