diff --git a/api/assets/schemas.json b/api/assets/schemas.json
index 4f1ab9a8..2ceaa923 100644
--- a/api/assets/schemas.json
+++ b/api/assets/schemas.json
@@ -2909,6 +2909,9 @@
}
}
},
+ "required": [
+ "image"
+ ],
"definitions": {
"ChannelPermissionOverwriteType": {
"enum": [
@@ -4744,7 +4747,7 @@
"type": "string"
},
"permissions": {
- "type": "bigint"
+ "type": "string"
},
"color": {
"type": "integer"
diff --git a/api/src/routes/guilds/#guild_id/roles.ts b/api/src/routes/guilds/#guild_id/roles.ts
index 0a57c6a2..b1875598 100644
--- a/api/src/routes/guilds/#guild_id/roles.ts
+++ b/api/src/routes/guilds/#guild_id/roles.ts
@@ -17,7 +17,7 @@ const router: Router = Router();
export interface RoleModifySchema {
name?: string;
- permissions?: bigint;
+ permissions?: string;
color?: number;
hoist?: boolean; // whether the role should be displayed separately in the sidebar
mentionable?: boolean; // whether the role should be mentionable
@@ -57,7 +57,7 @@ router.post("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" })
...body,
guild_id: guild_id,
managed: false,
- permissions: String(req.permission!.bitfield & (body.permissions || BigInt("0"))),
+ permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")),
tags: undefined
});
@@ -109,7 +109,7 @@ router.patch("/:role_id", route({ body: "RoleModifySchema", permission: "MANAGE_
...body,
id: role_id,
guild_id,
- permissions: String(req.permission!.bitfield & (body.permissions || BigInt("0")))
+ permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0"))
});
await Promise.all([
diff --git a/util/src/migrations/migrate_db_engine.ts b/util/src/migrations/migrate_db_engine.js
index 527e7b53..7b8b5784 100644
--- a/util/src/migrations/migrate_db_engine.ts
+++ b/util/src/migrations/migrate_db_engine.js
@@ -1,15 +1,14 @@
-import { config } from "dotenv";
+const { config } = require("dotenv");
config();
-import { BaseEntity, createConnection, EntityTarget } from "typeorm";
-import { initDatabase } from "../util/Database";
-import "missing-native-js-functions";
-import {
+const { createConnection } = require("typeorm");
+const { initDatabase } = require("../../dist/util/Database");
+require("missing-native-js-functions");
+const {
Application,
Attachment,
Ban,
Channel,
ConnectedAccount,
- defaultSettings,
Emoji,
Guild,
Invite,
@@ -26,7 +25,7 @@ import {
User,
VoiceState,
Webhook,
-} from "..";
+} = require("../../dist/entities/index");
async function main() {
if (!process.env.TO) throw new Error("TO database env connection string not set");
@@ -72,8 +71,7 @@ async function main() {
let i = 0;
try {
- for (const e of entities) {
- const entity = e as EntityTarget<any>;
+ for (const entity of entities) {
const entries = await oldDB.manager.find(entity);
// @ts-ignore
console.log("migrating " + entries.length + " " + entity.name + " ...");
@@ -81,47 +79,22 @@ async function main() {
for (const entry of entries) {
console.log(i++);
- if (entry instanceof User) {
- if (entry.bio == null) entry.bio = "";
- if (entry.rights == null) entry.rights = "0";
- if (entry.disabled == null) entry.disabled = false;
- if (entry.fingerprints == null) entry.fingerprints = [];
- if (entry.deleted == null) entry.deleted = false;
- if (entry.data == null) {
- entry.data = {
- valid_tokens_since: new Date(0),
- hash: undefined,
- };
- // @ts-ignore
- if (entry.user_data) {
- // TODO: relationships
- entry.data = {
- // @ts-ignore
- valid_tokens_since: entry.user_data.valid_tokens_since, // @ts-ignore
- hash: entry.user_data.hash,
- };
- }
- }
- // @ts-ignore
- if (entry.settings == null) {
- entry.settings = defaultSettings;
- // @ts-ignore
- if (entry.user_data) entry.settings = entry.user_settings;
+ try {
+ await newDB.manager.insert(entity, entry);
+ } catch (error) {
+ try {
+ if (!entry.id) throw new Error("object doesn't have a unique id: " + entry);
+ await newDB.manager.update(entity, { id: entry.id }, entry);
+ } catch (error) {
+ console.error("couldn't migrate " + i + " " + entity.name, error);
}
}
-
- // try {
- await newDB.manager.insert(entity, entry);
- // } catch (error) {
- // if (!entry.id) throw new Error("object doesn't have a unique id: " + entry);
- // await newDB.manager.update(entity, { id: entry.id }, entry);
- // }
}
// @ts-ignore
console.log("migrated " + entries.length + " " + entity.name);
}
} catch (error) {
- console.error((error as any).message);
+ console.error(error.message);
}
console.log("SUCCESS migrated all data");
|