index.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import z from 'zod'
  2. import koa from 'koa'
  3. import { SiteManage } from './interface'
  4. export interface ReqSiteInfo extends SiteManage.ReqSiteInfo {}
  5. export interface ReqSiteTags extends SiteManage.ReqSiteTags {}
  6. export const URL = {
  7. getSiteManageInfo: '/operations/operate/site-manage',
  8. postRefreshSiteInfo: '/operations/operate/site-manage',
  9. getSiteOfflineInfo: '/operations/operate/site-manage-offline',
  10. postRefreshOfflineSiteInfo: '/operations/operate/site-manage-offline',
  11. eventsRefreshSiteInfo: '/operations/operate/site-manage/events',
  12. getSiteInfo: '/operations/operate/site-info',
  13. postSiteTags: '/operations/operate/site-tags',
  14. getSiteMap: '/operations/operate/site-map',
  15. }
  16. export function checkReqSiteInfoParams(ctx: koa.Context): ReqSiteInfo {
  17. const schemaReqSiteInfoParams = z.object({
  18. serialNumber: z.coerce.string().optional(),
  19. apowerSn: z.coerce.string().optional(),
  20. apowerNum: z.coerce.number().optional(),
  21. activeStatus: z.coerce.number().optional(),
  22. networkStatus: z.coerce.number().optional(),
  23. country: z.coerce.string().optional(),
  24. province: z.coerce.string().array().optional(),
  25. tags: z.coerce.string().array().optional(),
  26. pageNum: z.coerce.number(),
  27. pageSize: z.coerce.number()
  28. })
  29. return schemaReqSiteInfoParams.parse(ctx.request.body)
  30. }
  31. export function checkReqSiteTagsParams(ctx: koa.Context): ReqSiteTags {
  32. const schemaReqSiteTagsParams = z.object({
  33. serialNumber: z.coerce.string(),
  34. tags: z.coerce.string().array()
  35. })
  36. return schemaReqSiteTagsParams.parse(ctx.request.body)
  37. }