From 4f6e59e936dd9dfc10bebe7ac10dea8c0d96e6ec Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Wed, 10 Aug 2022 02:53:29 -0600 Subject: Add basic developer panel functionality - doesn't work yet > > > Co-authored-by: TheArcaneBrony --- util/src/entities/Application.ts | 114 +++++++++++++++++++++++++++------------ util/src/entities/User.ts | 2 +- 2 files changed, 81 insertions(+), 35 deletions(-) (limited to 'util/src/entities') diff --git a/util/src/entities/Application.ts b/util/src/entities/Application.ts index fab3d93f..28381579 100644 --- a/util/src/entities/Application.ts +++ b/util/src/entities/Application.ts @@ -1,4 +1,4 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm"; import { BaseClass } from "./BaseClass"; import { Guild } from "./Guild"; import { Team } from "./Team"; @@ -8,21 +8,77 @@ import { User } from "./User"; export class Application extends BaseClass { @Column() name: string; - + @Column({ nullable: true }) icon?: string; - - @Column() + + @Column({ nullable: true }) description: string; - - @Column({ type: "simple-array", nullable: true }) - rpc_origins?: string[]; - + + @Column({ nullable: true }) + summary: string = ""; + + @Column({ type: "simple-json", nullable: true }) + type?: any; + @Column() - bot_public: boolean; - + hook: boolean = true; + + @Column() + bot_public?: boolean = true; + + @Column() + bot_require_code_grant?: boolean = false; + @Column() - bot_require_code_grant: boolean; + verify_key: string; + + @JoinColumn({ name: "owner_id" }) + @ManyToOne(() => User) + owner: User; + + @Column() + flags: number = 0; + + @Column({ type: "simple-array", nullable: true }) + redirect_uris: string[] = []; + + @Column({ nullable: true }) + rpc_application_state: number = 0; + + @Column({ nullable: true }) + store_application_state: number = 1; + + @Column({ nullable: true }) + verification_state: number = 1; + + @Column({ nullable: true }) + interactions_endpoint_url?: string; + + @Column({ nullable: true }) + integration_public: boolean = true; + + @Column({ nullable: true }) + integration_require_code_grant: boolean = false; + + @Column({ nullable: true }) + discoverability_state: number = 1; + + @Column({ nullable: true }) + discovery_eligibility_flags: number = 2240; + + @JoinColumn({ name: "bot_user_id" }) + @OneToOne(() => User) + bot?: User; + + @Column({ type: "simple-array", nullable: true }) + tags?: string[]; + + @Column({ nullable: true }) + cover_image?: string; // the application's default rich presence invite cover image hash + + @Column({ type: "simple-json", nullable: true }) + install_params?: {scopes: string[], permissions: string}; @Column({ nullable: true }) terms_of_service_url?: string; @@ -30,15 +86,20 @@ export class Application extends BaseClass { @Column({ nullable: true }) privacy_policy_url?: string; - @JoinColumn({ name: "owner_id" }) - @ManyToOne(() => User) - owner?: User; + //just for us - @Column({ nullable: true }) - summary?: string; + //@Column({ type: "simple-array", nullable: true }) + //rpc_origins?: string[]; + + //@JoinColumn({ name: "guild_id" }) + //@ManyToOne(() => Guild) + //guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked - @Column() - verify_key: string; + //@Column({ nullable: true }) + //primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created, + + //@Column({ nullable: true }) + //slug?: string; // if this application is a game sold, this field will be the URL slug that links to the store page @JoinColumn({ name: "team_id" }) @ManyToOne(() => Team, { @@ -46,22 +107,7 @@ export class Application extends BaseClass { }) team?: Team; - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild) - guild: Guild; // if this application is a game sold, this field will be the guild to which it has been linked - - @Column({ nullable: true }) - primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created, - - @Column({ nullable: true }) - slug?: string; // if this application is a game sold, this field will be the URL slug that links to the store page - - @Column({ nullable: true }) - cover_image?: string; // the application's default rich presence invite cover image hash - - @Column() - flags: string; // the application's public flags -} + } export interface ApplicationCommand { id: string; diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts index 7e3c7457..a9f00b0d 100644 --- a/util/src/entities/User.ts +++ b/util/src/entities/User.ts @@ -194,7 +194,7 @@ export class User extends BaseClass { }); } - private static async generateDiscriminator(username: string): Promise { + public static async generateDiscriminator(username: string): Promise { if (Config.get().register.incrementingDiscriminators) { // discriminator will be incrementally generated -- cgit 1.5.1 From d20a42af18ff641f365bcee2069cb660cc6dbe35 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Wed, 10 Aug 2022 16:07:01 +0200 Subject: Make teams nullable --- api/src/routes/applications/index.ts | 3 +-- util/src/entities/Application.ts | 1 + .../mariadb/1660131942703-apps_nullable_team.ts | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts (limited to 'util/src/entities') diff --git a/api/src/routes/applications/index.ts b/api/src/routes/applications/index.ts index 41ce35b5..033dcc51 100644 --- a/api/src/routes/applications/index.ts +++ b/api/src/routes/applications/index.ts @@ -23,10 +23,9 @@ router.post("/", route({}), async (req: Request, res: Response) => { name: trimSpecial(body.name), description: "", bot_public: true, - bot_require_code_grant: false, owner: user, verify_key: "IMPLEMENTME", - flags: "" + flags: 0 }); await app.save(); res.json(app).status(200); diff --git a/util/src/entities/Application.ts b/util/src/entities/Application.ts index 28381579..103f8e84 100644 --- a/util/src/entities/Application.ts +++ b/util/src/entities/Application.ts @@ -104,6 +104,7 @@ export class Application extends BaseClass { @JoinColumn({ name: "team_id" }) @ManyToOne(() => Team, { onDelete: "CASCADE", + nullable: true }) team?: Team; diff --git a/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts b/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts new file mode 100644 index 00000000..ac445772 --- /dev/null +++ b/util/src/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 { + await queryRunner.query(` + DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) + `); + } + +} -- cgit 1.5.1 From 443c7d8a1ee81add4b549b00fc27fefe6e50279c Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Fri, 12 Aug 2022 23:28:12 -0600 Subject: Made nitro stuff make some sense --- api/src/routes/applications/#id/bot/index.ts | 8 ++++---- bundle/package.json | 2 +- util/src/entities/Member.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'util/src/entities') diff --git a/api/src/routes/applications/#id/bot/index.ts b/api/src/routes/applications/#id/bot/index.ts index a8a24d13..a51c9526 100644 --- a/api/src/routes/applications/#id/bot/index.ts +++ b/api/src/routes/applications/#id/bot/index.ts @@ -28,13 +28,13 @@ router.post("/", route({}), async (req: Request, res: Response) => { id: app.id, bot: true, system: false, - premium_since: new Date(), + premium_since: 0, desktop: false, mobile: false, - premium: true, - premium_type: 2, + premium: false, + premium_type: 0, bio: app.description, - mfa_enabled: false, + mfa_enabled: true, totp_secret: "", totp_backup_codes: [], verified: true, diff --git a/bundle/package.json b/bundle/package.json index 6adb569c..b67598b8 100644 --- a/bundle/package.json +++ b/bundle/package.json @@ -99,4 +99,4 @@ "typescript": "^4.1.2", "ws": "^8.8.1" } -} +} \ No newline at end of file diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts index d4395e03..baac58ed 100644 --- a/util/src/entities/Member.ts +++ b/util/src/entities/Member.ts @@ -257,7 +257,7 @@ export class Member extends BaseClassWithoutId { nick: undefined, roles: [guild_id], // @everyone role joined_at: new Date(), - premium_since: new Date(), + premium_since: null, deaf: false, mute: false, pending: false, -- cgit 1.5.1