Skip to content

Commit a47d21a

Browse files
committed
Merge remote-tracking branch 'github/PR/64' into develop
2 parents 3047454 + 5a3b618 commit a47d21a

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

server/src/routes/posts.ts

+14-8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { UnauthorizedError } from "../errors/UnauthorizedError.js";
1313
import { MarkdownConverterServer } from "../markdown-converter-server.js";
1414
import { authMiddleware } from "../service/middleware/auth.js";
1515
import { extractJsonBody, extractUploadFiles, multipleFilesUpload } from "../service/middleware/files-upload.js";
16+
import { In } from "typeorm";
1617

1718
const router: Router = express.Router();
1819

@@ -35,17 +36,22 @@ router.get("/page/:page([0-9]+)/count/:count([0-9]+)/search/:search/operator/:op
3536
// TODO : add createdBy and tags to search results
3637
await AppDataSource.manager
3738
.createQueryBuilder(PostEntity, "post")
38-
.select(["post.*", "ts_rank_cd(sp.post_tsv, to_tsquery(:searchTerm)) as rank", "count(*) over() as count"])
39+
.select(["post.id as post_id", "ts_rank_cd(sp.post_tsv, to_tsquery(:searchTerm)) as rank", "count(*) over() as count"])
3940
.setParameter("searchTerm", searchTerm)
4041
.leftJoin("search_posts", "sp", "sp.post_id = id")
4142
.where("sp.post_tsv @@ to_tsquery(:searchTerm)", { searchTerm: searchTerm })
4243
.orderBy("rank", "DESC")
4344
.offset(skipEntries)
4445
.limit(itemsPerPage)
4546
.getRawMany()
46-
.then((result) => {
47-
const count = result?.map((r) => r.count) as number[];
48-
return res.status(200).json({ data: [result, count[0]] });
47+
.then(async (result) => {
48+
const idArray = result?.map((r) => parseInt(r.post_id)) as number[];
49+
const count = result?.map((r) => parseInt(r.count)) as number[];
50+
51+
await AppDataSource.manager
52+
.getRepository(PostEntity)
53+
.findBy({ id: In(idArray) })
54+
.then((result) => res.status(200).json({ data: [result, count[0]] }));
4955
})
5056
.catch((err) => next(err));
5157
});
@@ -249,10 +255,10 @@ router.post("/:id(\\d+$)", authMiddleware, multipleFilesUpload, async (req: Requ
249255
} else if (!permissionsForUser(account.user).canEditPost && (account.user.id === null || account.user.id !== post.createdBy?.id)) {
250256
return next(new ForbiddenError());
251257
}
252-
/*
253-
const tagsToUseInPost: TagEntity[] = await getPersistedTagsForPost(body).catch((err) => {
258+
259+
const tagsToUseInPost: TagEntity[] = await getPersistedTagsForPost(post, body).catch((err) => {
254260
throw new InternalServerError(true, "Error getting tags" + err);
255-
});*/
261+
});
256262

257263
AppDataSource.manager
258264
.transaction(async (manager) => {
@@ -282,7 +288,7 @@ router.post("/:id(\\d+$)", authMiddleware, multipleFilesUpload, async (req: Requ
282288
.getRepository(PostEntity)
283289
.findOneByOrFail({ id: postId })
284290
.then((post) => {
285-
post.tags = [];
291+
post.tags = tagsToUseInPost;
286292
return post;
287293
})
288294
.then((updatedPost) => manager.getRepository(PostEntity).save(updatedPost))

0 commit comments

Comments
 (0)