some minor changes
This commit is contained in:
parent
fba42d96c0
commit
02b35cc230
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,6 +1,6 @@
|
||||
.vscode/
|
||||
node_modules/
|
||||
keys/
|
||||
cwd/
|
||||
yarn.lock
|
||||
pacakage.json
|
||||
package.lock.json
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"typescript": "^5.1.5"
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@ import { convert } from "../server/decorators/schema.ts";
|
||||
import { now } from "../utils/utils.ts";
|
||||
|
||||
export default class ImageRouter extends AppRouter {
|
||||
public static serialize(image: Image) {
|
||||
public static deserialize(image: Image) {
|
||||
return {
|
||||
author: image.author,
|
||||
created: image.created,
|
||||
@ -32,7 +32,7 @@ export default class ImageRouter extends AppRouter {
|
||||
image.visibility === Visibility.Private && image.author !== jwt?.name
|
||||
) throw new HttpError("Image doesn't exist.");
|
||||
|
||||
return ImageRouter.serialize(image);
|
||||
return ImageRouter.deserialize(image);
|
||||
}
|
||||
|
||||
@rest('GET', '/mine')
|
||||
@ -40,7 +40,7 @@ export default class ImageRouter extends AppRouter {
|
||||
const user = await this.users.findOne({ username: jwt.name });
|
||||
if (!user) throw new HttpError("You don't exist.");
|
||||
const res = await page.apply(this.images.find({ _id: { $in: user.images } })).toArray();
|
||||
return res.map(v => ImageRouter.serialize(v));
|
||||
return res.map(v => ImageRouter.deserialize(v));
|
||||
}
|
||||
|
||||
@rest('POST', '/upload')
|
||||
@ -91,8 +91,9 @@ export default class ImageRouter extends AppRouter {
|
||||
|
||||
// Write to DB
|
||||
try {
|
||||
this.images.insertOne(img);
|
||||
return ImageRouter.serialize(img);
|
||||
await this.images.insertOne(img);
|
||||
await this.users.updateOne({ username: user.username }, { $push: { images: img._id } });
|
||||
return ImageRouter.deserialize(img);
|
||||
}
|
||||
catch (e) {
|
||||
await Deno.remove(`images/${img._id}.${ext}`);
|
||||
@ -100,7 +101,7 @@ export default class ImageRouter extends AppRouter {
|
||||
}
|
||||
}
|
||||
|
||||
public constructor(private salt: string, private images: Collection<Image>, private users: Collection<User>) {
|
||||
public constructor(private images: Collection<Image>, private users: Collection<User>) {
|
||||
super();
|
||||
users.createIndexes({ indexes: [ { key: { username: 1 }, name: 'Username Index' } ] });
|
||||
}
|
||||
|
@ -24,6 +24,6 @@ export class RootRouter extends AppRouter {
|
||||
const images = db.collection<Image>('images');
|
||||
|
||||
this.users = new UserRouter(salt, users);
|
||||
this.images = new ImageRouter(salt, images, users);
|
||||
this.images = new ImageRouter(images, users);
|
||||
}
|
||||
}
|
||||
|
@ -19,13 +19,17 @@ export interface LoginRequest {
|
||||
}
|
||||
|
||||
export default class UserRouter extends AppRouter {
|
||||
public static deserialize(user: User) {
|
||||
return { username: user.username, images: user.images };
|
||||
}
|
||||
|
||||
@rest('GET', '/')
|
||||
async get(@schema('string') username: string) {
|
||||
const res = await this.users.findOne({ username });
|
||||
|
||||
if (res === undefined) throw new HttpError('User not found.');
|
||||
|
||||
return { username: res.username };
|
||||
return UserRouter.deserialize(res);
|
||||
}
|
||||
@rest('GET', '/self')
|
||||
async self(@jwt(self => self.salt, true) @auth() auth: JWTPayload) {
|
||||
@ -34,7 +38,7 @@ export default class UserRouter extends AppRouter {
|
||||
|
||||
if (res === undefined) throw new HttpError('User not found.');
|
||||
|
||||
return { username: res.username };
|
||||
return UserRouter.deserialize(res);
|
||||
}
|
||||
|
||||
@rest('POST', '/signup')
|
||||
|
@ -24,7 +24,7 @@ export default async function serialize(val: unknown, depth = 16): Promise<Reada
|
||||
if (val instanceof ReadableStream) return val;
|
||||
if (val instanceof Uint8Array) return new Blob([val]).stream();
|
||||
|
||||
if (val.toString !== Object.prototype.toString && val.toString instanceof Function) {
|
||||
if (!(val instanceof Array) && val.toString !== Object.prototype.toString && val.toString instanceof Function) {
|
||||
val = val.toString();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user