summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/drive
diff options
context:
space:
mode:
authorzyoshoka <107108195+zyoshoka@users.noreply.github.com>2025-05-27 08:57:09 +0900
committerGitHub <noreply@github.com>2025-05-27 08:57:09 +0900
commitd27075c5f536a86a6c81cb3c3cec92b302663e2e (patch)
treec9ab17782c4bc77da1f534c8731bbad5a0000849 /packages/backend/src/server/api/endpoints/drive
parentfix(backend): add response schema for `notes/show-partial-bulk` endpoint (#16... (diff)
downloadmisskey-d27075c5f536a86a6c81cb3c3cec92b302663e2e.tar.gz
misskey-d27075c5f536a86a6c81cb3c3cec92b302663e2e.tar.bz2
misskey-d27075c5f536a86a6c81cb3c3cec92b302663e2e.zip
fix(backend): correct invalid schema format specifying only `required` for `anyOf` (#16089)
* fix(backend): correct invalid schema format specifying only `required` for `anyOf` * refactor(backend): make types derived from `allOf` or `anyOf` more strong
Diffstat (limited to 'packages/backend/src/server/api/endpoints/drive')
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files/show.ts41
1 files changed, 19 insertions, 22 deletions
diff --git a/packages/backend/src/server/api/endpoints/drive/files/show.ts b/packages/backend/src/server/api/endpoints/drive/files/show.ts
index e8f4539d61..9a2e2c73e8 100644
--- a/packages/backend/src/server/api/endpoints/drive/files/show.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files/show.ts
@@ -43,14 +43,21 @@ export const meta = {
} as const;
export const paramDef = {
- type: 'object',
- properties: {
- fileId: { type: 'string', format: 'misskey:id' },
- url: { type: 'string' },
- },
anyOf: [
- { required: ['fileId'] },
- { required: ['url'] },
+ {
+ type: 'object',
+ properties: {
+ fileId: { type: 'string', format: 'misskey:id' },
+ },
+ required: ['fileId'],
+ },
+ {
+ type: 'object',
+ properties: {
+ url: { type: 'string' },
+ },
+ required: ['url'],
+ },
],
} as const;
@@ -64,21 +71,11 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
private roleService: RoleService,
) {
super(meta, paramDef, async (ps, me) => {
- let file: MiDriveFile | null = null;
-
- if (ps.fileId) {
- file = await this.driveFilesRepository.findOneBy({ id: ps.fileId });
- } else if (ps.url) {
- file = await this.driveFilesRepository.findOne({
- where: [{
- url: ps.url,
- }, {
- webpublicUrl: ps.url,
- }, {
- thumbnailUrl: ps.url,
- }],
- });
- }
+ const file = await this.driveFilesRepository.findOneBy(
+ 'fileId' in ps
+ ? { id: ps.fileId }
+ : [{ url: ps.url }, { webpublicUrl: ps.url }, { thumbnailUrl: ps.url }],
+ );
if (file == null) {
throw new ApiError(meta.errors.noSuchFile);