mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-10 12:42:44 +01:00
fix util
This commit is contained in:
parent
e0f2a5548d
commit
ac84431cc2
@ -158,7 +158,7 @@ export class Guild extends BaseClass {
|
||||
vanity_url_code?: string;
|
||||
|
||||
@JoinColumn({ name: "vanity_url_code" })
|
||||
@OneToOne(() => Invite, (invite: Invite) => invite.code)
|
||||
@ManyToOne(() => Invite)
|
||||
vanity_url?: Invite;
|
||||
|
||||
@Column({ nullable: true })
|
||||
|
@ -148,8 +148,8 @@ export class Message extends BaseClass {
|
||||
party_id: string;
|
||||
};
|
||||
|
||||
@Column({ type: "bigint", nullable: true })
|
||||
flags?: bigint;
|
||||
@Column({ nullable: true })
|
||||
flags?: string;
|
||||
|
||||
@RelationId((message: Message) => message.stickers)
|
||||
sticker_ids: string[];
|
||||
|
@ -7,12 +7,8 @@ export class RateLimit extends BaseClass {
|
||||
@Column()
|
||||
id: "global" | "error" | string; // channel_239842397 | guild_238927349823 | webhook_238923423498
|
||||
|
||||
@RelationId((rate_limit: RateLimit) => rate_limit.user)
|
||||
user_id: string;
|
||||
|
||||
@JoinColumn({ name: "user_id" })
|
||||
@ManyToOne(() => User, (user) => user.id)
|
||||
user: User;
|
||||
@Column() // no relation as it also
|
||||
executor_id: string;
|
||||
|
||||
@Column()
|
||||
hits: number;
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
|
||||
|
||||
import { BaseClass } from "./BaseClass";
|
||||
import { Guild } from "./Guild";
|
||||
|
||||
|
@ -49,7 +49,7 @@ export class User extends BaseClass {
|
||||
avatar?: string; // hash of the user avatar
|
||||
|
||||
@Column({ nullable: true })
|
||||
accent_color?: number = 0; // banner color of user
|
||||
accent_color?: number; // banner color of user
|
||||
|
||||
@Column({ nullable: true })
|
||||
banner?: string; // hash of the user banner
|
||||
@ -58,52 +58,52 @@ export class User extends BaseClass {
|
||||
phone?: string; // phone number of the user
|
||||
|
||||
@Column()
|
||||
desktop: boolean = false; // if the user has desktop app installed
|
||||
desktop: boolean; // if the user has desktop app installed
|
||||
|
||||
@Column()
|
||||
mobile: boolean = false; // if the user has mobile app installed
|
||||
mobile: boolean; // if the user has mobile app installed
|
||||
|
||||
@Column()
|
||||
premium: boolean = false; // if user bought nitro
|
||||
premium: boolean; // if user bought nitro
|
||||
|
||||
@Column()
|
||||
premium_type: number = 0; // nitro level
|
||||
premium_type: number; // nitro level
|
||||
|
||||
@Column()
|
||||
bot: boolean = false; // if user is bot
|
||||
bot: boolean; // if user is bot
|
||||
|
||||
@Column()
|
||||
bio: string = ""; // short description of the user (max 190 chars -> should be configurable)
|
||||
bio: string; // short description of the user (max 190 chars -> should be configurable)
|
||||
|
||||
@Column()
|
||||
system: boolean = false; // shouldn't be used, the api sents this field type true, if the generated message comes from a system generated author
|
||||
system: boolean; // shouldn't be used, the api sents this field type true, if the generated message comes from a system generated author
|
||||
|
||||
@Column()
|
||||
nsfw_allowed: boolean = false; // if the user is older than 18 (resp. Config)
|
||||
nsfw_allowed: boolean; // if the user is older than 18 (resp. Config)
|
||||
|
||||
@Column()
|
||||
mfa_enabled: boolean = false; // if multi factor authentication is enabled
|
||||
mfa_enabled: boolean; // if multi factor authentication is enabled
|
||||
|
||||
@Column()
|
||||
created_at: Date = new Date(); // registration date
|
||||
|
||||
@Column()
|
||||
verified: boolean = false; // if the user is offically verified
|
||||
verified: boolean; // if the user is offically verified
|
||||
|
||||
@Column()
|
||||
disabled: boolean = false; // if the account is disabled
|
||||
disabled: boolean; // if the account is disabled
|
||||
|
||||
@Column()
|
||||
deleted: boolean = false; // if the user was deleted
|
||||
deleted: boolean; // if the user was deleted
|
||||
|
||||
@Column({ nullable: true })
|
||||
email?: string; // email of the user
|
||||
|
||||
@Column({ type: "bigint" })
|
||||
flags: bigint = BigInt(0); // UserFlags
|
||||
@Column()
|
||||
flags: string; // UserFlags
|
||||
|
||||
@Column({ type: "bigint" })
|
||||
public_flags: bigint = BigInt(0);
|
||||
@Column()
|
||||
public_flags: string;
|
||||
|
||||
@RelationId((user: User) => user.relationships)
|
||||
relationship_ids: string[]; // array of guild ids the user is part of
|
||||
@ -123,13 +123,13 @@ export class User extends BaseClass {
|
||||
data: {
|
||||
valid_tokens_since: Date; // all tokens with a previous issue date are invalid
|
||||
hash?: string; // hash of the password, salt is saved in password (bcrypt)
|
||||
} = { valid_tokens_since: new Date() };
|
||||
};
|
||||
|
||||
@Column({ type: "simple-array" })
|
||||
fingerprints: string[] = []; // array of fingerprints -> used to prevent multiple accounts
|
||||
|
||||
@Column({ type: "simple-json" })
|
||||
settings: UserSettings = defaultSettings;
|
||||
settings: UserSettings;
|
||||
|
||||
static async getPublicUser(user_id: string, opts?: FindOneOptions<User>) {
|
||||
const user = await User.findOne(user_id, {
|
||||
|
@ -14,6 +14,7 @@ export * from "./RateLimit";
|
||||
export * from "./ReadState";
|
||||
export * from "./Relationship";
|
||||
export * from "./Role";
|
||||
export * from "./Sticker";
|
||||
export * from "./Team";
|
||||
export * from "./TeamMember";
|
||||
export * from "./Template";
|
||||
|
@ -515,4 +515,4 @@ export type EVENT =
|
||||
| "RELATIONSHIP_REMOVE"
|
||||
| CUSTOMEVENTS;
|
||||
|
||||
export type CUSTOMEVENTS = "INVALIDATED";
|
||||
export type CUSTOMEVENTS = "INVALIDATED" | "RATELIMIT";
|
||||
|
@ -6,6 +6,7 @@ var config: ConfigEntity;
|
||||
|
||||
export const Config = {
|
||||
init: async function init() {
|
||||
if (config) return config;
|
||||
config = new ConfigEntity({}, { id: "0" });
|
||||
return this.set((config.value || {}).merge(DefaultConfigOptions));
|
||||
},
|
||||
@ -13,7 +14,8 @@ export const Config = {
|
||||
return config.value as ConfigValue;
|
||||
},
|
||||
set: function set(val: any) {
|
||||
config.value = val.merge(config.value);
|
||||
if (!config) return;
|
||||
config.value = val.merge(config?.value || {});
|
||||
return config.save();
|
||||
},
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
import "reflect-metadata";
|
||||
import { Connection, createConnection } from "typeorm";
|
||||
import { Connection, createConnection, ValueTransformer } from "typeorm";
|
||||
import * as Models from "../entities";
|
||||
|
||||
// UUID extension option is only supported with postgres
|
||||
@ -14,10 +14,10 @@ export function initDatabase() {
|
||||
console.log("[Database] connecting ...");
|
||||
// @ts-ignore
|
||||
promise = createConnection({
|
||||
// type: "sqlite",
|
||||
// database: "database.db",
|
||||
type: "postgres",
|
||||
url: "postgres://fosscord:wb94SmuURM2Syv&@localhost/fosscord",
|
||||
type: "sqlite",
|
||||
database: "database.db",
|
||||
// type: "postgres",
|
||||
// url: "postgres://fosscord:wb94SmuURM2Syv&@localhost/fosscord",
|
||||
//
|
||||
entities: Object.values(Models).filter((x) => x.constructor.name !== "Object"),
|
||||
synchronize: true,
|
||||
@ -25,6 +25,8 @@ export function initDatabase() {
|
||||
cache: {
|
||||
duration: 1000 * 3, // cache all find queries for 3 seconds
|
||||
},
|
||||
bigNumberStrings: false,
|
||||
supportBigNumbers: true,
|
||||
});
|
||||
|
||||
promise.then((connection) => {
|
||||
|
@ -12,7 +12,8 @@ export function checkToken(token: string, jwtSecret: string): Promise<any> {
|
||||
const user = await User.findOne({ id: decoded.id }, { select: ["data", "bot", "disabled", "deleted"] });
|
||||
if (!user) return rej("Invalid Token");
|
||||
// we need to round it to seconds as it saved as seconds in jwt iat and valid_tokens_since is stored in milliseconds
|
||||
if (decoded.iat * 1000 < user.data.valid_tokens_since.setSeconds(0, 0)) return rej("Invalid Token");
|
||||
if (decoded.iat * 1000 < new Date(user.data.valid_tokens_since).setSeconds(0, 0))
|
||||
return rej("Invalid Token");
|
||||
if (user.disabled) return rej("User disabled");
|
||||
if (user.deleted) return rej("User not found");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user