import ApiClient from './ApiClient'; import { AdminDeviceRequest, DisableDeviceResponse, EnableDeviceResponse, GetDeviceByMacAddressRequest, GetDeviceByMacAddressResponse, GetProfileDevicesRequest, GetProfileDevicesResponse, GetProfilesByRecentDevicesRequest, GetProfilesByRecentDevicesResponse, UpdateAdminDeviceRequest, UpdateAdminDeviceResponse, } from './types/Admin'; import urls from './urls'; export default class AdminClient { async getProfileDevices( this: ApiClient, params: GetProfileDevicesRequest, ): Promise { return await this.requestProtected< GetProfileDevicesRequest, GetProfileDevicesResponse >({ method: 'GET', url: urls.getProfileDevices(params), }); } async getProfilesByRecentDevices( this: ApiClient, params: GetProfilesByRecentDevicesRequest, ): Promise { return await this.requestProtected< GetProfilesByRecentDevicesRequest, GetProfilesByRecentDevicesResponse >({ method: 'GET', url: urls.getProfilesByRecentDevices(params), }); } async disableDevice( this: ApiClient, params: AdminDeviceRequest, ): Promise { return await this.requestProtected< AdminDeviceRequest, DisableDeviceResponse >({ body: params, method: 'POST', url: urls.disableDevice(), }); } async enableDevice( this: ApiClient, params: AdminDeviceRequest, ): Promise { return await this.requestProtected< AdminDeviceRequest, EnableDeviceResponse >({ body: params, method: 'POST', url: urls.enableDevice(), }); } async getDeviceByMacAddress( this: ApiClient, params: GetDeviceByMacAddressRequest, ): Promise { return await this.requestProtected< GetDeviceByMacAddressRequest, GetDeviceByMacAddressResponse >({ method: 'GET', url: urls.getDeviceByMacAddress(params), }); } async updateAdminDevice( this: ApiClient, deviceId: string, params: UpdateAdminDeviceRequest, ): Promise { return await this.requestProtected< UpdateAdminDeviceRequest, UpdateAdminDeviceResponse >({ body: params, method: 'PATCH', url: urls.updateAdminDevice(deviceId), }); } }