manage.ts 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. import { Firmware, FirmwareQueryParam, FirmwareUploadParam } from '/@/types/device-firmware'
  2. import request, { CommonListResponse, IListWorkspaceResponse, IPage, IWorkspaceResponse } from '/@/api/http/request'
  3. import { Device } from '/@/types/device'
  4. const HTTP_PREFIX = '/manage/api/v1'
  5. // login
  6. export interface LoginBody {
  7. username: string,
  8. password: string,
  9. flag: number,
  10. gateway_sn?: string
  11. }
  12. export interface BindBody {
  13. device_sn: string,
  14. user_id: string,
  15. workspace_id: string,
  16. domain?: string
  17. }
  18. export interface HmsQueryBody {
  19. sns: string[],
  20. children_sn: string,
  21. device_sn: string,
  22. language: string,
  23. level: number | string,
  24. begin_time: number,
  25. end_time: number,
  26. message: string,
  27. domain: number,
  28. }
  29. export const login = async function (body: LoginBody): Promise<IWorkspaceResponse<any>> {
  30. const url = `${HTTP_PREFIX}/login`
  31. const result = await request.post(url, body)
  32. return result.data
  33. }
  34. // Refresh Token
  35. export const refreshToken = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  36. const url = `${HTTP_PREFIX}/token/refresh`
  37. const result = await request.post(url, body)
  38. return result.data
  39. }
  40. // Get Platform Info
  41. export const getPlatformInfo = async function (): Promise<IWorkspaceResponse<any>> {
  42. const url = `${HTTP_PREFIX}/workspaces/current`
  43. const result = await request.get(url)
  44. return result.data
  45. }
  46. // Get User Info
  47. export const getUserInfo = async function (): Promise<IWorkspaceResponse<any>> {
  48. const url = `${HTTP_PREFIX}/users/current`
  49. const result = await request.get(url)
  50. return result.data
  51. }
  52. // Get Device Topo
  53. export const getDeviceTopo = async function (workspace_id: string): Promise<IWorkspaceResponse<any>> {
  54. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices`
  55. const result = await request.get(url)
  56. return result.data
  57. }
  58. // Get Livestream Capacity
  59. export const getLiveCapacity = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  60. const url = `${HTTP_PREFIX}/live/capacity`
  61. const result = await request.get(url, body)
  62. return result.data
  63. }
  64. // Start Livestream
  65. export const startLivestream = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  66. const url = `${HTTP_PREFIX}/live/streams/start`
  67. const result = await request.post(url, body)
  68. return result.data
  69. }
  70. // Stop Livestream
  71. export const stopLivestream = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  72. const url = `${HTTP_PREFIX}/live/streams/stop`
  73. const result = await request.post(url, body)
  74. return result.data
  75. }
  76. // Update Quality
  77. export const setLivestreamQuality = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  78. const url = `${HTTP_PREFIX}/live/streams/update`
  79. const result = await request.post(url, body)
  80. return result.data
  81. }
  82. export const getAllUsersInfo = async function (wid: string, body: IPage): Promise<CommonListResponse<any>> {
  83. const url = `${HTTP_PREFIX}/users/${wid}/users?&page=${body.page}&page_size=${body.page_size}`
  84. const result = await request.get(url)
  85. return result.data
  86. }
  87. export const updateUserInfo = async function (wid: string, user_id: string, body: {}): Promise<IWorkspaceResponse<any>> {
  88. const url = `${HTTP_PREFIX}/users/${wid}/users/${user_id}`
  89. const result = await request.put(url, body)
  90. return result.data
  91. }
  92. export const bindDevice = async function (body: BindBody): Promise<IWorkspaceResponse<any>> {
  93. const url = `${HTTP_PREFIX}/devices/${body.device_sn}/binding`
  94. const result = await request.post(url, body)
  95. return result.data
  96. }
  97. export const unbindDevice = async function (device_sn: string): Promise<IWorkspaceResponse<any>> {
  98. const url = `${HTTP_PREFIX}/devices/${device_sn}/unbinding`
  99. const result = await request.delete(url)
  100. return result.data
  101. }
  102. export const getDeviceBySn = async function (workspace_id: string, device_sn: string): Promise<IWorkspaceResponse<any>> {
  103. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/${device_sn}`
  104. const result = await request.get(url)
  105. return result.data
  106. }
  107. /**
  108. * 获取绑定设备信息
  109. * @param workspace_id
  110. * @param body
  111. * @param domain
  112. * @returns
  113. */
  114. export const getBindingDevices = async function (workspace_id: string, body: { page: number, page_size: number }): Promise<IListWorkspaceResponse<Device>> {
  115. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/bound?&page=${body.page}&page_size=${body.page_size}`
  116. const result = await request.get(url)
  117. return result.data
  118. }
  119. export const updateDevice = async function (body: {}, workspace_id: string, device_sn: string): Promise<IWorkspaceResponse<any>> {
  120. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/${device_sn}`
  121. const result = await request.put(url, body)
  122. return result.data
  123. }
  124. export const getUnreadDeviceHms = async function (workspace_id: string, device_sn: string): Promise<IWorkspaceResponse<any>> {
  125. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/hms/${device_sn}`
  126. const result = await request.get(url)
  127. return result.data
  128. }
  129. export const updateDeviceHms = async function (workspace_id: string, device_sn: string): Promise<IWorkspaceResponse<any>> {
  130. const url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/hms/${device_sn}`
  131. const result = await request.put(url)
  132. return result.data
  133. }
  134. export const getDeviceHms = async function (body: HmsQueryBody, workspace_id: string, pagination: IPage): Promise<IListWorkspaceResponse<any>> {
  135. let url = `${HTTP_PREFIX}/devices/${workspace_id}/devices/hms?page=${pagination.page}&page_size=${pagination.page_size}` +
  136. `&level=${body.level ?? ''}&begin_time=${body.begin_time ?? ''}&end_time=${body.end_time ?? ''}&message=${body.message ?? ''}&language=${body.language}`
  137. body.sns.forEach((sn: string) => {
  138. if (sn !== '') {
  139. url = url.concat(`&device_sn=${sn}`)
  140. }
  141. })
  142. const result = await request.get(url)
  143. return result.data
  144. }
  145. export const changeLivestreamLens = async function (body: {}): Promise<IWorkspaceResponse<any>> {
  146. const url = `${HTTP_PREFIX}/live/streams/switch`
  147. const result = await request.post(url, body)
  148. return result.data
  149. }
  150. export const getFirmwares = async function (workspace_id: string, page: IPage, body: FirmwareQueryParam): Promise<IListWorkspaceResponse<Firmware>> {
  151. const url = `${HTTP_PREFIX}/workspaces/${workspace_id}/firmwares?page=${page.page}&page_size=${page.page_size}` +
  152. `&device_name=${body.device_name}&product_version=${body.product_version}&status=${body.firmware_status ?? ''}`
  153. const result = await request.get(url)
  154. return result.data
  155. }
  156. export const importFirmareFile = async function (workspaceId: string, param: FormData): Promise<IWorkspaceResponse<any>> {
  157. const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/firmwares/file/upload`
  158. const result = await request.post(url, param)
  159. return result.data
  160. }
  161. export const changeFirmareStatus = async function (workspaceId: string, firmwareId: string, param: { status: boolean }): Promise<IWorkspaceResponse<any>> {
  162. const url = `${HTTP_PREFIX}/workspaces/${workspaceId}/firmwares/${firmwareId}`
  163. const result = await request.put(url, param)
  164. return result.data
  165. }