All files / src/presentation/routes session.ts

0% Statements 0/6
100% Branches 0/0
0% Functions 0/1
0% Lines 0/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45                                                                                         
// hono instance
import honoFactory from '../factory/hono';
// validator
import { sessionCheckResponseSchema } from 'validator';
// error schema
import { route } from '../share/error';
// application
import { getSessionCheckUseCase } from '../../application/session';
 
const hono = honoFactory();
 
// NOTE: セッションが有効か確認するエンドポイントのスキーマ定義
const getSessionCheckSchema = route.createSchema(
  {
    path: '/api/session',
    method: 'get',
    description: 'セッションが有効か確認するエンドポイント',
    security: [{ SessionCookie: [] }],
    request: {},
    responses: {
      200: {
        description: 'OK',
        content: {
          'application/json': {
            schema: sessionCheckResponseSchema,
          },
        },
      },
    },
  },
  [401, 500] as const
);
 
hono.openapi(getSessionCheckSchema, async (c) => {
  const loginUser = c.get('user');
 
  // ビジネスロジック呼び出し
  const response = await getSessionCheckUseCase(c.env, loginUser.id);
 
  // レスポンス
  return c.json(response, 200);
});
 
export default hono;