diff --git a/src/api/routes/applications/#id/bot/index.ts b/src/api/routes/applications/#id/bot/index.ts
new file mode 100644
index 00000000..5cae5215
--- /dev/null
+++ b/src/api/routes/applications/#id/bot/index.ts
@@ -0,0 +1,83 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+import { Application, Config, FieldErrors, generateToken, OrmUtils, Snowflake, trimSpecial, User, handleFile } from "@fosscord/util";
+import { HTTPError } from "lambert-server";
+import { verifyToken } from "node-2fa";
+
+const router: Router = Router();
+
+router.post("/", route({}), async (req: Request, res: Response) => {
+ const app = await Application.findOne({where: {id: req.params.id}});
+ if(!app) return res.status(404);
+ const username = trimSpecial(app.name);
+ const discriminator = await User.generateDiscriminator(username);
+ if (!discriminator) {
+ // We've failed to generate a valid and unused discriminator
+ throw FieldErrors({
+ username: {
+ code: "USERNAME_TOO_MANY_USERS",
+ message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"),
+ },
+ });
+ }
+
+ const user = OrmUtils.mergeDeep(new User(), {
+ created_at: new Date(),
+ username: username,
+ discriminator,
+ id: app.id,
+ bot: true,
+ system: false,
+ premium_since: null,
+ desktop: false,
+ mobile: false,
+ premium: false,
+ premium_type: 0,
+ bio: app.description,
+ mfa_enabled: true,
+ totp_secret: "",
+ totp_backup_codes: [],
+ verified: true,
+ disabled: false,
+ deleted: false,
+ email: null,
+ rights: Config.get().register.defaultRights,
+ nsfw_allowed: true,
+ public_flags: "0",
+ flags: "0",
+ data: {
+ hash: null,
+ valid_tokens_since: new Date(),
+ },
+ settings: {},
+ extended_settings: {},
+ fingerprints: [],
+ notes: {},
+ });
+ await user.save();
+ app.bot = user;
+ await app.save();
+ res.send().status(204)
+});
+
+router.post("/reset", route({}), async (req: Request, res: Response) => {
+ let bot = await User.findOne({where: {id: req.params.id}});
+ let owner = await User.findOne({where: {id: req.user_id}});
+ if(!bot) return res.status(404);
+ if(owner?.totp_secret && (!req.body.code || verifyToken(owner.totp_secret, req.body.code))) {
+ throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008);
+ }
+ bot.data = { hash: undefined, valid_tokens_since: new Date() };
+ await bot.save();
+ let token = await generateToken(bot.id);
+ res.json({token}).status(200);
+});
+
+router.patch("/", route({}), async (req: Request, res: Response) => {
+ if (req.body.avatar) req.body.avatar = await handleFile(`/avatars/${req.params.id}`, req.body.avatar as string);
+ let app = OrmUtils.mergeDeep(await User.findOne({where: {id: req.params.id}}), req.body);
+ await app.save();
+ res.json(app).status(200);
+});
+
+export default router;
\ No newline at end of file
diff --git a/src/api/routes/applications/#id/index.ts b/src/api/routes/applications/#id/index.ts
new file mode 100644
index 00000000..0aced582
--- /dev/null
+++ b/src/api/routes/applications/#id/index.ts
@@ -0,0 +1,30 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ let results = await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"] });
+ res.json(results).status(200);
+});
+
+router.patch("/", route({}), async (req: Request, res: Response) => {
+ delete req.body.icon;
+ let app = OrmUtils.mergeDeep(await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"]}), req.body);
+ if(app.bot) {
+ app.bot.bio = req.body.description
+ app.bot?.save();
+ }
+ if(req.body.tags) app.tags = req.body.tags;
+ await app.save();
+ res.json(app).status(200);
+});
+
+router.post("/delete", route({}), async (req: Request, res: Response) => {
+ await Application.delete(req.params.id);
+ res.send().status(200);
+});
+
+
+export default router;
\ No newline at end of file
diff --git a/src/api/routes/applications/#id/skus.ts b/src/api/routes/applications/#id/skus.ts
new file mode 100644
index 00000000..5b667f36
--- /dev/null
+++ b/src/api/routes/applications/#id/skus.ts
@@ -0,0 +1,11 @@
+import { Request, Response, Router } from "express";
+import { route } from "@fosscord/api";
+import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util";
+
+const router: Router = Router();
+
+router.get("/", route({}), async (req: Request, res: Response) => {
+ res.json([]).status(200);
+});
+
+export default router;
\ No newline at end of file
diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts
index 4f17ab70..d5dae7b0 100644
--- a/src/gateway/opcodes/Identify.ts
+++ b/src/gateway/opcodes/Identify.ts
@@ -108,7 +108,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
await user.settings.save();
}
- if (!identify.intents) identify.intents = "0x6ffffffff"
+ if (!identify.intents) identify.intents = "30064771071";
this.intents = new Intents(identify.intents);
if (identify.shard) {
this.shard_id = identify.shard[0];
@@ -238,7 +238,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
const d: ReadyEventData = {
v: 8,
- application: {id: application?.id??'', flags: application?.flags??''}, //TODO: check this code!
+ application: {id: application?.id??'', flags: application?.flags??0}, //TODO: check this code!
user: privateUser,
user_settings: user.settings,
// @ts-ignore
diff --git a/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts b/src/util/migrations/mariadb/1660130586602-updated-applications.ts
index 87d075e4..ec574416 100644
--- a/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts
+++ b/src/util/migrations/mariadb/1660130586602-updated-applications.ts
@@ -1,231 +1,184 @@
import { MigrationInterface, QueryRunner } from "typeorm";
-export class CodeCleanup31660258393551 implements MigrationInterface {
- name = 'CodeCleanup31660258393551'
+export class updatedApplications1660130586602 implements MigrationInterface {
+ name = 'updatedApplications1660130586602'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\`
- `);
- await queryRunner.query(`
- DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\`
- `);
- await queryRunner.query(`
- CREATE TABLE \`user_settings\` (
- \`id\` varchar(255) NOT NULL,
- \`afk_timeout\` int NULL,
- \`allow_accessibility_detection\` tinyint NULL,
- \`animate_emoji\` tinyint NULL,
- \`animate_stickers\` int NULL,
- \`contact_sync_enabled\` tinyint NULL,
- \`convert_emoticons\` tinyint NULL,
- \`custom_status\` text NULL,
- \`default_guilds_restricted\` tinyint NULL,
- \`detect_platform_accounts\` tinyint NULL,
- \`developer_mode\` tinyint NULL,
- \`disable_games_tab\` tinyint NULL,
- \`enable_tts_command\` tinyint NULL,
- \`explicit_content_filter\` int NULL,
- \`friend_source_flags\` text NULL,
- \`gateway_connected\` tinyint NULL,
- \`gif_auto_play\` tinyint NULL,
- \`guild_folders\` text NULL,
- \`guild_positions\` text NULL,
- \`inline_attachment_media\` tinyint NULL,
- \`inline_embed_media\` tinyint NULL,
- \`locale\` varchar(255) NULL,
- \`message_display_compact\` tinyint NULL,
- \`native_phone_integration_enabled\` tinyint NULL,
- \`render_embeds\` tinyint NULL,
- \`render_reactions\` tinyint NULL,
- \`restricted_guilds\` text NULL,
- \`show_current_game\` tinyint NULL,
- \`status\` varchar(255) NULL,
- \`stream_notifications_enabled\` tinyint NULL,
- \`theme\` varchar(255) NULL,
- \`timezone_offset\` int NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- ALTER TABLE \`users\` DROP COLUMN \`settings\`
+ ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`type\`
+ ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`hook\`
+ ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\`
+ ALTER TABLE \`applications\` DROP COLUMN \`slug\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\`
+ ALTER TABLE \`applications\` DROP COLUMN \`guild_id\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\`
+ ALTER TABLE \`applications\`
+ ADD \`type\` text NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`verification_state\`
+ ALTER TABLE \`applications\`
+ ADD \`hook\` tinyint NOT NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\`
+ ALTER TABLE \`applications\`
+ ADD \`redirect_uris\` text NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`integration_public\`
+ ALTER TABLE \`applications\`
+ ADD \`rpc_application_state\` int NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\`
+ ALTER TABLE \`applications\`
+ ADD \`store_application_state\` int NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\`
+ ALTER TABLE \`applications\`
+ ADD \`verification_state\` int NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\`
+ ALTER TABLE \`applications\`
+ ADD \`interactions_endpoint_url\` varchar(255) NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`tags\`
+ ALTER TABLE \`applications\`
+ ADD \`integration_public\` tinyint NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`install_params\`
+ ALTER TABLE \`applications\`
+ ADD \`integration_require_code_grant\` tinyint NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\`
+ ALTER TABLE \`applications\`
+ ADD \`discoverability_state\` int NULL
`);
await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD \`premium_progress_bar_enabled\` tinyint NULL
+ ALTER TABLE \`applications\`
+ ADD \`discovery_eligibility_flags\` int NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`rpc_origins\` text NULL
+ ADD \`tags\` text NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`primary_sku_id\` varchar(255) NULL
+ ADD \`install_params\` text NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`slug\` varchar(255) NULL
+ ADD \`bot_user_id\` varchar(255) NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`guild_id\` varchar(255) NULL
+ ADD UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` (\`bot_user_id\`)
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL
+ ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\` DROP COLUMN \`flags\`
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`flags\` varchar(255) NOT NULL
+ ADD \`flags\` int NOT NULL
+ `);
+ await queryRunner.query(`
+ CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`)
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
+ ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\`
+ ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\`
+ `);
+ await queryRunner.query(`
+ DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\`
`);
await queryRunner.query(`
ALTER TABLE \`applications\` DROP COLUMN \`flags\`
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`flags\` int NOT NULL
+ ADD \`flags\` varchar(255) NOT NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL
+ ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`guild_id\`
+ ALTER TABLE \`applications\` DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`slug\`
+ ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\`
+ ALTER TABLE \`applications\` DROP COLUMN \`install_params\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\`
+ ALTER TABLE \`applications\` DROP COLUMN \`tags\`
`);
await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\`
+ ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`bot_user_id\` varchar(255) NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`install_params\` text NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`tags\` text NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`integration_public\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`discovery_eligibility_flags\` int NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`discoverability_state\` int NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`verification_state\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`integration_require_code_grant\` tinyint NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`integration_public\` tinyint NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`interactions_endpoint_url\` varchar(255) NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`verification_state\` int NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`hook\`
`);
await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`store_application_state\` int NULL
+ ALTER TABLE \`applications\` DROP COLUMN \`type\`
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`rpc_application_state\` int NULL
+ ADD \`guild_id\` varchar(255) NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`redirect_uris\` text NULL
+ ADD \`slug\` varchar(255) NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`hook\` tinyint NOT NULL
+ ADD \`primary_sku_id\` varchar(255) NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD \`type\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`users\`
- ADD \`settings\` text NOT NULL
- `);
- await queryRunner.query(`
- DROP TABLE \`user_settings\`
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`)
+ ADD \`rpc_origins\` text NULL
`);
await queryRunner.query(`
ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
+ ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
`);
}
diff --git a/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts b/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts
new file mode 100644
index 00000000..ac445772
--- /dev/null
+++ b/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts
@@ -0,0 +1,18 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class appsNullableTeam1660131942703 implements MigrationInterface {
+ name = 'appsNullableTeam1660131942703'
+
+ public async up(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\`
+ `);
+ }
+
+ public async down(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ CREATE UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`)
+ `);
+ }
+
+}
diff --git a/src/util/migrations/postgres/1660130561959-updated-applications.ts b/src/util/migrations/postgres/1660130561959-updated-applications.ts
new file mode 100644
index 00000000..8fab54c7
--- /dev/null
+++ b/src/util/migrations/postgres/1660130561959-updated-applications.ts
@@ -0,0 +1,182 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class updatedApplications1660130561959 implements MigrationInterface {
+ name = 'updatedApplications1660130561959'
+
+ public async up(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "rpc_origins"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "primary_sku_id"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "slug"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "guild_id"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "type" text
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "hook" boolean NOT NULL
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "redirect_uris" text
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "rpc_application_state" integer
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "store_application_state" integer
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "verification_state" integer
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "interactions_endpoint_url" character varying
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "integration_public" boolean
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "integration_require_code_grant" boolean
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "discoverability_state" integer
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "discovery_eligibility_flags" integer
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "tags" text
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "install_params" text
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "bot_user_id" character varying
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" UNIQUE ("bot_user_id")
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ALTER COLUMN "description" DROP NOT NULL
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "flags"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "flags" integer NOT NULL
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ `);
+ }
+
+ public async down(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "flags"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "flags" character varying NOT NULL
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ALTER COLUMN "description"
+ SET NOT NULL
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "bot_user_id"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "install_params"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "tags"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "discovery_eligibility_flags"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "discoverability_state"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "integration_require_code_grant"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "integration_public"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "interactions_endpoint_url"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "verification_state"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "store_application_state"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "rpc_application_state"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "redirect_uris"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "hook"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications" DROP COLUMN "type"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "guild_id" character varying
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "slug" character varying
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "primary_sku_id" character varying
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD "rpc_origins" text
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ `);
+ }
+
+}
diff --git a/src/util/migrations/sqlite/1660130536131-updated-applications.ts b/src/util/migrations/sqlite/1660130536131-updated-applications.ts
new file mode 100644
index 00000000..b8cbcc33
--- /dev/null
+++ b/src/util/migrations/sqlite/1660130536131-updated-applications.ts
@@ -0,0 +1,829 @@
+import { MigrationInterface, QueryRunner } from "typeorm";
+
+export class updatedApplications1660130536131 implements MigrationInterface {
+ name = 'updatedApplications1660130536131'
+
+ public async up(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ CREATE TABLE "temporary_applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "rpc_origins" text,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "primary_sku_id" varchar,
+ "slug" varchar,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "guild_id" varchar,
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "temporary_applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "rpc_origins",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "primary_sku_id",
+ "slug",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "guild_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "rpc_origins",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "primary_sku_id",
+ "slug",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "guild_id"
+ FROM "applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "temporary_applications"
+ RENAME TO "applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "temporary_applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "temporary_applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ FROM "applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "temporary_applications"
+ RENAME TO "applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "temporary_applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "type" text,
+ "hook" boolean NOT NULL,
+ "redirect_uris" text,
+ "rpc_application_state" integer,
+ "store_application_state" integer,
+ "verification_state" integer,
+ "interactions_endpoint_url" varchar,
+ "integration_public" boolean,
+ "integration_require_code_grant" boolean,
+ "discoverability_state" integer,
+ "discovery_eligibility_flags" integer,
+ "tags" text,
+ "install_params" text,
+ "bot_user_id" varchar,
+ CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "temporary_applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ FROM "applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "temporary_applications"
+ RENAME TO "applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "temporary_applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" integer NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "type" text,
+ "hook" boolean NOT NULL,
+ "redirect_uris" text,
+ "rpc_application_state" integer,
+ "store_application_state" integer,
+ "verification_state" integer,
+ "interactions_endpoint_url" varchar,
+ "integration_public" boolean,
+ "integration_require_code_grant" boolean,
+ "discoverability_state" integer,
+ "discovery_eligibility_flags" integer,
+ "tags" text,
+ "install_params" text,
+ "bot_user_id" varchar,
+ CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "temporary_applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ FROM "applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "temporary_applications"
+ RENAME TO "applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "temporary_applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" integer NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "type" text,
+ "hook" boolean NOT NULL,
+ "redirect_uris" text,
+ "rpc_application_state" integer,
+ "store_application_state" integer,
+ "verification_state" integer,
+ "interactions_endpoint_url" varchar,
+ "integration_public" boolean,
+ "integration_require_code_grant" boolean,
+ "discoverability_state" integer,
+ "discovery_eligibility_flags" integer,
+ "tags" text,
+ "install_params" text,
+ "bot_user_id" varchar,
+ CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "temporary_applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ FROM "applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "temporary_applications"
+ RENAME TO "applications"
+ `);
+ }
+
+ public async down(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ RENAME TO "temporary_applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" integer NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "type" text,
+ "hook" boolean NOT NULL,
+ "redirect_uris" text,
+ "rpc_application_state" integer,
+ "store_application_state" integer,
+ "verification_state" integer,
+ "interactions_endpoint_url" varchar,
+ "integration_public" boolean,
+ "integration_require_code_grant" boolean,
+ "discoverability_state" integer,
+ "discovery_eligibility_flags" integer,
+ "tags" text,
+ "install_params" text,
+ "bot_user_id" varchar,
+ CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ FROM "temporary_applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "temporary_applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ RENAME TO "temporary_applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "type" text,
+ "hook" boolean NOT NULL,
+ "redirect_uris" text,
+ "rpc_application_state" integer,
+ "store_application_state" integer,
+ "verification_state" integer,
+ "interactions_endpoint_url" varchar,
+ "integration_public" boolean,
+ "integration_require_code_grant" boolean,
+ "discoverability_state" integer,
+ "discovery_eligibility_flags" integer,
+ "tags" text,
+ "install_params" text,
+ "bot_user_id" varchar,
+ CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "type",
+ "hook",
+ "redirect_uris",
+ "rpc_application_state",
+ "store_application_state",
+ "verification_state",
+ "interactions_endpoint_url",
+ "integration_public",
+ "integration_require_code_grant",
+ "discoverability_state",
+ "discovery_eligibility_flags",
+ "tags",
+ "install_params",
+ "bot_user_id"
+ FROM "temporary_applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "temporary_applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ RENAME TO "temporary_applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ FROM "temporary_applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "temporary_applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ RENAME TO "temporary_applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "rpc_origins" text,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "primary_sku_id" varchar,
+ "slug" varchar,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "guild_id" varchar,
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id"
+ FROM "temporary_applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "temporary_applications"
+ `);
+ await queryRunner.query(`
+ ALTER TABLE "applications"
+ RENAME TO "temporary_applications"
+ `);
+ await queryRunner.query(`
+ CREATE TABLE "applications" (
+ "id" varchar PRIMARY KEY NOT NULL,
+ "name" varchar NOT NULL,
+ "icon" varchar,
+ "description" varchar NOT NULL,
+ "rpc_origins" text,
+ "bot_public" boolean NOT NULL,
+ "bot_require_code_grant" boolean NOT NULL,
+ "terms_of_service_url" varchar,
+ "privacy_policy_url" varchar,
+ "summary" varchar,
+ "verify_key" varchar NOT NULL,
+ "primary_sku_id" varchar,
+ "slug" varchar,
+ "cover_image" varchar,
+ "flags" varchar NOT NULL,
+ "owner_id" varchar,
+ "team_id" varchar,
+ "guild_id" varchar,
+ CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
+ CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
+ CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
+ )
+ `);
+ await queryRunner.query(`
+ INSERT INTO "applications"(
+ "id",
+ "name",
+ "icon",
+ "description",
+ "rpc_origins",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "primary_sku_id",
+ "slug",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "guild_id"
+ )
+ SELECT "id",
+ "name",
+ "icon",
+ "description",
+ "rpc_origins",
+ "bot_public",
+ "bot_require_code_grant",
+ "terms_of_service_url",
+ "privacy_policy_url",
+ "summary",
+ "verify_key",
+ "primary_sku_id",
+ "slug",
+ "cover_image",
+ "flags",
+ "owner_id",
+ "team_id",
+ "guild_id"
+ FROM "temporary_applications"
+ `);
+ await queryRunner.query(`
+ DROP TABLE "temporary_applications"
+ `);
+ }
+
+}
|