import { BaseService, BaseServiceOptions } from '../api/services/base-service'; import { PagedResponse } from '../common'; import { InitDeviceVdtRequest, RegisterAdminDeviceRequest, RegisterDeviceRequest, SearchDevicesRequest, ValidateDeviceRequest, ValidateDeviceResponse, } from './device.service.interfaces'; import { Device } from './interfaces'; export class DeviceService extends BaseService { protected deviceApiUrl: string; constructor(opts: BaseServiceOptions) { super(opts); this.deviceApiUrl = `${this.apiUrl}/devices/v1/devices`; } searchDevices(req: SearchDevicesRequest) { return this.get>(this.deviceApiUrl, req); } registerDevice(req: RegisterDeviceRequest) { return this.post(`${this.deviceApiUrl}/register`, req); } registerAdminDevice(req: RegisterAdminDeviceRequest) { return this.post(`${this.deviceApiUrl}/admin/register`, req); } getAdminDeviceByExternalId(externalId: string) { return this.get(`${this.deviceApiUrl}/admin/${externalId}`); } validateDevice(req: ValidateDeviceRequest) { return this.post(`${this.deviceApiUrl}/validate`, req); } getDeviceByExternalId(externalId: string) { return this.get(`${this.deviceApiUrl}/${externalId}`); } unregisterDevice(externalId: string) { return this.delete(`${this.deviceApiUrl}/${externalId}/unregister`); } initDeviceVdt(req: InitDeviceVdtRequest) { return this.post(`${this.deviceApiUrl}/init-vdt`, req); } getDeviceInfoById(deviceId: string) { return this.get(`${this.deviceApiUrl}/${deviceId}/info`); } }