mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-11 03:53:02 +00:00
intermediate commit
This commit is contained in:
@@ -2,15 +2,15 @@ import { Observable, of as observableOf, throwError as observableThrowError } fr
|
||||
import { distinctUntilChanged, filter, map, mergeMap, tap } from 'rxjs/operators';
|
||||
import { Inject, Injectable } from '@angular/core';
|
||||
import { HALEndpointService } from '../shared/hal-endpoint.service';
|
||||
import { ResponseCacheService } from '../cache/response-cache.service';
|
||||
import { RequestService } from '../data/request.service';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { isNotEmpty } from '../../shared/empty.util';
|
||||
import { AuthGetRequest, AuthPostRequest, PostRequest, RestRequest } from '../data/request.models';
|
||||
import { ResponseCacheEntry } from '../cache/response-cache.reducer';
|
||||
import { AuthStatusResponse, ErrorResponse } from '../cache/response-cache.models';
|
||||
import { AuthStatusResponse, ErrorResponse } from '../cache/response.models';
|
||||
import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service';
|
||||
import { RequestEntry } from '../data/request.reducer';
|
||||
import { getResponseFromEntry } from '../shared/operators';
|
||||
|
||||
@Injectable()
|
||||
export class AuthRequestService {
|
||||
@@ -19,18 +19,17 @@ export class AuthRequestService {
|
||||
|
||||
constructor(@Inject(GLOBAL_CONFIG) protected EnvConfig: GlobalConfig,
|
||||
protected halService: HALEndpointService,
|
||||
protected responseCache: ResponseCacheService,
|
||||
protected requestService: RequestService) {
|
||||
}
|
||||
|
||||
protected fetchRequest(request: RestRequest): Observable<any> {
|
||||
return this.responseCache.get(request.href).pipe(
|
||||
map((entry: ResponseCacheEntry) => entry.response),
|
||||
return this.requestService.getByHref(request.href).pipe(
|
||||
getResponseFromEntry(),
|
||||
// TODO to review when https://github.com/DSpace/dspace-angular/issues/217 will be fixed
|
||||
tap(() => this.responseCache.remove(request.href)),
|
||||
// tap(() => this.responseCache.remove(request.href)),
|
||||
mergeMap((response) => {
|
||||
if (response.isSuccessful && isNotEmpty(response)) {
|
||||
return observableOf((response as AuthStatusResponse).response);
|
||||
return observableOf((response as AuthStatusResponse).response);
|
||||
} else if (!response.isSuccessful) {
|
||||
return observableThrowError(new Error((response as ErrorResponse).errorMessage));
|
||||
}
|
||||
|
Reference in New Issue
Block a user