summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints')
-rw-r--r--packages/backend/src/server/api/endpoints/drive/files.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/federation/instances.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/i/2fa/register-key.ts33
-rw-r--r--packages/backend/src/server/api/endpoints/notes/create.test.ts14
-rw-r--r--packages/backend/src/server/api/endpoints/notes/create.ts34
5 files changed, 55 insertions, 29 deletions
diff --git a/packages/backend/src/server/api/endpoints/drive/files.ts b/packages/backend/src/server/api/endpoints/drive/files.ts
index b7e9d12e94..0ca31dc993 100644
--- a/packages/backend/src/server/api/endpoints/drive/files.ts
+++ b/packages/backend/src/server/api/endpoints/drive/files.ts
@@ -36,7 +36,7 @@ export const paramDef = {
untilId: { type: 'string', format: 'misskey:id' },
folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null },
type: { type: 'string', nullable: true, pattern: /^[a-zA-Z\/\-*]+$/.toString().slice(1, -1) },
- sort: { type: 'string', nullable: true, enum: ['+createdAt', '-createdAt', '+name', '-name', '+size', '-size'] },
+ sort: { type: 'string', nullable: true, enum: ['+createdAt', '-createdAt', '+name', '-name', '+size', '-size', null] },
},
required: [],
} as const;
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index e5a90715f5..457309731f 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -60,6 +60,7 @@ export const paramDef = {
'-firstRetrievedAt',
'+latestRequestReceivedAt',
'-latestRequestReceivedAt',
+ null,
],
},
},
diff --git a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
index 0fac96d58f..15c5011db9 100644
--- a/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
+++ b/packages/backend/src/server/api/endpoints/i/2fa/register-key.ts
@@ -103,13 +103,13 @@ export const meta = {
items: {
type: 'string',
enum: [
- "ble",
- "cable",
- "hybrid",
- "internal",
- "nfc",
- "smart-card",
- "usb",
+ 'ble',
+ 'cable',
+ 'hybrid',
+ 'internal',
+ 'nfc',
+ 'smart-card',
+ 'usb',
],
},
},
@@ -123,8 +123,8 @@ export const meta = {
authenticatorAttachment: {
type: 'string',
enum: [
- "cross-platform",
- "platform",
+ 'cross-platform',
+ 'platform',
],
},
requireResidentKey: {
@@ -133,9 +133,9 @@ export const meta = {
userVerification: {
type: 'string',
enum: [
- "discouraged",
- "preferred",
- "required",
+ 'discouraged',
+ 'preferred',
+ 'required',
],
},
},
@@ -144,10 +144,11 @@ export const meta = {
type: 'string',
nullable: true,
enum: [
- "direct",
- "enterprise",
- "indirect",
- "none",
+ 'direct',
+ 'enterprise',
+ 'indirect',
+ 'none',
+ null,
],
},
extensions: {
diff --git a/packages/backend/src/server/api/endpoints/notes/create.test.ts b/packages/backend/src/server/api/endpoints/notes/create.test.ts
index 6086f99c92..3228bbd014 100644
--- a/packages/backend/src/server/api/endpoints/notes/create.test.ts
+++ b/packages/backend/src/server/api/endpoints/notes/create.test.ts
@@ -34,11 +34,10 @@ describe('api:notes/create', () => {
.toBe(VALID);
});
- // TODO
- //test('null post', () => {
- // expect(v({ text: null }))
- // .toBe(INVALID);
- //});
+ test('null post', () => {
+ expect(v({ text: null }))
+ .toBe(INVALID);
+ });
test('0 characters post', () => {
expect(v({ text: '' }))
@@ -49,6 +48,11 @@ describe('api:notes/create', () => {
expect(v({ text: await tooLong }))
.toBe(INVALID);
});
+
+ test('whitespace-only post', () => {
+ expect(v({ text: ' ' }))
+ .toBe(INVALID);
+ });
});
describe('cw', () => {
diff --git a/packages/backend/src/server/api/endpoints/notes/create.ts b/packages/backend/src/server/api/endpoints/notes/create.ts
index c5d42dabe4..29a0f7418c 100644
--- a/packages/backend/src/server/api/endpoints/notes/create.ts
+++ b/packages/backend/src/server/api/endpoints/notes/create.ts
@@ -172,13 +172,33 @@ export const paramDef = {
},
},
// (re)note with text, files and poll are optional
- anyOf: [
- { required: ['text'] },
- { required: ['renoteId'] },
- { required: ['fileIds'] },
- { required: ['mediaIds'] },
- { required: ['poll'] },
- ],
+ if: {
+ properties: {
+ renoteId: {
+ type: 'null',
+ },
+ fileIds: {
+ type: 'null',
+ },
+ mediaIds: {
+ type: 'null',
+ },
+ poll: {
+ type: 'null',
+ },
+ },
+ },
+ then: {
+ properties: {
+ text: {
+ type: 'string',
+ minLength: 1,
+ maxLength: MAX_NOTE_TEXT_LENGTH,
+ pattern: '[^\\s]+',
+ },
+ },
+ required: ['text'],
+ },
} as const;
@Injectable()