/* tslint:disable */ /* eslint-disable */ /** * Geins Management API * Geins Management API is a RESTful api that powers your applications and helps you manage your Geins services. Geins provides an easy-to-use and scalable solution for managing all aspects of an online store, from product listings and customer information to order processing and payment transactions. :::tip Tip With this API, you can build custom applications and integrate with third-party systems, feeds, dashboards and other bussiness logic apps. ::: ## Getting started Once you have created an account, you can start using the Management API by creating an `API User`. You can create as many API users as you need. Each `API user` is connected to a specific account so you can keep track of operations and manage keys. You can find all your API credentials in `Geins Merchant Center`. ### Fast track Use one of our [SDKs](https://docs.geins.io/docs/sdk/introduction) to get started quickly. The SDKs are available for the most popular programming languages and frameworks. Or, if you prefer to just take it for a test run: [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553?action=collection%2Ffork&collection-url=entityId%3D25895885-aaf6598f-1a7c-4949-85d7-ba846c42d553%26entityType%3Dcollection%26workspaceId%3Da2a179ce-158e-46b0-8d06-e9640f45112c) ### Authentication Two authentication methods are required: - `Basic Auth` - `API Key` All API credentials can be found in `Geins Merchant Center`. #### Basic Auth A Basic auth `Authorization` header needs to be included in every request. The value should be `Basic ` where `` is the Base64 encoding of your `API username` and `API password` joined by a single colon `:`. See [Wikipedia](https://en.wikipedia.org/wiki/Basic_access_authentication) for more information on Basic auth. #### API Key An `X-ApiKey` header needs to be included in every request. This header should contain the value of your `API key`. #### Example ```bash curl -X GET \"https://mgmtapi.geins.io/API/Market/List\" \\ -H \"Authorization: Basic [USER-CREDENTIALS-BASE64-ENCODED]\" \\ -H \"X-ApiKey: [API-KEY]\" ``` * * The version of the OpenAPI document: v1.10.1 * * * 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 type { BaseEnvelope, EnvelopeInt, EnvelopeListShippingModelsReadParcelGroup, ShippingModelsParcelGroupOptions, ShippingModelsParcelGroupQuery, ShippingModelsShippingOption, ShippingModelsShippingQuery, } from '../models'; import { BaseEnvelopeFromJSON, BaseEnvelopeToJSON, EnvelopeIntFromJSON, EnvelopeIntToJSON, EnvelopeListShippingModelsReadParcelGroupFromJSON, EnvelopeListShippingModelsReadParcelGroupToJSON, ShippingModelsParcelGroupOptionsFromJSON, ShippingModelsParcelGroupOptionsToJSON, ShippingModelsParcelGroupQueryFromJSON, ShippingModelsParcelGroupQueryToJSON, ShippingModelsShippingOptionFromJSON, ShippingModelsShippingOptionToJSON, ShippingModelsShippingQueryFromJSON, ShippingModelsShippingQueryToJSON, } from '../models'; export interface CaptureParcelGroupRequest { parcelGroupId: number; } export interface CreateParcelGroupRequest { parcelGroupOptions: ShippingModelsParcelGroupOptions; } export interface DeliverParcelGroupRequest { parcelGroupId: number; sendDeliveryEmail?: boolean; } export interface QueryParcelGroupsRequest { parcelGroupQuery: ShippingModelsParcelGroupQuery; } export interface QueryShippingOptionsRequest { shippingQuery: ShippingModelsShippingQuery; } /** * */ export class ShippingApi extends runtime.BaseAPI { /** * Creates captures for a parcel group and signals capture events for them. * Capture parcel group */ async captureParcelGroupRaw(requestParameters: CaptureParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.parcelGroupId === null || requestParameters.parcelGroupId === undefined) { throw new runtime.RequiredError('parcelGroupId','Required parameter requestParameters.parcelGroupId was null or undefined when calling captureParcelGroup.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Shipping/ParcelGroup/{parcelGroupId}/Capture`.replace(`{${"parcelGroupId"}}`, encodeURIComponent(String(requestParameters.parcelGroupId))), method: 'PUT', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Creates captures for a parcel group and signals capture events for them. * Capture parcel group */ async captureParcelGroup(requestParameters: CaptureParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.captureParcelGroupRaw(requestParameters, initOverrides); return await response.value(); } /** * Creates a new parcel group. * Create parcel group */ async createParcelGroupRaw(requestParameters: CreateParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.parcelGroupOptions === null || requestParameters.parcelGroupOptions === undefined) { throw new runtime.RequiredError('parcelGroupOptions','Required parameter requestParameters.parcelGroupOptions was null or undefined when calling createParcelGroup.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Shipping/ParcelGroup`, method: 'POST', headers: headerParameters, query: queryParameters, body: ShippingModelsParcelGroupOptionsToJSON(requestParameters.parcelGroupOptions), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeIntFromJSON(jsonValue)); } /** * Creates a new parcel group. * Create parcel group */ async createParcelGroup(requestParameters: CreateParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.createParcelGroupRaw(requestParameters, initOverrides); return await response.value(); } /** * Marks a parcel group as delivered. Does not signal capture events. * Deliver parcel group */ async deliverParcelGroupRaw(requestParameters: DeliverParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.parcelGroupId === null || requestParameters.parcelGroupId === undefined) { throw new runtime.RequiredError('parcelGroupId','Required parameter requestParameters.parcelGroupId was null or undefined when calling deliverParcelGroup.'); } const queryParameters: any = {}; if (requestParameters.sendDeliveryEmail !== undefined) { queryParameters['sendDeliveryEmail'] = requestParameters.sendDeliveryEmail; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Shipping/ParcelGroup/{parcelGroupId}/Deliver`.replace(`{${"parcelGroupId"}}`, encodeURIComponent(String(requestParameters.parcelGroupId))), method: 'PUT', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => BaseEnvelopeFromJSON(jsonValue)); } /** * Marks a parcel group as delivered. Does not signal capture events. * Deliver parcel group */ async deliverParcelGroup(requestParameters: DeliverParcelGroupRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.deliverParcelGroupRaw(requestParameters, initOverrides); return await response.value(); } /** * Queries parcel groups. * Query parcel groups */ async queryParcelGroupsRaw(requestParameters: QueryParcelGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.parcelGroupQuery === null || requestParameters.parcelGroupQuery === undefined) { throw new runtime.RequiredError('parcelGroupQuery','Required parameter requestParameters.parcelGroupQuery was null or undefined when calling queryParcelGroups.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Shipping/ParcelGroup/Query`, method: 'POST', headers: headerParameters, query: queryParameters, body: ShippingModelsParcelGroupQueryToJSON(requestParameters.parcelGroupQuery), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => EnvelopeListShippingModelsReadParcelGroupFromJSON(jsonValue)); } /** * Queries parcel groups. * Query parcel groups */ async queryParcelGroups(requestParameters: QueryParcelGroupsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.queryParcelGroupsRaw(requestParameters, initOverrides); return await response.value(); } /** * Query shipping options */ async queryShippingOptionsRaw(requestParameters: QueryShippingOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters.shippingQuery === null || requestParameters.shippingQuery === undefined) { throw new runtime.RequiredError('shippingQuery','Required parameter requestParameters.shippingQuery was null or undefined when calling queryShippingOptions.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["X-ApiKey"] = this.configuration.apiKey("X-ApiKey"); // apiKey authentication } if (this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } const response = await this.request({ path: `/API/Shipping/Query`, method: 'POST', headers: headerParameters, query: queryParameters, body: ShippingModelsShippingQueryToJSON(requestParameters.shippingQuery), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(ShippingModelsShippingOptionFromJSON)); } /** * Query shipping options */ async queryShippingOptions(requestParameters: QueryShippingOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.queryShippingOptionsRaw(requestParameters, initOverrides); return await response.value(); } }