AW-811: Added weather service to common
FarmMaps.Develop/FarmMapsLib/develop This commit looks good Details

pull/1/head
Mark van der Wal 2020-02-04 13:54:53 +01:00
parent fd3545523e
commit 123bf2943a
4 changed files with 41 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import { ItemService } from './services/item.service';
import { EventService } from './services/event.service';
import { TypeaheadService } from './services/typeahead.service';
import { UserService } from './services/user.service';
import { WeatherService} from './services/weather.service';
import { AppConfig } from './shared/app.config';
import { AccessTokenInterceptor } from "./shared/accesstoken.interceptor";
import { appConfigFactory } from "./shared/app.config.factory";
@ -35,6 +36,7 @@ export {
EventService,
TypeaheadService,
UserService,
WeatherService,
CodeListItemService,
AppConfig,
AccessTokenInterceptor,

View File

@ -32,6 +32,7 @@ import { TagInputComponent } from './components/tag-input/tag-input.component';
import { MenuBackgroundComponent } from './components/menu-background/menu-background.component';
import { IEventMessage } from './models/event.message';
import { IItem, Item } from './models/item';
import { WeatherCurrentObservation } from './models/weatherCurrentObservation';
import { IItemType } from './models/item.type';
import { IItemTypes } from './models/item.types';
import { IItemTask, ItemTask } from './models/itemTask';
@ -71,7 +72,8 @@ export {
IAuthconfigFactory,
AuthConfigFactory,
MenuBackgroundComponent,
SecureOAuthStorage
SecureOAuthStorage,
WeatherCurrentObservation
};
@NgModule({

View File

@ -0,0 +1,13 @@
export interface WeatherCurrentObservation {
wspd: number;
obs_time_local: number;
decimal_temp: number;
rh: number;
precip_1hour: number;
precip_6hour: number;
precip_24hour: number;
uv_index: number;
icon_code: number;
wdir_cardinal: string;
wdir: number;
}

View File

@ -0,0 +1,23 @@
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {AppConfig} from '../shared/app.config';
import {Observable} from 'rxjs';
import {WeatherCurrentObservation} from '../models/weatherCurrentObservation';
@Injectable({
providedIn: 'root',
})
export class WeatherService {
private apiUrl = '/api/v1/weather/currentobservation';
private apiKey = '5f17ef36283b49e9b099a1f4064fbf3d';
constructor(public httpClient: HttpClient, public appConfig: AppConfig) {
}
public GetCurrentObservation(centroid: number[]): Observable<WeatherCurrentObservation> {
const endpoint = this.appConfig.getConfig('apiEndPoint');
const observationUrl = `${endpoint}${this.apiUrl}/?c=${centroid[0]},${centroid[1]}&key=${this.apiKey}`;
return this.httpClient.get<WeatherCurrentObservation>(observationUrl);
}
}