Commit changes

This commit is contained in:
2024-05-15 19:51:12 -05:00
parent 209d620a09
commit 1063a60814
2 changed files with 279 additions and 353 deletions

View File

@@ -1,81 +1,48 @@
// DO NOT EDIT: generated by fsdgenjs // DO NOT EDIT: generated by fsdgenjs
import { import { HttpClientUtility, IServiceResult, IHttpClientOptions } from 'facility-core';
HttpClientUtility, import { IOapApiV1Client, IGetApplicationsRequest, IGetApplicationsResponse, ICreateApplicationRequest, ICreateApplicationResponse, IGetApplicationRequest, IGetApplicationResponse, IUpdateApplicationRequest, IUpdateApplicationResponse, IApplication, IApplicationCreateSet, IApplicationChangeSet, IApplicationTermsCreateSet, IApplicationTerms, ApplicationStatus } from './oapApiV1ClientTypes';
type IServiceResult, export * from './oapApiV1ClientTypes';
type IHttpClientOptions,
} from "facility-core";
import type {
IOapApiV1Client,
IGetApplicationsRequest,
IGetApplicationsResponse,
ICreateApplicationRequest,
ICreateApplicationResponse,
IGetApplicationRequest,
IGetApplicationResponse,
IUpdateApplicationRequest,
IUpdateApplicationResponse,
IApplication,
IApplicationCreateSet,
IApplicationChangeSet,
IApplicationTermsCreateSet,
IApplicationTerms,
ApplicationStatus,
} from "./oapApiV1ClientTypes";
export * from "./oapApiV1ClientTypes";
/** Provides access to OapApiV1Client over HTTP via fetch. */ /** Provides access to OapApiV1Client over HTTP via fetch. */
export function createHttpClient({ export function createHttpClient({ fetch, baseUri }: IHttpClientOptions): IOapApiV1Client {
fetch,
baseUri,
}: IHttpClientOptions): IOapApiV1Client {
return new OapApiV1ClientHttpClient(fetch, baseUri); return new OapApiV1ClientHttpClient(fetch, baseUri);
} }
const { fetchResponse, createResponseError, createRequiredRequestFieldError } = const { fetchResponse, createResponseError, createRequiredRequestFieldError } = HttpClientUtility;
HttpClientUtility;
type IFetch = HttpClientUtility.IFetch; type IFetch = HttpClientUtility.IFetch;
type IFetchRequest = HttpClientUtility.IFetchRequest; type IFetchRequest = HttpClientUtility.IFetchRequest;
class OapApiV1ClientHttpClient implements IOapApiV1Client { class OapApiV1ClientHttpClient implements IOapApiV1Client {
constructor(fetch: IFetch, baseUri?: string) { constructor(fetch: IFetch, baseUri?: string) {
if (typeof fetch !== "function") { if (typeof fetch !== 'function') {
throw new TypeError("fetch must be a function."); throw new TypeError('fetch must be a function.');
} }
if (typeof baseUri === "undefined") { if (typeof baseUri === 'undefined') {
baseUri = "https://oaprotection.org/api/v1"; baseUri = 'https://oaprotection.org/api/v1';
} }
if (/[^\/]$/.test(baseUri)) { if (/[^\/]$/.test(baseUri)) {
baseUri += "/"; baseUri += '/';
} }
this._fetch = fetch; this._fetch = fetch;
this._baseUri = baseUri; this._baseUri = baseUri;
} }
/** Gets applications for the current user. */ /** Gets applications for the current user. */
public getApplications( public getApplications(request: IGetApplicationsRequest, context?: unknown): Promise<IServiceResult<IGetApplicationsResponse>> {
request: IGetApplicationsRequest, let uri = 'applications';
context?: unknown
): Promise<IServiceResult<IGetApplicationsResponse>> {
let uri = "applications";
const query: string[] = []; const query: string[] = [];
request.status == null || query.push("status=" + request.status); request.status == null || query.push('status=' + request.status);
request.limit == null || request.limit == null || query.push('limit=' + request.limit.toString());
query.push("limit=" + request.limit.toString()); request.nextToken == null || query.push('nextToken=' + encodeURIComponent(request.nextToken));
request.nextToken == null ||
query.push("nextToken=" + encodeURIComponent(request.nextToken));
if (query.length) { if (query.length) {
uri = uri + "?" + query.join("&"); uri = uri + '?' + query.join('&');
} }
const fetchRequest: IFetchRequest = { const fetchRequest: IFetchRequest = {
method: "GET", method: 'GET',
}; };
return fetchResponse( return fetchResponse(this._fetch, this._baseUri + uri, fetchRequest, context)
this._fetch, .then(result => {
this._baseUri + uri,
fetchRequest,
context
).then((result) => {
const status = result.response.status; const status = result.response.status;
let value: IGetApplicationsResponse | null = null; let value: IGetApplicationsResponse | null = null;
if (status === 200) { if (status === 200) {
@@ -84,96 +51,69 @@ class OapApiV1ClientHttpClient implements IOapApiV1Client {
} }
} }
if (!value) { if (!value) {
return createResponseError( return createResponseError(status, result.json) as IServiceResult<IGetApplicationsResponse>;
status,
result.json
) as IServiceResult<IGetApplicationsResponse>;
} }
return { value: value }; return { value: value };
}); });
} }
/** Creates a new application for the current user. */ /** Creates a new application for the current user. */
public createApplication( public createApplication(request: ICreateApplicationRequest, context?: unknown): Promise<IServiceResult<ICreateApplicationResponse>> {
request: ICreateApplicationRequest, const uri = 'applications/';
context?: unknown
): Promise<IServiceResult<ICreateApplicationResponse>> {
const uri = "applications/";
if (!request.applicationCreateSet) { if (!request.applicationCreateSet) {
return Promise.resolve( return Promise.resolve(createRequiredRequestFieldError('applicationCreateSet'));
createRequiredRequestFieldError("applicationCreateSet")
);
} }
const fetchRequest: IFetchRequest = { const fetchRequest: IFetchRequest = {
method: "POST", method: 'POST',
headers: { "Content-Type": "application/json" }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(request.applicationCreateSet), body: JSON.stringify(request.applicationCreateSet)
}; };
return fetchResponse( return fetchResponse(this._fetch, this._baseUri + uri, fetchRequest, context)
this._fetch, .then(result => {
this._baseUri + uri,
fetchRequest,
context
).then((result) => {
const status = result.response.status; const status = result.response.status;
let value: ICreateApplicationResponse | null = null; let value: ICreateApplicationResponse | null = null;
if (status === 200) { if (status === 200) {
if (result.json) { if (result.json) {
value = { value = { application: result.json } as ICreateApplicationResponse;
application: result.json,
} as ICreateApplicationResponse;
} }
} else if (status === 201) { }
else if (status === 201) {
value = {}; value = {};
} }
if (!value) { if (!value) {
return createResponseError( return createResponseError(status, result.json) as IServiceResult<ICreateApplicationResponse>;
status,
result.json
) as IServiceResult<ICreateApplicationResponse>;
} }
return { value: value }; return { value: value };
}); });
} }
/** Gets the specified application for the current user. */ /** Gets the specified application for the current user. */
public getApplication( public getApplication(request: IGetApplicationRequest, context?: unknown): Promise<IServiceResult<IGetApplicationResponse>> {
request: IGetApplicationRequest,
context?: unknown
): Promise<IServiceResult<IGetApplicationResponse>> {
const uriPartId = request.id != null && encodeURIComponent(request.id); const uriPartId = request.id != null && encodeURIComponent(request.id);
if (!uriPartId) { if (!uriPartId) {
return Promise.resolve(createRequiredRequestFieldError("id")); return Promise.resolve(createRequiredRequestFieldError('id'));
} }
const uri = `applications/${uriPartId}`; const uri = `applications/${uriPartId}`;
const fetchRequest: IFetchRequest = { const fetchRequest: IFetchRequest = {
method: "GET", method: 'GET',
}; };
return fetchResponse( return fetchResponse(this._fetch, this._baseUri + uri, fetchRequest, context)
this._fetch, .then(result => {
this._baseUri + uri,
fetchRequest,
context
).then((result) => {
const status = result.response.status; const status = result.response.status;
let value: IGetApplicationResponse | null = null; let value: IGetApplicationResponse | null = null;
if (status === 200) { if (status === 200) {
if (result.json) { if (result.json) {
value = { value = { application: result.json } as IGetApplicationResponse;
application: result.json,
} as IGetApplicationResponse;
} }
} else if (status === 304) { }
else if (status === 304) {
value = { notModified: true }; value = { notModified: true };
} }
if (!value) { if (!value) {
return createResponseError( return createResponseError(status, result.json) as IServiceResult<IGetApplicationResponse>;
status,
result.json
) as IServiceResult<IGetApplicationResponse>;
} }
let headerValue: string | null | undefined; let headerValue: string | null | undefined;
headerValue = result.response.headers.get("eTag"); headerValue = result.response.headers.get('eTag');
if (headerValue != null) { if (headerValue != null) {
value.eTag = headerValue; value.eTag = headerValue;
} }
@@ -182,45 +122,31 @@ class OapApiV1ClientHttpClient implements IOapApiV1Client {
} }
/** Updates the application. */ /** Updates the application. */
public updateApplication( public updateApplication(request: IUpdateApplicationRequest, context?: unknown): Promise<IServiceResult<IUpdateApplicationResponse>> {
request: IUpdateApplicationRequest,
context?: unknown
): Promise<IServiceResult<IUpdateApplicationResponse>> {
const uriPartId = request.id != null && encodeURIComponent(request.id); const uriPartId = request.id != null && encodeURIComponent(request.id);
if (!uriPartId) { if (!uriPartId) {
return Promise.resolve(createRequiredRequestFieldError("id")); return Promise.resolve(createRequiredRequestFieldError('id'));
} }
const uri = `applications/${uriPartId}`; const uri = `applications/${uriPartId}`;
if (!request.applicationChangeSet) { if (!request.applicationChangeSet) {
return Promise.resolve( return Promise.resolve(createRequiredRequestFieldError('applicationChangeSet'));
createRequiredRequestFieldError("applicationChangeSet")
);
} }
const fetchRequest: IFetchRequest = { const fetchRequest: IFetchRequest = {
method: "PATCH", method: 'PATCH',
headers: { "Content-Type": "application/json" }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(request.applicationChangeSet), body: JSON.stringify(request.applicationChangeSet)
}; };
return fetchResponse( return fetchResponse(this._fetch, this._baseUri + uri, fetchRequest, context)
this._fetch, .then(result => {
this._baseUri + uri,
fetchRequest,
context
).then((result) => {
const status = result.response.status; const status = result.response.status;
let value: IUpdateApplicationResponse | null = null; let value: IUpdateApplicationResponse | null = null;
if (status === 200) { if (status === 200) {
if (result.json) { if (result.json) {
value = { value = { application: result.json } as IUpdateApplicationResponse;
application: result.json,
} as IUpdateApplicationResponse;
} }
} }
if (!value) { if (!value) {
return createResponseError( return createResponseError(status, result.json) as IServiceResult<IUpdateApplicationResponse>;
status,
result.json
) as IServiceResult<IUpdateApplicationResponse>;
} }
return { value: value }; return { value: value };
}); });