WIP Adding measure summary views.
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
import { default as Axios, AxiosInstance } from 'axios';
|
||||
import assign from 'lodash.assign';
|
||||
import { ApiToken, LoginSubmit, Measure, MeasureConfig, Measurement, MeasurementMeta, User } from '@/models';
|
||||
import { Logger, logService } from '@/services/logging';
|
||||
import merge from 'lodash.merge';
|
||||
|
||||
export class PmApiClient {
|
||||
private http: AxiosInstance;
|
||||
@ -132,16 +132,18 @@ export class PmApiClient {
|
||||
: Promise<Array<Measurement<MeasurementMeta>>> {
|
||||
|
||||
const resp = await this.http.get(`/measure/${measureSlug}`);
|
||||
return resp.data;
|
||||
return resp.data.map(this.fromMeasurementDTO);
|
||||
}
|
||||
|
||||
public async createMeasurement<T extends MeasurementMeta>(
|
||||
public async createMeasurement(
|
||||
measureSlug: string,
|
||||
measurement: Measurement<MeasureConfig>)
|
||||
: Promise<Measurement<T>> {
|
||||
measurement: Measurement<MeasurementMeta>)
|
||||
: Promise<Measurement<MeasurementMeta>> {
|
||||
|
||||
const resp = await this.http.post(`/measure/${measureSlug}`, measurement);
|
||||
return resp.data;
|
||||
const resp = await this.http.post(
|
||||
`/measure/${measureSlug}`,
|
||||
this.toMeasurementDTO(measurement));
|
||||
return this.fromMeasurementDTO(resp.data);
|
||||
}
|
||||
|
||||
public async getMeasurement(
|
||||
@ -151,7 +153,7 @@ export class PmApiClient {
|
||||
|
||||
const resp = await this.http
|
||||
.get(`/measure/${measureSlug}/${measurementId}`);
|
||||
return resp.data;
|
||||
return this.fromMeasurementDTO(resp.data);
|
||||
}
|
||||
|
||||
public async updateMeasurement(
|
||||
@ -159,9 +161,10 @@ export class PmApiClient {
|
||||
measurement: Measurement<MeasurementMeta>)
|
||||
: Promise<Measurement<MeasurementMeta>> {
|
||||
|
||||
const resp = await this.http
|
||||
.put(`/measure/${measureSlug}/${measurement.id}`, measurement);
|
||||
return resp.data;
|
||||
const resp = await this.http.put(
|
||||
`/measure/${measureSlug}/${measurement.id}`,
|
||||
this.toMeasurementDTO(measurement));
|
||||
return this.fromMeasurementDTO(resp.data);
|
||||
}
|
||||
|
||||
public async deleteMeasurement(
|
||||
@ -173,6 +176,15 @@ export class PmApiClient {
|
||||
.delete(`/measure/${measureSlug}/${measurementId}`);
|
||||
return true;
|
||||
}
|
||||
|
||||
private fromMeasurementDTO(dto: any): Measurement<MeasurementMeta> {
|
||||
return assign({}, dto, { timestamp: new Date(dto.timestamp) });
|
||||
}
|
||||
|
||||
private toMeasurementDTO(measurement: Measurement<MeasurementMeta>): object {
|
||||
return assign({}, measurement, { timestamp: measurement.timestamp.toISOString() });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const api = new PmApiClient(process.env.VUE_APP_PM_API_BASE);
|
||||
|
Reference in New Issue
Block a user