Mutual Friends
Added mutual friends
This commit is contained in:
parent
5a215b1af7
commit
4825cbb4a7
41
api/src/routes/users/#id/relationships.ts
Normal file
41
api/src/routes/users/#id/relationships.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { Router, Request, Response } from "express";
|
||||
import { User } from "@fosscord/util";
|
||||
import { route } from "@fosscord/api";
|
||||
|
||||
const router: Router = Router();
|
||||
|
||||
export interface UserRelationsResponse {
|
||||
object: {
|
||||
id?: string,
|
||||
username?: string,
|
||||
avatar?: string,
|
||||
discriminator?: string,
|
||||
public_flags?: number
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
router.get("/", route({ test: { response: { body: "UserRelationsResponse" } } }), async (req: Request, res: Response) => {
|
||||
var mutual_relations: object[] = [];
|
||||
const requested_relations = await User.findOneOrFail({
|
||||
where: { id: req.params.id },
|
||||
relations: ["relationships"]
|
||||
});
|
||||
const self_relations = await User.findOneOrFail({
|
||||
where: { id: req.params.id },
|
||||
relations: ["relationships"]
|
||||
});
|
||||
|
||||
for(const rmem of requested_relations.relationships) {
|
||||
for(const smem of self_relations.relationships)
|
||||
if (rmem.to_id === smem.to_id && rmem.type === 1 && rmem.to_id !== req.user_id) {
|
||||
var relation_user = await User.getPublicUser(rmem.to_id)
|
||||
|
||||
mutual_relations.push({id: relation_user.id, username: relation_user.username, avatar: relation_user.avatar, discriminator: relation_user.discriminator, public_flags: relation_user.public_flags})
|
||||
}
|
||||
}
|
||||
|
||||
res.json(mutual_relations)
|
||||
});
|
||||
|
||||
export default router;
|
Loading…
x
Reference in New Issue
Block a user