Skip to content

Commit

Permalink
show/isFavorited
Browse files Browse the repository at this point in the history
  • Loading branch information
kozakura913 committed Sep 14, 2024
1 parent 0293460 commit 2661a13
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions packages/backend/src/server/api/endpoints/clips/show.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Inject, Injectable } from '@nestjs/common';
import got, * as Got from 'got';
import * as Redis from 'ioredis';
import { Endpoint } from '@/server/api/endpoint-base.js';
import type { ClipsRepository } from '@/models/_.js';
import type { ClipFavoritesRemoteRepository, ClipsRepository } from '@/models/_.js';
import { ClipEntityService } from '@/core/entities/ClipEntityService.js';
import { DI } from '@/di-symbols.js';
import { ClipService } from '@/core/ClipService.js';
Expand Down Expand Up @@ -58,16 +58,31 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
constructor(
@Inject(DI.clipsRepository)
private clipsRepository: ClipsRepository,
@Inject(DI.clipFavoritesRemoteRepository)
private clipFavoritesRemoteRepository: ClipFavoritesRemoteRepository,

private clipService: ClipService,
private clipEntityService: ClipEntityService,
) {
super(meta, paramDef, async (ps, me) => {
const parsed_id = ps.clipId.split('@');
if (parsed_id.length === 2 ) {//is remote
return clipService.showRemote(parsed_id[0], parsed_id[1]).catch(err => {
const clip = await clipService.showRemote(parsed_id[0], parsed_id[1]).catch(err => {
throw new ApiError(meta.errors.failedToResolveRemoteUser);
});
if (me) {
const exist = await this.clipFavoritesRemoteRepository.exists({
where: {
clipId: parsed_id[0],
host: parsed_id[1],
userId: me.id,
},
});
if (exist) {
clip.isFavorited = true;
}
}
return clip;
}
if (parsed_id.length !== 1 ) {//is not local
throw new ApiError(meta.errors.invalidIdFormat);
Expand Down

0 comments on commit 2661a13

Please sign in to comment.