Фильтры даты Angular6 InMemoryService - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь отправить запрос (получить или опубликовать) из своего углового сервиса в in-memory-data.service (как в уроке Angular 6 TourOfHeroes), но мне нужно отправить 2 фильтра даты и применить их кполя.Эти поля являются частью объекта, а объект является списком в модели.

Вот мой код из in-memory-data.service:

import { Injectable } from '@angular/core';
import { InMemoryDbService } from 'angular-in-memory-web-api';
import { StreamDataModel } from './stream-data/stream-data-model';
import { StreamDataViewModel } from './stream-data/stream-data-view-model';

@Injectable({
  providedIn: 'root'
})
export class InMemoryDataService implements InMemoryDbService {

  createDb() {
    const streamDataModels: StreamDataModel[] = [
      { id: 1, streamProjectId: 1, rawData: 'rawData1', exportData: 'exportData1', areDataExported: true, isStreamValid: true, contentMessage: '', clientDatabaseName: 'clientDatabaseName', exportDate: new Date(2018, 2, 5, 5, 30), insertDate: new Date(2018, 2, 5, 4, 2) },
      { id: 2, streamProjectId: 1, rawData: 'rawData2', exportData: '', areDataExported: false, isStreamValid: true, contentMessage: '', clientDatabaseName: 'clientDatabaseName', exportDate: null, insertDate: new Date(2018, 1, 14, 15, 7) },
      { id: 3, streamProjectId: 1, rawData: 'rawData3', exportData: '', areDataExported: false, isStreamValid: false, contentMessage: 'data not valid', clientDatabaseName: 'clientDatabaseName', exportDate: null, insertDate: new Date(2018, 1, 1, 10, 55) }
    ];
    const streamDataViewModel: StreamDataViewModel =
      { errorMessage: '', streamDatas: streamDataModels };
    return { streamDataModels, streamDataViewModel };
  }

  genId(streamDataModels: StreamDataModel[]): number {
    return streamDataModels.length > 0 ? Math.max(...streamDataModels.map(streamDataModel => streamDataModel.id)) + 1 : 1;
  }

  constructor() { }
}

, а вот мой кодиз stream-data.service:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { StreamDataViewModel } from './stream-data/stream-data-view-model';
import { DataConverterService } from './data-converter.service';
import { catchError } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})

export class StreamDataService {
  private getStreamDataViewModelUrl = 'api/streamDataViewModel';

  constructor(private http: HttpClient, private dataConverterService: DataConverterService) { }

  private handleError<T>(operation = 'operation', result?: T) {
    return (error: any): Observable<T> => {
      console.error(error);
      return of(result as T);
    };
  }

  getStreamDataViewModel(inferiorInsertDate: Date, superiorInsertDate: Date): Observable<StreamDataViewModel> {
    return this.http.get<StreamDataViewModel>(this.getStreamDataViewModelUrl)
      .pipe(
        catchError(this.handleError<StreamDataViewModel>('getStreamDataViewModel'))
      );
  }
} 

Мне нужно применить inferiorInsertDate и superiorInsertDate к полю insertDate.Я надеюсь, что вы мне поможете:)

...