import { Injectable } from '@angular/core';
import { BaseService } from 'src/app/shared/service/base.service';

@Injectable({
  providedIn: 'root'
})
export class DevicesService {

  constructor(private baseService: BaseService) { }

  getDevicesList() {
    return this.baseService.getData('devices/getAllDevices')
  }

  getDeviceTypes() {
    return this.baseService.getData('devices/types')
  }

  deleteDevice(deviceId: string) {
    return this.baseService.deleteData(`devices/${deviceId}`);
  }

  //change of upgrade deviceID from String To Any
  createDevice( deviData: any) {
    return this.baseService.postData(`devices/device`, deviData);
  }
  deleteDeviceProperty(deviceId: string|null|undefined, deviProp: any) {
    return this.baseService.deleteData(`devices/${deviceId}/${deviProp}`);
  }

  setDeviceProperty(deviceId: string|undefined|null, deviceData: any) {
    return this.baseService.putData(`devices/${deviceId}`, deviceData);
  }

  getHelperParams(deviceId: string,app: string,port: string,) {
    return this.baseService.getData(`my-devices/helper?id=${deviceId}&app=${app}&port=${port}`)
  }

  createDeviceSession(deviceId: string, deviData: any) {
    return this.baseService.postData('', deviData);
  }

  getDevicesExpiry(){
    return this.baseService.getDataNodeFramwork('getDeviceExpiry');
  }
  setDevicesExpiry(data:any){
    return this.baseService.postDataNodeFramwork('setDeviceExpiry', data);
  }
  //////////////////////////////
  getCustomerOf_Devices(data : any){
    return this.baseService.postDataNodeFramwork('getCustomerOf_device', data);
  }
  getDevicesList_byNode(token:any) {
    return this.baseService.postDataNodeFramwork('getDeviceStatusall' ,token);
  }

  getHost()
  {
    return this.baseService.getHost();
  }

  generateUUID() {
    return this.baseService.generate();;
  }

  handleError(error: any) {
    let errMsg: string;
    if (error.status === 401) {
        errMsg = 'Got error 401';

        //got 401unauthorized erro
        this.baseService.logoutUser();
    }
    else {
        errMsg = 'Got some other error';
    }
    //console.error(errMsg);
    //return Observable.throw(errMsg);
} 



}
