cwmsjs
Version:
CWMS Data API Library for JavaScript/TypeScript created with OpenAPI generator for use with browser webapps
308 lines (247 loc) • 10.9 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* CWMS Data API
* CWMS REST API for Data Retrieval
*
* The version of the OpenAPI document: 2.4.0-2026.3.16
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import * as runtime from '../runtime';
import {
CdaError,
CdaErrorFromJSON,
CdaErrorToJSON,
CwmsIdTimeExtentsEntry,
CwmsIdTimeExtentsEntryFromJSON,
CwmsIdTimeExtentsEntryToJSON,
Measurement,
MeasurementFromJSON,
MeasurementToJSON,
} from '../models';
export interface DeleteMeasurementsWithLocationIdRequest {
locationId: string;
office: string;
begin: string;
end: string;
timezone?: string;
minNumber?: string;
maxNumber?: string;
}
export interface GetMeasurementsRequest {
officeMask?: string;
idMask?: string;
minNumber?: string;
maxNumber?: string;
begin?: string;
end?: string;
timezone?: string;
minHeight?: string;
maxHeight?: string;
minFlow?: string;
maxFlow?: string;
agency?: string;
quality?: string;
unitSystem?: string;
}
export interface GetMeasurementsTimeExtentsRequest {
officeMask?: string;
}
export interface PostMeasurementsRequest {
measurement: Array<Measurement>;
failIfExists?: boolean;
}
/**
*
*/
export class MeasurementsApi extends runtime.BaseAPI {
/**
* Delete an existing measurement.
* Delete measurements with locationId
*/
async deleteMeasurementsWithLocationIdRaw(requestParameters: DeleteMeasurementsWithLocationIdRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
if (requestParameters.locationId === null || requestParameters.locationId === undefined) {
throw new runtime.RequiredError('locationId','Required parameter requestParameters.locationId was null or undefined when calling deleteMeasurementsWithLocationId.');
}
if (requestParameters.office === null || requestParameters.office === undefined) {
throw new runtime.RequiredError('office','Required parameter requestParameters.office was null or undefined when calling deleteMeasurementsWithLocationId.');
}
if (requestParameters.begin === null || requestParameters.begin === undefined) {
throw new runtime.RequiredError('begin','Required parameter requestParameters.begin was null or undefined when calling deleteMeasurementsWithLocationId.');
}
if (requestParameters.end === null || requestParameters.end === undefined) {
throw new runtime.RequiredError('end','Required parameter requestParameters.end was null or undefined when calling deleteMeasurementsWithLocationId.');
}
const queryParameters: any = {};
if (requestParameters.office !== undefined) {
queryParameters['office'] = requestParameters.office;
}
if (requestParameters.begin !== undefined) {
queryParameters['begin'] = requestParameters.begin;
}
if (requestParameters.end !== undefined) {
queryParameters['end'] = requestParameters.end;
}
if (requestParameters.timezone !== undefined) {
queryParameters['timezone'] = requestParameters.timezone;
}
if (requestParameters.minNumber !== undefined) {
queryParameters['min-number'] = requestParameters.minNumber;
}
if (requestParameters.maxNumber !== undefined) {
queryParameters['max-number'] = requestParameters.maxNumber;
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // ApiKey authentication
}
const response = await this.request({
path: `/measurements/{location-id}`.replace(`{${"location-id"}}`, encodeURIComponent(String(requestParameters.locationId))),
method: 'DELETE',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Delete an existing measurement.
* Delete measurements with locationId
*/
async deleteMeasurementsWithLocationId(requestParameters: DeleteMeasurementsWithLocationIdRequest, initOverrides?: RequestInit): Promise<void> {
await this.deleteMeasurementsWithLocationIdRaw(requestParameters, initOverrides);
}
/**
* Returns matching measurement data.
* Get measurements
*/
async getMeasurementsRaw(requestParameters: GetMeasurementsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Measurement>>> {
const queryParameters: any = {};
if (requestParameters.officeMask !== undefined) {
queryParameters['office-mask'] = requestParameters.officeMask;
}
if (requestParameters.idMask !== undefined) {
queryParameters['id-mask'] = requestParameters.idMask;
}
if (requestParameters.minNumber !== undefined) {
queryParameters['min-number'] = requestParameters.minNumber;
}
if (requestParameters.maxNumber !== undefined) {
queryParameters['max-number'] = requestParameters.maxNumber;
}
if (requestParameters.begin !== undefined) {
queryParameters['begin'] = requestParameters.begin;
}
if (requestParameters.end !== undefined) {
queryParameters['end'] = requestParameters.end;
}
if (requestParameters.timezone !== undefined) {
queryParameters['timezone'] = requestParameters.timezone;
}
if (requestParameters.minHeight !== undefined) {
queryParameters['min-height'] = requestParameters.minHeight;
}
if (requestParameters.maxHeight !== undefined) {
queryParameters['max-height'] = requestParameters.maxHeight;
}
if (requestParameters.minFlow !== undefined) {
queryParameters['min-flow'] = requestParameters.minFlow;
}
if (requestParameters.maxFlow !== undefined) {
queryParameters['max-flow'] = requestParameters.maxFlow;
}
if (requestParameters.agency !== undefined) {
queryParameters['agency'] = requestParameters.agency;
}
if (requestParameters.quality !== undefined) {
queryParameters['quality'] = requestParameters.quality;
}
if (requestParameters.unitSystem !== undefined) {
queryParameters['unit-system'] = requestParameters.unitSystem;
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // ApiKey authentication
}
const response = await this.request({
path: `/measurements`,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(MeasurementFromJSON));
}
/**
* Returns matching measurement data.
* Get measurements
*/
async getMeasurements(requestParameters: GetMeasurementsRequest = {}, initOverrides?: RequestInit): Promise<Array<Measurement>> {
const response = await this.getMeasurementsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Returns matching downstream stream locations.
* Get measurements timeExtents
*/
async getMeasurementsTimeExtentsRaw(requestParameters: GetMeasurementsTimeExtentsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<CwmsIdTimeExtentsEntry>>> {
const queryParameters: any = {};
if (requestParameters.officeMask !== undefined) {
queryParameters['office-mask'] = requestParameters.officeMask;
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.apiKey) {
headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // ApiKey authentication
}
const response = await this.request({
path: `/measurements/time-extents`,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(CwmsIdTimeExtentsEntryFromJSON));
}
/**
* Returns matching downstream stream locations.
* Get measurements timeExtents
*/
async getMeasurementsTimeExtents(requestParameters: GetMeasurementsTimeExtentsRequest = {}, initOverrides?: RequestInit): Promise<Array<CwmsIdTimeExtentsEntry>> {
const response = await this.getMeasurementsTimeExtentsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Create new measurement(s).
* Post measurements
*/
async postMeasurementsRaw(requestParameters: PostMeasurementsRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>> {
if (requestParameters.measurement === null || requestParameters.measurement === undefined) {
throw new runtime.RequiredError('measurement','Required parameter requestParameters.measurement was null or undefined when calling postMeasurements.');
}
const queryParameters: any = {};
if (requestParameters.failIfExists !== undefined) {
queryParameters['fail-if-exists'] = requestParameters.failIfExists;
}
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json;version=1';
if (this.configuration && this.configuration.apiKey) {
headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // ApiKey authentication
}
const response = await this.request({
path: `/measurements`,
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: requestParameters.measurement.map(MeasurementToJSON),
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Create new measurement(s).
* Post measurements
*/
async postMeasurements(requestParameters: PostMeasurementsRequest, initOverrides?: RequestInit): Promise<void> {
await this.postMeasurementsRaw(requestParameters, initOverrides);
}
}