summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json15
-rw-r--r--package.json2
-rw-r--r--src/routes/auth/login.ts15
-rw-r--r--src/routes/channels/#channel_id/messages/bulk-delete.ts1
-rw-r--r--src/routes/users/@me/channels.ts54
-rw-r--r--src/schema/Channel.ts18
6 files changed, 35 insertions, 70 deletions
diff --git a/package-lock.json b/package-lock.json

index ea952617..107b4ac0 100644 --- a/package-lock.json +++ b/package-lock.json
@@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@fosscord/server-util": "^1.0.4", + "@fosscord/server-util": "^1.0.7", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", @@ -581,10 +581,9 @@ } }, "node_modules/@fosscord/server-util": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.4.tgz", - "integrity": "sha512-TZPUNyOF/dxmVLDscUPQXmikKS/K209Itv15TGVYGHovCFVIfHVbfXxa+u7EVseQJvX7BL1Kyd45IWDE0Qy1jA==", - "license": "ISC", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.7.tgz", + "integrity": "sha512-3vBPCt+lwMS7wk+iRvv+V8qBSnEdNifpPxX97Lfjje/TSWI17Kg29y3BmcGJRC5TwIHTLFtgpNLmZmruhv7ziQ==", "dependencies": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", @@ -12564,9 +12563,9 @@ } }, "@fosscord/server-util": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.4.tgz", - "integrity": "sha512-TZPUNyOF/dxmVLDscUPQXmikKS/K209Itv15TGVYGHovCFVIfHVbfXxa+u7EVseQJvX7BL1Kyd45IWDE0Qy1jA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.7.tgz", + "integrity": "sha512-3vBPCt+lwMS7wk+iRvv+V8qBSnEdNifpPxX97Lfjje/TSWI17Kg29y3BmcGJRC5TwIHTLFtgpNLmZmruhv7ziQ==", "requires": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", diff --git a/package.json b/package.json
index f8509916..187aa29e 100644 --- a/package.json +++ b/package.json
@@ -30,7 +30,7 @@ }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { - "@fosscord/server-util": "^1.0.4", + "@fosscord/server-util": "^1.0.7", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", diff --git a/src/routes/auth/login.ts b/src/routes/auth/login.ts
index 247ee018..5c43db1b 100644 --- a/src/routes/auth/login.ts +++ b/src/routes/auth/login.ts
@@ -25,25 +25,16 @@ router.post( const query: any[] = [{ phone: login }]; if (email) query.push({ email }); - const user = await UserModel.findOne( - { - $or: query, - }, - `user_data.hash id user_settings.locale user_settings.theme` - ).exec(); + const user = await UserModel.findOne({ $or: query }, `user_data.hash id user_settings.locale user_settings.theme`).exec(); if (!user) { - throw FieldErrors({ - login: { message: req.t("auth:login.INVALID_LOGIN"), code: "INVALID_LOGIN" }, - }); + throw FieldErrors({ login: { message: req.t("auth:login.INVALID_LOGIN"), code: "INVALID_LOGIN" } }); } // the salt is saved in the password refer to bcrypt docs const same_password = await bcrypt.compare(password, user.user_data.hash); if (!same_password) { - throw FieldErrors({ - password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" }, - }); + throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); } const token = await generateToken(user.id); diff --git a/src/routes/channels/#channel_id/messages/bulk-delete.ts b/src/routes/channels/#channel_id/messages/bulk-delete.ts
index ff1324d7..bf71404a 100644 --- a/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ b/src/routes/channels/#channel_id/messages/bulk-delete.ts
@@ -27,6 +27,7 @@ router.post("/", check({ messages: [String] }), async (req, res) => { if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`); await MessageModel.deleteMany({ id: { $in: messages } }).exec(); + await emitEvent({ event: "MESSAGE_DELETE_BULK", channel_id, diff --git a/src/routes/users/@me/channels.ts b/src/routes/users/@me/channels.ts
index 45371b34..3b2b6781 100644 --- a/src/routes/users/@me/channels.ts +++ b/src/routes/users/@me/channels.ts
@@ -1,8 +1,4 @@ -import { - Router, - Request, - Response -} from "express"; +import { Router, Request, Response } from "express"; import { ChannelModel, ChannelCreateEvent, @@ -10,39 +6,23 @@ import { UserModel, toObject, ChannelType, - Snowflake + Snowflake, + trimSpecial, } from "@fosscord/server-util"; -import { - HTTPError -} from "lambert-server"; -import { - emitEvent -} from "../../../util/Event"; -import { - getPublicUser -} from "../../../util/User"; -import { - DmChannelCreateSchema -} from "../../../schema/Channel"; -import { - check -} from "../../../util/instanceOf"; +import { HTTPError } from "lambert-server"; +import { emitEvent } from "../../../util/Event"; +import { getPublicUser } from "../../../util/User"; +import { DmChannelCreateSchema } from "../../../schema/Channel"; +import { check } from "../../../util/instanceOf"; const router: Router = Router(); router.get("/", async (req: Request, res: Response) => { - const user = await UserModel.findOne({ - id: req.user_id - }, { - guilds: true - }).exec(); - if (!user) throw new HTTPError("User not found", 404); - - var testID = "829044530203328513"; //FOR TEST - var channels = await ChannelModel.find({ - recipients: req.user_id, - type: 1 + $or: [ + { recipients: req.user_id, type: ChannelType.DM }, + { recipients: req.user_id, type: ChannelType.GROUP_DM }, + ], }).exec(); res.json(toObject(channels)); @@ -50,20 +30,22 @@ router.get("/", async (req: Request, res: Response) => { router.post("/", check(DmChannelCreateSchema), async (req, res) => { const body = req.body as DmChannelCreateSchema; + if (body.recipients.length === 0) throw new HTTPError("You need to specify at least one recipient"); + const type = body.recipients.length === 1 ? ChannelType.DM : ChannelType.GROUP_DM; + const name = trimSpecial(body.name); const channel = { - ...body, + name, + type, owner_id: req.user_id, id: Snowflake.generate(), - type: ChannelType.DM, created_at: new Date(), }; await new ChannelModel(channel).save(); /*Event({ event: "CHANNEL_CREATE", data: channel } as ChannelCreateEvent);*/ - res.json(channel); }); -export default router; \ No newline at end of file +export default router; diff --git a/src/schema/Channel.ts b/src/schema/Channel.ts
index 3a22872a..70e305e4 100644 --- a/src/schema/Channel.ts +++ b/src/schema/Channel.ts
@@ -22,21 +22,13 @@ export const ChannelModifySchema = { }; export const DmChannelCreateSchema = { - owner_id: String, - $id: String, - $created_at: Date, - name: String, - type: Number, - recipients: [String] -} + $name: String, + recipients: [String], +}; export interface DmChannelCreateSchema { - owner_id: String; - id?: String; - created_at?: Date; - name: String; - type: Number; - recipients: String[]; + name?: string; + recipients: string[]; } export interface ChannelModifySchema {