Skip to content

Commit 5886d41

Browse files
authored
Merge pull request #153 from kc3hack/yone/develop
ニュースのエンドポイント変更
2 parents 3f23bfb + 9b8d6ce commit 5886d41

File tree

6 files changed

+64
-69
lines changed

6 files changed

+64
-69
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { z, type RouteHandler } from '@hono/zod-openapi';
2+
import type { Context } from 'hono';
3+
import { newsTankaSchema } from '../../schema/News/newsTankaSchema.js';
4+
import type { newsTankaRoute } from '../../routes/News/newsTankaRoute.js';
5+
import postNews from '../../lib/postNews.js';
6+
7+
type newsTankaSchema = z.infer<typeof newsTankaSchema>;
8+
9+
const newsTankaHandler: RouteHandler<typeof newsTankaRoute, {}> = async (c: Context) => {
10+
const { apiKey } = await c.req.json<newsTankaSchema>();
11+
12+
/* --- 色々処理 --- */
13+
14+
const response = await postNews(apiKey);
15+
console.log(response);
16+
17+
// レスポンス
18+
return c.json(response, 200);
19+
};
20+
21+
export default newsTankaHandler;

backend/src/controllers/Sample/sampleNewsTankaHandler.ts

-23
This file was deleted.
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { z } from '@hono/zod-openapi';
2+
import { createRoute } from '@hono/zod-openapi';
3+
import { newsTankaResponseSchema, newsTankaSchema } from '../../schema/News/newsTankaSchema.js';
4+
import { errorResponseSchema } from '../../middleware/errorHandler.js';
5+
6+
type newsTankaSchema = z.infer<typeof newsTankaSchema>;
7+
8+
export const newsTankaRoute = createRoute({
9+
method: 'post',
10+
path: '/news',
11+
tags: ['news'],
12+
request: {
13+
body: {
14+
required: true,
15+
content: {
16+
'application/json': {
17+
schema: newsTankaSchema,
18+
},
19+
},
20+
},
21+
},
22+
responses: {
23+
200: {
24+
content: {
25+
'application/json': {
26+
schema: newsTankaResponseSchema,
27+
},
28+
},
29+
description: 'Successful response',
30+
},
31+
},
32+
});
33+
34+
export type NewsTankaRouteResponse200 = z.infer<
35+
(typeof newsTankaRoute.responses)['200']['content']['application/json']['schema']
36+
>;
37+
38+
export type NewsTankaRouteResponseError = z.infer<typeof errorResponseSchema>;

backend/src/routes/Sample/sampleNewsTankaRoute.ts

-41
This file was deleted.

backend/src/routes/route.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ import { sampleS3DownloadRoute } from './sampleS3Route.js';
2929
import sampleS3DownloadHandler from '../controllers/sampleS3DownloadHandler.js';
3030
import { sampleGeminiRoute } from './Sample/sampleGeminiRoute.js';
3131
import sampleGeminiHandler from '../controllers/Sample/sampleGeminiHandler.js';
32-
import { sampleNewsTankaRoute } from './Sample/sampleNewsTankaRoute.js';
33-
import sampleNewsTankaHandler from '../controllers/Sample/sampleNewsTankaHandler.js';
32+
import { newsTankaRoute } from './News/newsTankaRoute.js';
33+
import newsTankaHandler from '../controllers/News/newsTankaHandler.js';
3434

3535
const router = new OpenAPIHono();
3636

@@ -50,5 +50,5 @@ export default router
5050
.openapi(sampleS3UploadRoute, sampleS3UploadHandler)
5151
.openapi(sampleS3DownloadRoute, sampleS3DownloadHandler)
5252
.openapi(sampleGeminiRoute, sampleGeminiHandler)
53-
.openapi(sampleNewsTankaRoute, sampleNewsTankaHandler);
53+
.openapi(newsTankaRoute, newsTankaHandler);
5454
// .openapi(helloRoute, helloWorldHandler); //こういう感じで足していく

backend/src/schema/Sample/sampleNewsTankaSchema.ts backend/src/schema/News/newsTankaSchema.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { z } from '@hono/zod-openapi';
22

3-
export const sampleNewsTankaSchema = z.object({
3+
export const newsTankaSchema = z.object({
44
apiKey: z.string().openapi({
55
example: 'abc123',
66
description: 'APIキー',
77
}),
88
});
99

10-
export const sampleNewsTankaResponseSchema = z.object({
10+
export const newsTankaResponseSchema = z.object({
1111
isSuccess: z.boolean().openapi({
1212
example: true,
1313
description: '短歌の生成に成功したかどうか',

0 commit comments

Comments
 (0)