From 6f94e3c7248b9596682c21b18fd82aac0f26d9d8 Mon Sep 17 00:00:00 2001 From: Eric Schultz Date: Mon, 1 Oct 2018 15:31:57 -0500 Subject: [PATCH] Add legacy put donation api --- javascripts/src/lib/api/put_donation.ts | 100 ++++++++++++++++++++++++ javascripts/src/lib/apis.ts | 3 +- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 javascripts/src/lib/api/put_donation.ts diff --git a/javascripts/src/lib/api/put_donation.ts b/javascripts/src/lib/api/put_donation.ts new file mode 100644 index 00000000..c1cd81cc --- /dev/null +++ b/javascripts/src/lib/api/put_donation.ts @@ -0,0 +1,100 @@ +// License: LGPL-3.0-or-later +import * as $ from 'jquery'; +import {Configuration} from "../../../api/configuration"; + +export class PutDonation { + protected basePath = '/'; + public defaultHeaders: Array = []; + public defaultExtraJQueryAjaxSettings?: JQueryAjaxSettings = null; + public configuration: Configuration = new Configuration(); + + constructor(basePath?: string, configuration?: Configuration, defaultExtraJQueryAjaxSettings?: JQueryAjaxSettings) { + if (basePath) { + this.basePath = basePath; + } + if (configuration) { + this.configuration = configuration; + } + if (defaultExtraJQueryAjaxSettings) { + this.defaultExtraJQueryAjaxSettings = defaultExtraJQueryAjaxSettings; + } + } + + public putDonation(donation: UpdateDonationModel, nonprofitId: number, extraJQueryAjaxSettings?: JQueryAjaxSettings): Promise { + let localVarPath = `${this.basePath}nonprofits/${nonprofitId}/donations/${donation.id}`; + + let queryParameters: any = {}; + let headerParams: any = {}; + // verify required parameter 'nonprofit' is not null or undefined + if (donation === null || donation === undefined) { + throw new Error('Required parameter nonprofit was null or undefined when calling postNonprofit.'); + } + + + localVarPath = localVarPath + "?" + $.param(queryParameters); + // to determine the Content-Type header + let consumes: string[] = [ + 'application/json' + ]; + + // to determine the Accept header + let produces: string[] = [ + 'application/json' + ]; + + + headerParams['Content-Type'] = 'application/json'; + + let requestOptions: JQueryAjaxSettings = { + url: localVarPath, + type: 'PUT', + headers: headerParams, + processData: false + }; + + requestOptions.data = JSON.stringify({donation:donation.donation}); + if (headerParams['Content-Type']) { + requestOptions.contentType = headerParams['Content-Type']; + } + + if (extraJQueryAjaxSettings) { + requestOptions = (Object).assign(requestOptions, extraJQueryAjaxSettings); + } + + if (this.defaultExtraJQueryAjaxSettings) { + requestOptions = (Object).assign(requestOptions, this.defaultExtraJQueryAjaxSettings); + } + + let dfd = $.Deferred(); + $.ajax(requestOptions).then( + (data: any, textStatus: string, jqXHR: JQueryXHR) => + dfd.resolve(jqXHR, data), + (xhr: JQueryXHR, textStatus: string, errorThrown: string) => { + + + dfd.reject(xhr.responseJSON) + + } + ); + return dfd.promise(); + } +} + + +interface UpdateDonationModelData { + designation?:string + dedication?:string + comment?:string + campaign_id:string + event_id: string + + gross_amount?: number + fee_total?: number + check_number?:string + date?:string +} + +export interface UpdateDonationModel { + id:number + donation: UpdateDonationModelData +} \ No newline at end of file diff --git a/javascripts/src/lib/apis.ts b/javascripts/src/lib/apis.ts index 74b1b157..a2dcc194 100644 --- a/javascripts/src/lib/apis.ts +++ b/javascripts/src/lib/apis.ts @@ -1,4 +1,5 @@ // License: LGPL-3.0-or-later import {WebUserSignInOut} from "./api/sign_in"; +import {PutDonation} from './api/put_donation'; -export const APIS = [WebUserSignInOut] \ No newline at end of file +export const APIS = [WebUserSignInOut, PutDonation] \ No newline at end of file