[SECARSP-257] Device policy service is implemented
authorArtem Motchanyi <a.motchanyi@samsung.com>
Wed, 28 Mar 2018 08:52:27 +0000 (11:52 +0300)
committerArtem Motchanyi <a.motchanyi@samsung.com>
Fri, 30 Mar 2018 08:30:33 +0000 (11:30 +0300)
dashboard/src/app/services/device.service.ts
dashboard/src/app/services/index.ts [new file with mode: 0644]
dashboard/src/app/services/policy.service.ts [new file with mode: 0644]

index cca153a..97ab422 100644 (file)
@@ -8,6 +8,7 @@ import { NGXLogger } from 'ngx-logger';
 
 @Injectable()
 export class DeviceService {
+  private getDeviceUrl = SERVER_URL + '/device';
   private getAllDevicesUrl = SERVER_URL + '/devices';
   private updateDevicesUrl = SERVER_URL + '/devices/update';
 
@@ -22,6 +23,17 @@ export class DeviceService {
     );
   }
 
+  getDevice(id: number): Observable<Device> {
+    const url = `${this.getDeviceUrl}?id=${id}`;
+
+    return this.http.get<Device>(url).pipe(
+      tap(
+        ok => this.logger.info(`Got device`),
+        error => this.logger.error(`Get device error`),
+      ),
+    );
+  }
+
   updateDevices(updateDevices: UpdateDevice[]): Observable<Device[]> {
     const updates = new UpdateDevices(updateDevices);
 
diff --git a/dashboard/src/app/services/index.ts b/dashboard/src/app/services/index.ts
new file mode 100644 (file)
index 0000000..e122ef6
--- /dev/null
@@ -0,0 +1,2 @@
+export * from './device.service';
+export * from './policy.service';
diff --git a/dashboard/src/app/services/policy.service.ts b/dashboard/src/app/services/policy.service.ts
new file mode 100644 (file)
index 0000000..de45cd7
--- /dev/null
@@ -0,0 +1,48 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { Observable } from 'rxjs/Observable';
+import { tap } from 'rxjs/operators';
+import { UpdatedDevicePolicies, PolicyGroup } from '../models';
+import { SERVER_URL } from '../../../config';
+import { NGXLogger } from 'ngx-logger';
+
+@Injectable()
+export class PolicyService {
+  private getDefaultPoliciesUrl = SERVER_URL + '/policies';
+  private getDevicePoliciesUrl = SERVER_URL + '/policies/device';
+  private setDevicePoliciesUrl = SERVER_URL + '/policies/device';
+
+  constructor(private http: HttpClient, private logger: NGXLogger) { }
+
+  getDefaultPolicies(): Observable<PolicyGroup[]> {
+    return this.http.get<PolicyGroup[]>(this.getDefaultPoliciesUrl).pipe(
+      tap(
+        ok => this.logger.info('Got default device policies'),
+        error => this.logger.error('Get default device policies error'),
+      ),
+    );
+  }
+
+  getDevicePolicies(deviceId: number): Observable<PolicyGroup[]> {
+    const url = `${this.getDevicePoliciesUrl}?id=${deviceId}`;
+
+    return this.http.get<PolicyGroup[]>(url).pipe(
+      tap(
+        ok => this.logger.info('Got device policies'),
+        error => this.logger.error('Get device policies error'),
+      ),
+    );
+  }
+
+  setDevicePolicies(deviceId: number, updatedPolicies: UpdatedDevicePolicies): Observable<any> {
+    const url = `${this.setDevicePoliciesUrl}?id=${deviceId}`;
+    this.logger.info(updatedPolicies);
+
+    return this.http.put<any>(url, updatedPolicies).pipe(
+      tap(
+        ok => this.logger.info('Device policies are successfully updated'),
+        error => this.logger.error('Update device policies error'),
+      ),
+    );
+  }
+}