All files / services/api/endpoints/v1 blog.api.ts

0% Statements 0/4
100% Branches 0/0
100% Functions 0/0
0% Lines 0/4

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 46 47 48 49 50 51                                                                                                     
import { APIGroup } from "../definition-utils";
import Joi from "@hapi/joi";
import { AuthPolicy } from "@services/api/policies/auth.policy";
 
export default APIGroup("Blog", [
  {
    summary: "Create blog post",
    method: "POST",
    path: "/blog/posts",
    handler: "blog.CreatePost",
    request: {
      body: Joi.object({
        title: Joi.string().required(),
        summary: Joi.string().required(),
        content: Joi.string().required(),
      }),
    },
  },
  {
    summary: "Edit blog post",
    method: "POST",
    path: "/blog/posts/:postId",
    handler: "blog.EditPost",
    securityPolicy: AuthPolicy(),
    request: {
      body: Joi.object({
        title: Joi.string().required(),
        summary: Joi.string().required(),
        content: Joi.string().required(),
      }),
    },
  },
  {
    summary: "Get blog post list",
    method: "GET",
    path: "/blog/posts",
    handler: "blog.ListPosts",
    request: {
      query: Joi.object({
        page: Joi.number(),
      }),
    },
  },
  {
    summary: "Get blog post",
    method: "GET",
    path: "/blog/posts/:postId",
    handler: "blog.GetPost",
  },
]);