diff --git a/CHANGELOG.md b/CHANGELOG.md index bc2d9f102eff790d411930f241dd409f943244d5..62d9d4defaaaf1f69c0044a4917892f99c57ae9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,11 +12,13 @@ - Fix: 月ã®é•ã†åŒã˜æ—¥ã¯ã‚»ãƒ‘レータãŒè¡¨ç¤ºã•ã‚Œãªã„ã®ã‚’ä¿®æ£ ### Server +- ファイルãŒã‚µã‚¤ã‚ºã®åˆ¶é™ã‚’超ãˆã¦ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•ã‚ŒãŸéš›ã«ã‚¨ãƒ©ãƒ¼ã‚’è¿”ã•ãªã‹ã£ãŸå•é¡Œã‚’ä¿®æ£ +- Fix: アンテナã®æ›¸ãè¾¼ã¿æ™‚ã«ã‚ーワードãŒä¸Žãˆã‚‰ã‚Œãªã‹ã£ãŸå ´åˆã®ã‚¨ãƒ©ãƒ¼ã‚’ApiErrorã¨ã—ã¦æŠ•ã’るよã†ã« + - ã“ã®å¤‰æ›´ã«ã‚ˆã‚Šã€å…¬å¼ãƒ•ãƒãƒ³ãƒˆã‚¨ãƒ³ãƒ‰ã§ã¯å…¥åŠ›ã®ä¸å‚™ãŒå†…部エラーã¨ã—ã¦å ±å‘Šã•ã‚Œã‚‹ä»£ã‚ã‚Šã«ä¸€èˆ¬çš„ãªã‚¨ãƒ©ãƒ¼ãƒ€ã‚¤ã‚¢ãƒã‚°ã§å ±å‘Šã•ã‚Œã¾ã™ - Fix: ファイルãŒã‚µã‚¤ã‚ºã®åˆ¶é™ã‚’超ãˆã¦ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•ã‚ŒãŸéš›ã«ã‚¨ãƒ©ãƒ¼ã‚’è¿”ã•ãªã‹ã£ãŸå•é¡Œã‚’ä¿®æ£ - Fix: 外部ページを解æžã™ã‚‹éš›ã«ã€ãƒšãƒ¼ã‚¸ã«ç´ã¥ã‘られãŸé–¢é€£ãƒªã‚½ãƒ¼ã‚¹ã‚‚èªã¿è¾¼ã¾ã‚Œã¦ã—ã¾ã†å•é¡Œã‚’ä¿®æ£ (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - ## 2024.8.0 ### General diff --git a/packages/backend/src/server/api/endpoints/antennas/create.ts b/packages/backend/src/server/api/endpoints/antennas/create.ts index 577b9e1b1f8c347d342671c708b1b9869686f429..e0c8ddcc8478e8851089b4e222082fd2b03f26cb 100644 --- a/packages/backend/src/server/api/endpoints/antennas/create.ts +++ b/packages/backend/src/server/api/endpoints/antennas/create.ts @@ -34,6 +34,12 @@ export const meta = { code: 'TOO_MANY_ANTENNAS', id: 'faf47050-e8b5-438c-913c-db2b1576fde4', }, + + emptyKeyword: { + message: 'Either keywords or excludeKeywords is required.', + code: 'EMPTY_KEYWORD', + id: '53ee222e-1ddd-4f9a-92e5-9fb82ddb463a', + }, }, res: { @@ -87,7 +93,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- ) { super(meta, paramDef, async (ps, me) => { if (ps.keywords.flat().every(x => x === '') && ps.excludeKeywords.flat().every(x => x === '')) { - throw new Error('either keywords or excludeKeywords is required.'); + throw new ApiError(meta.errors.emptyKeyword); } const currentAntennasCount = await this.antennasRepository.countBy({ diff --git a/packages/backend/src/server/api/endpoints/antennas/update.ts b/packages/backend/src/server/api/endpoints/antennas/update.ts index 0c30bca9e0bf17b52d6825c80f8511644bc58485..10f26b19126ed0a8301504e042c5bd81449dd0fa 100644 --- a/packages/backend/src/server/api/endpoints/antennas/update.ts +++ b/packages/backend/src/server/api/endpoints/antennas/update.ts @@ -32,6 +32,12 @@ export const meta = { code: 'NO_SUCH_USER_LIST', id: '1c6b35c9-943e-48c2-81e4-2844989407f7', }, + + emptyKeyword: { + message: 'Either keywords or excludeKeywords is required.', + code: 'EMPTY_KEYWORD', + id: '721aaff6-4e1b-4d88-8de6-877fae9f68c4', + }, }, res: { @@ -85,7 +91,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- super(meta, paramDef, async (ps, me) => { if (ps.keywords && ps.excludeKeywords) { if (ps.keywords.flat().every(x => x === '') && ps.excludeKeywords.flat().every(x => x === '')) { - throw new Error('either keywords or excludeKeywords is required.'); + throw new ApiError(meta.errors.emptyKeyword); } } // Fetch the antenna diff --git a/packages/backend/test/e2e/antennas.ts b/packages/backend/test/e2e/antennas.ts index 6ac14cd8dcdefe503f4d49eb75b977cd37fff2a8..a544db955a07b588f32571b98e86ac87f3e1ffc6 100644 --- a/packages/backend/test/e2e/antennas.ts +++ b/packages/backend/test/e2e/antennas.ts @@ -228,6 +228,17 @@ describe('アンテナ', () => { assert.deepStrictEqual(response, expected); }); + test('を作æˆã™ã‚‹æ™‚ã‚ーワードãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã„ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹', async () => { + await failedApiCall({ + endpoint: 'antennas/create', + parameters: { ...defaultParam, keywords: [[]], excludeKeywords: [[]] }, + user: alice + }, { + status: 400, + code: 'EMPTY_KEYWORD', + id: '53ee222e-1ddd-4f9a-92e5-9fb82ddb463a' + }) + }); //#endregion //#region æ›´æ–°(antennas/update) @@ -255,6 +266,18 @@ describe('アンテナ', () => { id: '1c6b35c9-943e-48c2-81e4-2844989407f7', }); }); + test('を変更ã™ã‚‹æ™‚ã‚ーワードãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã„ã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹', async () => { + const antenna = await successfulApiCall({ endpoint: 'antennas/create', parameters: defaultParam, user: alice }); + await failedApiCall({ + endpoint: 'antennas/update', + parameters: { ...defaultParam, antennaId: antenna.id, keywords: [[]], excludeKeywords: [[]] }, + user: alice + }, { + status: 400, + code: 'EMPTY_KEYWORD', + id: '721aaff6-4e1b-4d88-8de6-877fae9f68c4' + }) + }); //#endregion //#region 表示(antennas/show)