Skip to content

Commit

Permalink
feature(policy): #832 mapped get policies
Browse files Browse the repository at this point in the history
  • Loading branch information
ds-mmaul committed Jun 7, 2024
1 parent 00acde4 commit d1e0dab
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ export class PoliciesFacade {
public setPolicies(): void {
this.policiesSubscription?.unsubscribe();
this.policiesSubscription = this.policyService.getPolicies().pipe(map(response => {
return response.map(policy => {
return PoliciesAssembler.assemblePolicy(policy);
});
return PoliciesAssembler.mapToPolicyEntryList(response).map(entry => entry.payload.policy).map(policy => PoliciesAssembler.assemblePolicy(policy));
})).subscribe({
next: data => (this.policiesState.policies = { data: data }),
error: error => (this.policiesState.policies = { error }),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { CalendarDateModel } from '@core/model/calendar-date.model';
import {
getOperatorTypeSign,
OperatorType,
Policy,
PolicyAction,
PolicyEntry,
Expand All @@ -17,7 +18,7 @@ export class PoliciesAssembler {
createdOn: formattedCreatedOn.isInitial() ? null : formattedCreatedOn.valueOf().toISOString().slice(0, 16),
validUntil: formattedValidUntil.isInitial() ? null : formattedValidUntil.valueOf().toISOString().slice(0, 16),
accessType: policy.permissions[0].action.toUpperCase() as PolicyAction,
constraints: this.mapDisplayPropsToPolicyRootLevelFromPolicy(policy),
constraints: policy.constraints ?? this.mapDisplayPropsToPolicyRootLevelFromPolicy(policy),
};
}

Expand All @@ -40,13 +41,15 @@ export class PoliciesAssembler {
entry.payload.policy.permissions.forEach(permission => {
permission.constraint.and.forEach(andConstraint => {
constrainsList.push(andConstraint.leftOperand);
constrainsList.push(andConstraint.operator['@id']);
constrainsList.push(getOperatorTypeSign(OperatorType[andConstraint.operator['@id'].toUpperCase()]));
constrainsList.push(andConstraint['odrl:rightOperand']);
constrainsList.push(' AND ');
});
permission.constraint?.or?.forEach(orConstraint => {
constrainsList.push(orConstraint.leftOperand);
constrainsList.push(orConstraint.operator['@id']);
constrainsList.push(getOperatorTypeSign(OperatorType[orConstraint.operator['@id'].toUpperCase()]));
constrainsList.push(orConstraint['odrl:rightOperand']);
constrainsList.push(' OR ');
});
});
return constrainsList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FormControl, Validators } from '@angular/forms';
import { PoliciesAssembler } from '@page/admin/presentation/policy-management/policies/policy.assembler';
import { ImportState, Part } from '@page/parts/model/parts.model';
import { Policy } from '@page/policies/model/policy.model';
import { PolicyService } from '@shared/service/policy.service';
import { Observable, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';

@Component({
selector: 'app-asset-publisher',
Expand Down Expand Up @@ -55,7 +57,9 @@ export class AssetPublisherComponent {
}

private getPolicies() {
this.policiesSubscription = this.policyService.getPolicies().subscribe(data => {
this.policiesSubscription = this.policyService.getPolicies().pipe(map(response => {
return PoliciesAssembler.mapToPolicyEntryList(response).map(entry => entry.payload.policy).map(policy => PoliciesAssembler.assemblePolicy(policy));
})).subscribe(data => {
this.policiesList = data;
})
}
Expand Down
6 changes: 3 additions & 3 deletions frontend/src/app/modules/shared/service/policy.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { ApiService } from '@core/api/api.service';
import { environment } from '@env';
import { Policy, PolicyEntry } from '@page/policies/model/policy.model';
import { Policy, PolicyEntry, PolicyResponseMap } from '@page/policies/model/policy.model';
import { Observable } from 'rxjs';

@Injectable({
Expand All @@ -12,8 +12,8 @@ export class PolicyService {
private readonly url = environment.apiUrl;
constructor(private readonly apiService: ApiService) {}

getPolicies(): Observable<Policy[]> {
return this.apiService.get<Policy[]>(`${ this.url }/policies`);
getPolicies(): Observable<PolicyResponseMap> {
return this.apiService.get<PolicyResponseMap>(`${ this.url }/policies`);
}

getPolicyById(policyId: string): Observable<Policy> {
Expand Down

0 comments on commit d1e0dab

Please sign in to comment.