import { Component, Inject, OnInit, Injectable } from '@angular/core';
import { HttpErrorHandler, HandleError } from '../auth/http-error-handler.service';
import { AuthService } from './auth.service';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
import { BaseService } from '../baseclass/BaseService';
import { AppConfig } from '../AppConfig/AppConfig';
import { OcBasedPermission } from './OcBasedPermission';
import { Observable } from 'rxjs';
import { catchError } from 'rxjs/operators';

@Injectable()
export class OcBasedPermissionService {


    private handleError: HandleError;
    constructor(
        public httpErrorHandler: HttpErrorHandler,
        private http: HttpClient,

        @Inject('BASE_URL') baseUrl: string) {

        this.handleError = httpErrorHandler.createHandleError('OcBasedPermission');
    }


    GetByUserName(username: string, token: any): Observable<OcBasedPermission[]> {
        var httpHeaders = new HttpHeaders()
            .set('Content-Type', 'application/json')
            .set('Authorization', token);
        // console.log("URL: " + this.apiserviceurl + this.apiUrl);
        return this.http.post<OcBasedPermission[]>
            (AppConfig.settings.UserManagerSettings.authority + "api/OcBasedPermission/GetOcBasedPermissions",
                "'" + username + "'",
                {
                    headers: httpHeaders
                })
            .pipe(
                catchError(this.handleError('OcBasedPermission', []))
            );
    }

}
