All files / src/app/shared/api role.service.ts

100% Statements 25/25
75% Branches 3/4
100% Functions 10/10
100% Lines 23/23

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 479x 9x   9x 9x     9x         9x 51x   9x 22x     9x 1x     9x 1x     9x 1x     9x 1x     9x 2x   2x 4x   2x       9x  
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
 
import { Observable, of as observableOf } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
 
import { RoleFormModel } from '../../core/auth/role-form/role-form.model';
import { ApiModule } from './api.module';
 
@Injectable({
  providedIn: ApiModule
})
export class RoleService {
  constructor(private http: HttpClient) {}
 
  list() {
    return this.http.get('api/role');
  }
 
  delete(role: string) {
    return this.http.delete(`api/role/${role}`);
  }
 
  get(name) {
    return this.http.get(`api/role/${name}`);
  }
 
  create(role: RoleFormModel) {
    return this.http.post(`api/role`, role);
  }
 
  update(role: RoleFormModel) {
    return this.http.put(`api/role/${role.name}`, role);
  }
 
  exists(name: string): Observable<boolean> {
    return this.list().pipe(
      mergeMap((roles: Array<RoleFormModel>) => {
        const exists = roles.some((currentRole: RoleFormModel) => {
          return currentRole.name === name;
        });
        return observableOf(exists);
      })
    );
  }
}