diff --git a/src/app/app.module.ts b/src/app/app.module.ts index ef1e098f02..c2728941d0 100755 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule, APP_BASE_HREF } from '@angular/common'; -import { HttpModule } from '@angular/http'; +import { HttpClientModule } from '@angular/common/http'; import { EffectsModule } from '@ngrx/effects'; import { StoreModule, MetaReducer, META_REDUCERS } from '@ngrx/store'; @@ -51,7 +51,7 @@ if (!ENV_CONFIG.production) { @NgModule({ imports: [ CommonModule, - HttpModule, + HttpClientModule, AppRoutingModule, CoreModule.forRoot(), NgbModule.forRoot(), diff --git a/src/app/core/dspace-rest-v2/dspace-rest-v2.service.spec.ts b/src/app/core/dspace-rest-v2/dspace-rest-v2.service.spec.ts new file mode 100644 index 0000000000..b45b7ae526 --- /dev/null +++ b/src/app/core/dspace-rest-v2/dspace-rest-v2.service.spec.ts @@ -0,0 +1,37 @@ +import { TestBed, inject } from '@angular/core/testing'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; + +import { DSpaceRESTv2Service } from './dspace-rest-v2.service'; + +describe('DSpaceRESTv2Service', () => { + let dSpaceRESTv2Service: DSpaceRESTv2Service; + let httpMock: HttpTestingController; + const mockDSpaceRESTV2Response = {}; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [DSpaceRESTv2Service] + }); + + dSpaceRESTv2Service = TestBed.get(DSpaceRESTv2Service); + httpMock = TestBed.get(HttpTestingController); + }); + + it('should be created', inject([DSpaceRESTv2Service], (service: DSpaceRESTv2Service) => { + expect(service).toBeTruthy(); + })); + + describe('#get', () => { + it('should return an Observable', () => { + const url = 'http://www.dspace.org/'; + dSpaceRESTv2Service.get(url).subscribe((response) => { + expect(response).toBeTruthy(); + }); + + const req = httpMock.expectOne(url); + expect(req.request.method).toBe('GET'); + req.flush(mockDSpaceRESTV2Response); + }); + }); +}); diff --git a/src/app/core/dspace-rest-v2/dspace-rest-v2.service.ts b/src/app/core/dspace-rest-v2/dspace-rest-v2.service.ts index 6464268201..1c719a6831 100644 --- a/src/app/core/dspace-rest-v2/dspace-rest-v2.service.ts +++ b/src/app/core/dspace-rest-v2/dspace-rest-v2.service.ts @@ -1,8 +1,7 @@ -import { Inject, Injectable } from '@angular/core'; -import { Http, RequestOptionsArgs } from '@angular/http'; +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; -import { RESTURLCombiner } from '../url-combiner/rest-url-combiner'; import { DSpaceRESTV2Response } from './dspace-rest-v2-response.model'; import { GLOBAL_CONFIG, GlobalConfig } from '../../../config'; @@ -13,7 +12,7 @@ import { GLOBAL_CONFIG, GlobalConfig } from '../../../config'; @Injectable() export class DSpaceRESTv2Service { - constructor(private http: Http, @Inject(GLOBAL_CONFIG) private EnvConfig: GlobalConfig) { + constructor(private http: HttpClient) { } @@ -23,13 +22,12 @@ export class DSpaceRESTv2Service { * @param absoluteURL * A URL * @param options - * A RequestOptionsArgs object, with options for the http call. - * @return {Observable} - * An Observable containing the response from the server + * An object, with options for the http call. + * @return {Observable} + * An Observable containing the response from the server */ - get(absoluteURL: string, options?: RequestOptionsArgs): Observable { + get(absoluteURL: string, options?: {}): Observable { return this.http.get(absoluteURL, options) - .map((res) => ({ payload: res.json(), statusCode: res.statusText })) .catch((err) => { console.log('Error: ', err); return Observable.throw(err); diff --git a/src/app/shared/api.service.ts b/src/app/shared/api.service.ts index 64a1b538c8..90c79d132e 100644 --- a/src/app/shared/api.service.ts +++ b/src/app/shared/api.service.ts @@ -1,14 +1,13 @@ import 'rxjs/add/observable/throw'; -import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import { Injectable } from '@angular/core'; -import { Http } from '@angular/http'; +import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; @Injectable() export class ApiService { - constructor(public _http: Http) { + constructor(public _http: HttpClient) { } @@ -17,7 +16,6 @@ export class ApiService { */ get(url: string, options?: any) { return this._http.get(url, options) - .map((res) => res.json()) .catch((err) => { console.log('Error: ', err); return Observable.throw(err);