From cbaa327e9093a688e2fec5ec0be7062b142bc6a1 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Mon, 6 Jan 2025 15:13:00 +0530 Subject: [PATCH 01/30] Initiated main repo --- ballerina/Package.md | 198 ++ ballerina/quotes.json | 1688 +++++++++++++++++ ballerina/quotes_service.bal | 111 ++ ballerina/tests/mock_service.bal | 59 + ballerina/tests/test.bal | 71 + ballerina/tests/tests.bal | 111 ++ ballerina/types.bal | 380 ++++ ballerina/utils.bal | 218 +++ docs/resources/authentication_1.png | Bin 0 -> 78927 bytes docs/resources/authentication_2.png | Bin 0 -> 140661 bytes docs/resources/authentication_3.png | Bin 0 -> 137222 bytes docs/resources/clientId_clientSecret.png | Bin 0 -> 122122 bytes docs/resources/create_app.png | Bin 0 -> 67423 bytes docs/resources/create_developer_account_1.png | Bin 0 -> 77336 bytes docs/resources/create_developer_account_2.png | Bin 0 -> 72419 bytes docs/resources/create_developer_account_3.png | Bin 0 -> 62985 bytes docs/resources/setup_auth_flow.png | Bin 0 -> 41731 bytes docs/spec/quotes.json | 1688 +++++++++++++++++ 18 files changed, 4524 insertions(+) create mode 100644 ballerina/quotes.json create mode 100644 ballerina/quotes_service.bal create mode 100644 ballerina/tests/mock_service.bal create mode 100644 ballerina/tests/test.bal create mode 100644 ballerina/tests/tests.bal create mode 100644 ballerina/types.bal create mode 100644 ballerina/utils.bal create mode 100644 docs/resources/authentication_1.png create mode 100644 docs/resources/authentication_2.png create mode 100644 docs/resources/authentication_3.png create mode 100644 docs/resources/clientId_clientSecret.png create mode 100644 docs/resources/create_app.png create mode 100644 docs/resources/create_developer_account_1.png create mode 100644 docs/resources/create_developer_account_2.png create mode 100644 docs/resources/create_developer_account_3.png create mode 100644 docs/resources/setup_auth_flow.png create mode 100644 docs/spec/quotes.json diff --git a/ballerina/Package.md b/ballerina/Package.md index bada2c1..eb8fd4d 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -2,14 +2,212 @@ [//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. + +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). + + ## Setup guide [//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. + +### Step 1: Create/Login to a HubSpot Developer Account + +If you have an account already, go to the [HubSpot developer portal](https://app.hubspot.com/) + +If you don't have a HubSpot Developer Account you can sign up to a free account [here](https://developers.hubspot.com/get-started) + +### Step 2 (Optional): Create a [Developer Test Account](https://developers.hubspot.com/beta-docs/getting-started/account-types#developer-test-accounts) under your account + +Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. + +**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** + +1. Go to Test Account section from the left sidebar. + + + +2. Click Create developer test account. + + Hubspot developer testacc2 + +3. In the dialogue box, give a name to your test account and click create. + + Hubspot developer testacc3 + +### Step 3: Create a HubSpot App under your account. + +1. In your developer account, navigate to the "Apps" section. Click on "Create App" + + Hubspot app creation 1 testacc3 + +2. Provide the necessary details, including the app name and description. + +### Step 4: Configure the Authentication Flow. + +1. Move to the Auth Tab. + + Hubspot app creation 2 testacc3 + +2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. + + `crm.lists.read` + + `crm.lists.write` + + `cms.membership.access_groups.write` + + Hubspot app creation 1 testacc3 + +4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. + + Hubspot app creation 1 testacc3 + +### Step 5: Get your Client ID and Client Secret + +- Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. + + Hubspot app creation 1 testacc3 + +### Step 6: Setup Authentication Flow + +Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: + +1. Create an authorization URL using the following format: + + ``` + https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= + ``` + + Replace the ``, `` and `` with your specific value. + + **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** + +2. Paste it in the browser and select your developer test account to intall the app when prompted. + + Hubspot app creation 1 testacc3 + +3. A code will be displayed in the browser. Copy the code. + + ``` + Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx + ``` + +4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. + + - Linux/macOS + + ```bash + curl --request POST \ + --url https://api.hubapi.com/oauth/v1/token \ + --header 'content-type: application/x-www-form-urlencoded' \ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + - Windows + + ```bash + curl --request POST ^ + --url https://api.hubapi.com/oauth/v1/token ^ + --header 'content-type: application/x-www-form-urlencoded' ^ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + This command will return the access token necessary for API calls. + + ```json + { + "token_type": "bearer", + "refresh_token": "", + "access_token": "", + "expires_in": 1800 + } + ``` + +5. Store the access token securely for use in your application. + + + ## Quickstart [//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) +To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: + +### Step 1: Import the module + +Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. + +```ballerina +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; +import ballerina/oauth2; +``` + +### Step 2: Instantiate a new connector + +1. Create a `Config.toml` file and, configure the obtained credentials in the above steps as follows: + + ```toml + clientId = + clientSecret = + refreshToken = + ``` + +2. Instantiate a `OAuth2RefreshTokenGrantConfig` with the obtained credentials and initialize the connector with it. + + ```ballerina + configurable string clientId = ?; + configurable string clientSecret = ?; + configurable string refreshToken = ?; + + OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER + }; + + final string serviceUrl = "https://api.hubapi.com"; + + final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + + ``` + +### Step 3: Invoke the connector operation + +Now, utilize the available connector operations. A sample usecase is shown below. + +#### Create a CRM List + +```ballerina +public function main() returns error? { + http:Client hubspotClient = check new ("https://api.hubapi.com", { + headers: { + "Authorization": "Bearer " + } + }); + + // Define the payload for creating a quote + json payload = { + "name": "Test Quote", + "hs_expiration_date": "2025-12-31", + "hs_status": "DRAFT", + "hs_owner_id": "", + "hs_currency": "USD", + "hs_total_amount": 1500, + "hs_associated_deal_id": "" + }; + + // Send the request to create a quote + http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + + // Print the response + io:println("Response: ", response.getJsonPayload()); +} +``` + ## Examples The `HubSpot CRM Commerce Quotes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-hubspot.crm.commerce.quotes/tree/main/examples/), covering the following use cases: diff --git a/ballerina/quotes.json b/ballerina/quotes.json new file mode 100644 index 0000000..24db5bf --- /dev/null +++ b/ballerina/quotes.json @@ -0,0 +1,1688 @@ +{ + "openapi" : "3.0.1", + "info" : { + "title" : "Quotes", + "description" : "", + "version" : "v3", + "x-hubspot-product-tier-requirements" : { + "marketing" : "FREE", + "sales" : "FREE", + "service" : "FREE", + "cms" : "FREE" + }, + "x-hubspot-documentation-banner" : "NONE", + "x-hubspot-api-use-case" : "Create a contract proposal for a customer who is interested in signing up for one of your annual SEO auditing service packages.", + "x-hubspot-related-documentation" : [ { + "name" : "Quotes guide", + "url" : "https://developers.hubspot.com/beta-docs/guides/api/crm/commerce/quotes" + } ], + "x-hubspot-introduction" : "Use the quotes API to create and manage sales quotes for sharing pricing information with potential buyers." + }, + "servers" : [ { + "url" : "https://api.hubapi.com" + } ], + "tags" : [ { + "name" : "Batch" + }, { + "name" : "Basic" + }, { + "name" : "Search" + } ], + "paths" : { + "/crm/v3/objects/quotes/batch/read" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Read a batch of quotes by internal ID, or unique property values", + "operationId" : "post-/crm/v3/objects/quotes/batch/read_read", + "parameters" : [ { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchReadInputSimplePublicObjectId" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + } + }, + "/crm/v3/objects/quotes/{quoteId}" : { + "get" : { + "tags" : [ "Basic" ], + "summary" : "Read", + "description" : "Read an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId" : "get-/crm/v3/objects/quotes/{quoteId}_getById", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "properties", + "in" : "query", + "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "propertiesWithHistory", + "in" : "query", + "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "associations", + "in" : "query", + "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "idProperty", + "in" : "query", + "description" : "The name of a property whose values are unique for this object type", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + }, + "delete" : { + "tags" : [ "Basic" ], + "summary" : "Archive", + "description" : "Move an Object identified by `{quoteId}` to the recycling bin.", + "operationId" : "delete-/crm/v3/objects/quotes/{quoteId}_archive", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "204" : { + "description" : "No content", + "content" : { } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + }, + "patch" : { + "tags" : [ "Basic" ], + "summary" : "Update", + "description" : "Perform a partial update of an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.", + "operationId" : "patch-/crm/v3/objects/quotes/{quoteId}_update", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "idProperty", + "in" : "query", + "description" : "The name of a property whose values are unique for this object type", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectInput" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/archive" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Archive a batch of quotes by ID", + "operationId" : "post-/crm/v3/objects/quotes/batch/archive_archive", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectId" + } + } + }, + "required" : true + }, + "responses" : { + "204" : { + "description" : "No content", + "content" : { } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/create" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Create a batch of quotes", + "operationId" : "post-/crm/v3/objects/quotes/batch/create_create", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectInputForCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/update" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Update a batch of quotes by internal ID, or unique property values", + "operationId" : "post-/crm/v3/objects/quotes/batch/update_update", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInput" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes" : { + "get" : { + "tags" : [ "Basic" ], + "summary" : "List", + "description" : "Read a page of quotes. Control what is returned via the `properties` query param.", + "operationId" : "get-/crm/v3/objects/quotes_getPage", + "parameters" : [ { + "name" : "limit", + "in" : "query", + "description" : "The maximum number of results to display per page.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "after", + "in" : "query", + "description" : "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "properties", + "in" : "query", + "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "propertiesWithHistory", + "in" : "query", + "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "associations", + "in" : "query", + "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + }, + "post" : { + "tags" : [ "Basic" ], + "summary" : "Create", + "description" : "Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.", + "operationId" : "post-/crm/v3/objects/quotes_create", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/upsert" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Create or update a batch of quotes by unique property values", + "description" : "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId" : "post-/crm/v3/objects/quotes/batch/upsert_upsert", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInputUpsert" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/search" : { + "post" : { + "tags" : [ "Search" ], + "operationId" : "post-/crm/v3/objects/quotes/search_doSearch", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PublicObjectSearchRequest" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CollectionResponseWithTotalSimplePublicObjectForwardPaging" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ], + "x-hubspot-rate-limit-exemptions" : [ "ten-secondly" ] + } + } + }, + "components" : { + "schemas" : { + "StandardError" : { + "required" : [ "category", "context", "errors", "links", "message", "status" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "object", + "properties" : { } + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "id" : { + "type" : "string" + }, + "category" : { + "type" : "string" + }, + "message" : { + "type" : "string" + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ErrorDetail" + } + }, + "status" : { + "type" : "string" + } + } + }, + "CollectionResponseAssociatedId" : { + "required" : [ "results" ], + "type" : "object", + "properties" : { + "paging" : { + "$ref" : "#/components/schemas/Paging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AssociatedId" + } + } + } + }, + "PublicAssociationsForObject" : { + "required" : [ "to", "types" ], + "type" : "object", + "properties" : { + "types" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AssociationSpec" + } + }, + "to" : { + "$ref" : "#/components/schemas/PublicObjectId" + } + } + }, + "BatchResponseSimplePublicObject" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "FilterGroup" : { + "required" : [ "filters" ], + "type" : "object", + "properties" : { + "filters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Filter" + } + } + } + }, + "ErrorDetail" : { + "required" : [ "message" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "string", + "description" : "A specific category that contains more specific detail about the error" + }, + "code" : { + "type" : "string", + "description" : "The status code associated with the error detail" + }, + "in" : { + "type" : "string", + "description" : "The name of the field or parameter in which the error was found." + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : "Context about the error condition", + "example" : { + "missingScopes" : [ "scope1", "scope2" ] + } + }, + "message" : { + "type" : "string", + "description" : "A human readable message describing the error along with remediation steps where appropriate" + } + } + }, + "ForwardPaging" : { + "type" : "object", + "properties" : { + "next" : { + "$ref" : "#/components/schemas/NextPage" + } + } + }, + "SimplePublicObjectId" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + } + } + }, + "BatchResponseSimplePublicUpsertObjectWithErrors" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "numErrors" : { + "type" : "integer", + "format" : "int32" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicUpsertObject" + } + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StandardError" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "BatchReadInputSimplePublicObjectId" : { + "required" : [ "inputs", "properties", "propertiesWithHistory" ], + "type" : "object", + "properties" : { + "propertiesWithHistory" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "idProperty" : { + "type" : "string" + }, + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectId" + } + }, + "properties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "BatchResponseSimplePublicUpsertObject" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicUpsertObject" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "BatchInputSimplePublicObjectId" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectId" + } + } + } + }, + "ValueWithTimestamp" : { + "required" : [ "sourceType", "timestamp", "value" ], + "type" : "object", + "properties" : { + "sourceId" : { + "type" : "string" + }, + "sourceType" : { + "type" : "string" + }, + "sourceLabel" : { + "type" : "string" + }, + "updatedByUserId" : { + "type" : "integer", + "format" : "int32" + }, + "value" : { + "type" : "string" + }, + "timestamp" : { + "type" : "string", + "format" : "date-time" + } + } + }, + "BatchInputSimplePublicObjectBatchInputUpsert" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectBatchInputUpsert" + } + } + } + }, + "CollectionResponseWithTotalSimplePublicObjectForwardPaging" : { + "required" : [ "results", "total" ], + "type" : "object", + "properties" : { + "total" : { + "type" : "integer", + "format" : "int32" + }, + "paging" : { + "$ref" : "#/components/schemas/ForwardPaging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "SimplePublicObject" : { + "required" : [ "createdAt", "id", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean", + "example" : false + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string", + "example" : "512" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "nullable" : true + }, + "example" : { + "property_date" : "1572480000000", + "property_radio" : "option_1", + "property_number" : "17", + "property_string" : "value", + "property_checkbox" : "false", + "property_dropdown" : "choice_b", + "property_multiple_checkboxes" : "chocolate;strawberry" + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + }, + "example" : { + "id" : "512", + "properties" : { + "hs_createdate" : "2019-10-30T03:30:17.883Z", + "hs_expiration_date" : "2020-09-06T02:43:14.491Z", + "hs_quote_amount" : "3000.00", + "hs_quote_number" : "20200916-092813983", + "hs_status" : "PENDING_APPROVAL", + "hs_terms" : "discount provided, two year term with customer", + "hs_title" : "Services Proposal", + "hubspot_owner_id" : "910901" + }, + "createdAt" : "2019-10-30T03:30:17.883Z", + "updatedAt" : "2019-12-07T16:50:06.678Z", + "archived" : false + } + }, + "PublicObjectId" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + } + } + }, + "Paging" : { + "type" : "object", + "properties" : { + "next" : { + "$ref" : "#/components/schemas/NextPage" + }, + "prev" : { + "$ref" : "#/components/schemas/PreviousPage" + } + } + }, + "PublicObjectSearchRequest" : { + "type" : "object", + "properties" : { + "query" : { + "type" : "string" + }, + "limit" : { + "type" : "integer", + "format" : "int32" + }, + "after" : { + "type" : "string" + }, + "sorts" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "properties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "filterGroups" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FilterGroup" + } + } + } + }, + "Error" : { + "required" : [ "category", "correlationId", "message" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "string", + "description" : "A specific category that contains more specific detail about the error" + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : "Context about the error condition", + "example" : { + "missingScopes" : [ "scope1", "scope2" ], + "invalidPropertyName" : [ "propertyValue" ] + } + }, + "correlationId" : { + "type" : "string", + "description" : "A unique identifier for the request. Include this value with any error reports or support tickets", + "format" : "uuid", + "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + }, + "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", + "example" : { + "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" + } + }, + "message" : { + "type" : "string", + "description" : "A human readable message describing the error along with remediation steps where appropriate", + "example" : "Invalid input (details will vary based on the error)" + }, + "category" : { + "type" : "string", + "description" : "The error category", + "example" : "VALIDATION_ERROR" + }, + "errors" : { + "type" : "array", + "description" : "further information about the error", + "items" : { + "$ref" : "#/components/schemas/ErrorDetail" + } + } + }, + "example" : { + "message" : "Invalid input (details will vary based on the error)", + "correlationId" : "aeb5f871-7f07-4993-9211-075dc63e7cbf", + "category" : "VALIDATION_ERROR", + "links" : { + "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" + } + } + }, + "SimplePublicObjectBatchInputUpsert" : { + "required" : [ "id", "properties" ], + "type" : "object", + "properties" : { + "idProperty" : { + "type" : "string" + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + } + }, + "BatchResponseSimplePublicObjectWithErrors" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "numErrors" : { + "type" : "integer", + "format" : "int32" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StandardError" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "SimplePublicObjectInput" : { + "required" : [ "properties" ], + "type" : "object", + "properties" : { + "objectWriteTraceId" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + }, + "example" : { + "property_date" : "1572480000000", + "property_radio" : "option_1", + "property_number" : "17", + "property_string" : "value", + "property_checkbox" : "false", + "property_dropdown" : "choice_b", + "property_multiple_checkboxes" : "chocolate;strawberry" + } + } + }, + "example" : { + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + }, + "associations" : [ { + "to" : { + "id" : "101" + }, + "types" : [ { + "associationCategory" : "HUBSPOT_DEFINED", + "associationTypeId" : 2 + } ] + } ] + } + }, + "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" : { + "required" : [ "results" ], + "type" : "object", + "properties" : { + "paging" : { + "$ref" : "#/components/schemas/ForwardPaging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "AssociationSpec" : { + "required" : [ "associationCategory", "associationTypeId" ], + "type" : "object", + "properties" : { + "associationCategory" : { + "type" : "string", + "enum" : [ "HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED" ] + }, + "associationTypeId" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "SimplePublicObjectWithAssociations" : { + "required" : [ "createdAt", "id", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "associations" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/CollectionResponseAssociatedId" + } + }, + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean" + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "nullable" : true + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + }, + "example" : { + "properties" : { + "hs_createdate" : "2019-10-30T03:30:17.883Z", + "hs_expiration_date" : "2020-09-06T02:43:14.491Z", + "hs_quote_amount" : "3000.00", + "hs_quote_number" : "20200916-092813983", + "hs_status" : "PENDING_APPROVAL", + "hs_terms" : "discount provided, two year term with customer", + "hs_title" : "Services Proposal", + "hubspot_owner_id" : "910901" + } + } + }, + "Filter" : { + "required" : [ "operator", "propertyName" ], + "type" : "object", + "properties" : { + "highValue" : { + "type" : "string" + }, + "propertyName" : { + "type" : "string" + }, + "values" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "value" : { + "type" : "string" + }, + "operator" : { + "type" : "string", + "description" : "null", + "enum" : [ "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN" ] + } + } + }, + "BatchInputSimplePublicObjectBatchInput" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectBatchInput" + } + } + } + }, + "BatchInputSimplePublicObjectInputForCreate" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" + } + } + } + }, + "PreviousPage" : { + "required" : [ "before" ], + "type" : "object", + "properties" : { + "before" : { + "type" : "string" + }, + "link" : { + "type" : "string" + } + } + }, + "SimplePublicUpsertObject" : { + "required" : [ "createdAt", "id", "new", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean" + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "new" : { + "type" : "boolean" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + } + }, + "SimplePublicObjectBatchInput" : { + "required" : [ "id", "properties" ], + "type" : "object", + "properties" : { + "idProperty" : { + "type" : "string", + "example" : "my_unique_property_name" + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + }, + "example" : { + "id" : "1", + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + } + } + }, + "AssociatedId" : { + "required" : [ "id", "type" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + }, + "NextPage" : { + "required" : [ "after" ], + "type" : "object", + "properties" : { + "link" : { + "type" : "string", + "example" : "?after=NTI1Cg%3D%3D" + }, + "after" : { + "type" : "string", + "example" : "NTI1Cg%3D%3D" + } + }, + "example" : { + "after" : "NTI1Cg%3D%3D", + "link" : "?after=NTI1Cg%3D%3D" + } + }, + "SimplePublicObjectInputForCreate" : { + "required" : [ "associations", "properties" ], + "type" : "object", + "properties" : { + "associations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PublicAssociationsForObject" + } + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + }, + "example" : { + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + }, + "associations" : [ { + "to" : { + "id" : "101" + }, + "types" : [ { + "associationCategory" : "HUBSPOT_DEFINED", + "associationTypeId" : 2 + } ] + } ] + } + } + }, + "responses" : { + "Error" : { + "description" : "An error occurred.", + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + }, + "securitySchemes" : { + "oauth2_legacy" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", + "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", + "scopes" : { + "crm.objects.goals.read" : "Read goals", + "tickets" : "Read and write tickets", + "crm.objects.custom.read" : "View custom object records", + "e-commerce" : "e-commerce", + "crm.objects.custom.write" : "Change custom object records", + "media_bridge.read" : "Read media and media events" + } + } + } + }, + "oauth2" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", + "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", + "scopes" : { + "crm.objects.companies.write" : " ", + "crm.objects.contacts.write" : " ", + "crm.objects.users.write" : "Write User CRM objects", + "crm.objects.commercepayments.read" : "Read the COMMERCE_PAYMENT object.", + "crm.objects.leads.write" : "Modify lead objects", + "crm.objects.subscriptions.read" : "Read Commerce Subscriptions", + "crm.objects.carts.read" : "Read carts", + "crm.objects.orders.write" : "Write orders", + "crm.objects.quotes.read" : "Quotes", + "crm.objects.services.read" : "Read services", + "crm.objects.orders.read" : "Read Orders", + "crm.objects.contacts.read" : " ", + "crm.objects.listings.read" : "Read listings", + "crm.objects.carts.write" : "Write cart", + "crm.objects.courses.write" : "Write courses", + "crm.objects.quotes.write" : "Quotes", + "crm.objects.users.read" : "Read User CRM objects", + "crm.objects.companies.read" : " ", + "crm.objects.appointments.read" : "Read appointments", + "crm.objects.partner-clients.write" : "Modify Partner Client CRM objects", + "crm.objects.leads.read" : "Read lead objects", + "crm.objects.appointments.write" : "Write appointments", + "crm.objects.services.write" : "Write services", + "crm.objects.line_items.read" : "Line Items", + "crm.objects.courses.read" : "Read courses", + "crm.objects.deals.read" : " ", + "crm.objects.invoices.read" : "Read invoices objects", + "crm.objects.partner-clients.read" : "View Partner Client CRM objects", + "crm.objects.deals.write" : " ", + "crm.objects.line_items.write" : "Line Items", + "crm.objects.listings.write" : "Write listings" + } + } + } + }, + "private_apps_legacy" : { + "type" : "apiKey", + "name" : "private-app-legacy", + "in" : "header" + }, + "private_apps" : { + "type" : "apiKey", + "name" : "private-app", + "in" : "header" + } + } + }, + "x-hubspot-available-client-libraries" : [ "PHP", "Node", "Ruby", "Python" ], + "x-hubspot-product-tier-requirements" : { + "marketing" : "FREE", + "sales" : "FREE", + "service" : "FREE", + "cms" : "FREE" + }, + "x-hubspot-documentation-banner" : "NONE" +} \ No newline at end of file diff --git a/ballerina/quotes_service.bal b/ballerina/quotes_service.bal new file mode 100644 index 0000000..aea1125 --- /dev/null +++ b/ballerina/quotes_service.bal @@ -0,0 +1,111 @@ +// AUTO-GENERATED FILE. +// This file is auto-generated by the Ballerina OpenAPI tool. + +import ballerina/http; + +listener http:Listener ep0 = new (443, config = {host: "api.hubapi.com"}); + +service / on ep0 { + # Archive + # + # + return - returns can be any of following types + # http:NoContent (No content) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:NoContent|AnydataDefault { + } + + # List + # + # + 'limit - The maximum number of results to display per page. + # + after - The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. + # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. + # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. + # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. + # + archived - Whether to return only results that have been archived. + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function get crm/v3/objects/quotes(string? after, string[]? properties, string[]? propertiesWithHistory, string[]? associations, int:Signed32 'limit = 10, boolean archived = false) returns CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|AnydataDefault { + } + + # Read + # + # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. + # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. + # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. + # + archived - Whether to return only results that have been archived. + # + idProperty - The name of a property whose values are unique for this object type + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function get crm/v3/objects/quotes/[string quoteId](string[]? properties, string[]? propertiesWithHistory, string[]? associations, string? idProperty, boolean archived = false) returns SimplePublicObjectWithAssociations|AnydataDefault { + } + + # Update + # + # + idProperty - The name of a property whose values are unique for this object type + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function patch crm/v3/objects/quotes/[string quoteId](string? idProperty, @http:Payload SimplePublicObjectInput payload) returns SimplePublicObject|AnydataDefault { + } + + # Create + # + # + return - returns can be any of following types + # http:Created (successful operation) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes(@http:Payload SimplePublicObjectInputForCreate payload) returns SimplePublicObject|AnydataDefault { + } + + # Archive a batch of quotes by ID + # + # + return - returns can be any of following types + # http:NoContent (No content) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/batch/archive(@http:Payload BatchInputSimplePublicObjectId payload) returns http:NoContent|AnydataDefault { + } + + # Create a batch of quotes + # + # + return - returns can be any of following types + # http:Created (successful operation) + # http:MultiStatus (multiple statuses) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/batch/create(@http:Payload BatchInputSimplePublicObjectInputForCreate payload) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { + } + + # Read a batch of quotes by internal ID, or unique property values + # + # + archived - Whether to return only results that have been archived. + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:MultiStatus (multiple statuses) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/batch/read(@http:Payload BatchReadInputSimplePublicObjectId payload, boolean archived = false) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { + } + + # Update a batch of quotes by internal ID, or unique property values + # + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:MultiStatus (multiple statuses) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/batch/update(@http:Payload BatchInputSimplePublicObjectBatchInput payload) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { + } + + # Create or update a batch of quotes by unique property values + # + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:MultiStatus (multiple statuses) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/batch/upsert(@http:Payload BatchInputSimplePublicObjectBatchInputUpsert payload) returns BatchResponseSimplePublicUpsertObjectOk|BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus|AnydataDefault { + } + + # + return - returns can be any of following types + # http:Ok (successful operation) + # http:DefaultStatusCodeResponse (An error occurred.) + resource function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload) returns CollectionResponseWithTotalSimplePublicObjectForwardPagingOk|AnydataDefault { + } +} diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal new file mode 100644 index 0000000..b8dd9bd --- /dev/null +++ b/ballerina/tests/mock_service.bal @@ -0,0 +1,59 @@ +import ballerina/http; + +service /hubspotMockApi on new http:Listener(8080) { + + resource function post /crm/v3/objects/quotes/batch/archive (http:Caller caller, http:Request req) returns error? { + json response = {"message": "Batch quotes archived successfully."}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes (http:Caller caller, http:Request req) returns error? { + json response = {"id": "12345", "message": "Quote created successfully."}; + check caller->respond(response); + } + + resource function get /crm/v3/objects/quotes (http:Caller caller, http:Request req) returns error? { + json response = {"results": [{"id": "12345", "name": "Sample Quote 1"}, {"id": "67890", "name": "Sample Quote 2"}]}; + check caller->respond(response); + } + + resource function delete /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId) returns error? { + json response = {"id": quoteId, "message": "Quote archived successfully."}; + check caller->respond(response); + } + + resource function patch /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId, http:Request req) returns error? { + json response = {"id": quoteId, "message": "Quote updated successfully."}; + check caller->respond(response); + } + + resource function get /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId) returns error? { + json response = {"id": quoteId, "name": "Sample Quote", "details": "Mock details for the quote."}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes/batch/update (http:Caller caller, http:Request req) returns error? { + json response = {"message": "Batch quotes updated successfully."}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes/batch/upsert (http:Caller caller, http:Request req) returns error? { + json response = {"message": "Batch quotes upserted successfully."}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes/batch/create (http:Caller caller, http:Request req) returns error? { + json response = {"message": "Batch quotes created successfully."}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes/search (http:Caller caller, http:Request req) returns error? { + json response = {"results": [{"id": "12345", "name": "Searched Quote 1"}, {"id": "67890", "name": "Searched Quote 2"}]}; + check caller->respond(response); + } + + resource function post /crm/v3/objects/quotes/batch/read (http:Caller caller, http:Request req) returns error? { + json response = {"results": [{"id": "12345", "name": "Read Quote 1"}, {"id": "67890", "name": "Read Quote 2"}]}; + check caller->respond(response); + } +} diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal new file mode 100644 index 0000000..2949087 --- /dev/null +++ b/ballerina/tests/test.bal @@ -0,0 +1,71 @@ +// // AUTO-GENERATED FILE. +// // This file is auto-generated by the Ballerina OpenAPI tool. + +// import ballerina/http; +// import ballerina/test; +// import ballerina/oauth2; + +// configurable string clientId = ?; +// configurable string clientSecret = ?; +// configurable string refreshToken = ?; +// configurable string serviceUrl = ?; + +// OAuth2RefreshTokenGrantConfig authConfig = { +// clientId: clientId, +// clientSecret: clientSecret, +// refreshToken: refreshToken, +// credentialBearer: oauth2:POST_BODY_BEARER +// }; + + +// // configurable http:BearerTokenConfig & readonly authConfig = ?; +// ConnectionConfig config = {auth : authConfig}; +// Client baseClient = check new Client(config, serviceUrl = "https://api.hubapi.com"); + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/batch/archive/archive() { +// json payload = {}; +// var response = baseClient->post("/crm/v3/objects/quotes/batch/archive", payload); +// test:assertEquals(response is http:Response, true, msg = "Response is not HTTP response"); +// test:assertEquals(response.getJsonPayload(), {"message": "Batch quotes archived successfully."}); +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes_create() { +// } + +// @test:Config {} +// isolated function testGet-/crm/v3/objects/quotes_getPage() { +// } + +// @test:Config {} +// isolated function testDelete-/crm/v3/objects/quotes/{quoteId}_archive() { +// } + +// @test:Config {} +// isolated function testPatch-/crm/v3/objects/quotes/{quoteId}_update() { +// } + +// @test:Config {} +// isolated function testGet-/crm/v3/objects/quotes/{quoteId}_getById() { +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/batch/update_update() { +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/batch/upsert_upsert() { +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/batch/create_create() { +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/search_doSearch() { +// } + +// @test:Config {} +// isolated function testPost-/crm/v3/objects/quotes/batch/read_read() { +// } diff --git a/ballerina/tests/tests.bal b/ballerina/tests/tests.bal new file mode 100644 index 0000000..7524813 --- /dev/null +++ b/ballerina/tests/tests.bal @@ -0,0 +1,111 @@ +import ballerina/test; +import ballerina/oauth2; +import ballerina/http; +import ballerina/io; + +configurable string clientId = ?; +configurable string clientSecret = ?; +configurable string refreshToken = ?; + +OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + +final string serviceUrl = "https://api.hubapi.com"; + +final Client hubspotClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + +string testQuoteId = ""; + + +// Test function for creating a quote +@test:Config{} +function testCreateNewQuote() returns error? { + SimplePublicObjectInputForCreate payload = { + associations: [], + properties: { + name: "Test Quote", + dealId: "123456", + totalAmount: "1000.00", + expirationDate: "2025-01-31", + paymentTerms: "Net 30" + } + }; + + // Call the Quotes API to create a new quote + SimplePublicObject|error response = check hubspotClient->/crm/v3/objects/quotes.post(payload); + + // Validate the response + test:assertTrue(response == payload, + msg = "Quote in response does not match the expected quote."); +} + +// Test for retrieving all quotes +@test:Config{} +function testGetAllQuotes() returns error? { + + CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error response = check hubspotClient->/crm/v3/objects/quotes; + + // Validate the response contains a list of quotes + if(response is CollectionResponseSimplePublicObjectWithAssociationsForwardPaging){ + test:assertTrue(response.results.length() >= 0, + msg = "No quotes found in the response."); + }else { + io:println(response); + } +} + +// Test function for retrieving a quote +@test:Config{} +function testGetOneQuote() returns error? { + + SimplePublicObjectWithAssociations|error response = check hubspotClient->/crm/v3/objects/quotes/[testQuoteId]; + + // Validate the response + if(response is SimplePublicObjectWithAssociations){ + test:assertTrue(response.id == testQuoteId, + msg = "Retrieved quote ID does not match the expected ID."); + }else{ + io:println(response); + } + +@test:Config{} +function testArchiveOneQuote() { + + http:Response|error response = hubspotClient->/crm/v3/objects/quotes/[testQuoteId].delete(); + + // Validate the response + if(response is SimplePublicObjectWithAssociations){ + test:assertTrue(response.id == testQuoteId, + msg = "Retrieved quote ID does not match the expected ID."); + }else{ + io:println(response); + } + +} + + +// Test function for updating a quote +@test:Config{} +function testUpdateOneQuote() returns error? { + SimplePublicObjectInput payload = { + properties: { + name: "Test Quote", + dealId: "123456", + totalAmount: "1000.00", + expirationDate: "2025-01-31", + paymentTerms: "Net 30" + } + }; + + // Call the Quotes API to create a new quote + SimplePublicObject|error response = check hubspotClient->/crm/v3/objects/quotes/[testQuoteId].patch(payload); + + // Validate the response + test:assertTrue(response == payload, + msg = "Quote in response does not match the expected quote."); +} + diff --git a/ballerina/types.bal b/ballerina/types.bal new file mode 100644 index 0000000..337767e --- /dev/null +++ b/ballerina/types.bal @@ -0,0 +1,380 @@ +// AUTO-GENERATED FILE. +// This file is auto-generated by the Ballerina OpenAPI tool. + +import ballerina/http; + +public type CollectionResponseWithTotalSimplePublicObjectForwardPagingOk record {| + *http:Ok; + CollectionResponseWithTotalSimplePublicObjectForwardPaging body; +|}; + +public type BatchResponseSimplePublicObject record { + string completedAt; + string requestedAt?; + string startedAt; + record {|string...;|} links?; + SimplePublicObject[] results; + "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; +}; + +public type ErrorDetail record { + # A specific category that contains more specific detail about the error + string subCategory?; + # The status code associated with the error detail + string code?; + # The name of the field or parameter in which the error was found. + string 'in?; + # Context about the error condition + record {|string[]...;|} context?; + # A human readable message describing the error along with remediation steps where appropriate + string message; +}; + +public type ForwardPaging record { + NextPage next?; +}; + +public type BatchResponseSimplePublicUpsertObjectWithErrors record { + string completedAt; + int:Signed32 numErrors?; + string requestedAt?; + string startedAt; + record {|string...;|} links?; + SimplePublicUpsertObject[] results; + StandardError[] errors?; + "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; +}; + +public type BatchResponseSimplePublicUpsertObject record { + string completedAt; + string requestedAt?; + string startedAt; + record {|string...;|} links?; + SimplePublicUpsertObject[] results; + "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; +}; + +public type BatchReadInputSimplePublicObjectId record { + string[] propertiesWithHistory; + string idProperty?; + SimplePublicObjectId[] inputs; + string[] properties; +}; + +public type BatchInputSimplePublicObjectId record { + SimplePublicObjectId[] inputs; +}; + +# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. +@display {label: "Connection Config"} +public type ConnectionConfig record {| + # Provides Auth configurations needed when communicating with a remote HTTP endpoint. + http:BearerTokenConfig|OAuth2RefreshTokenGrantConfig|ApiKeysConfig auth; + # The HTTP version understood by the client + http:HttpVersion httpVersion = http:HTTP_2_0; + # Configurations related to HTTP/1.x protocol + ClientHttp1Settings http1Settings?; + # Configurations related to HTTP/2 protocol + http:ClientHttp2Settings http2Settings?; + # The maximum time to wait (in seconds) for a response before closing the connection + decimal timeout = 60; + # The choice of setting `forwarded`/`x-forwarded` header + string forwarded = "disable"; + # Configurations associated with request pooling + http:PoolConfiguration poolConfig?; + # HTTP caching related configurations + http:CacheConfig cache?; + # Specifies the way of handling compression (`accept-encoding`) header + http:Compression compression = http:COMPRESSION_AUTO; + # Configurations associated with the behaviour of the Circuit Breaker + http:CircuitBreakerConfig circuitBreaker?; + # Configurations associated with retrying + http:RetryConfig retryConfig?; + # Configurations associated with inbound response size limits + http:ResponseLimitConfigs responseLimits?; + # SSL/TLS-related options + http:ClientSecureSocket secureSocket?; + # Proxy server related options + http:ProxyConfig proxy?; + # Enables the inbound payload validation functionality which provided by the constraint package. Enabled by default + boolean validation = true; +|}; + +public type Paging record { + NextPage next?; + PreviousPage prev?; +}; + +# Represents the Queries record for the operation: patch-/crm/v3/objects/quotes/{quoteId}_update +public type PatchCrmV3ObjectsQuotesQuoteid_updateQueries record { + # The name of a property whose values are unique for this object type + string idProperty?; +}; + +public type SimplePublicObjectBatchInputUpsert record { + string idProperty?; + string objectWriteTraceId?; + string id; + record {|string...;|} properties; +}; + +public type BatchResponseSimplePublicObjectWithErrors record { + string completedAt; + int:Signed32 numErrors?; + string requestedAt?; + string startedAt; + record {|string...;|} links?; + SimplePublicObject[] results; + StandardError[] errors?; + "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; +}; + +public type BatchResponseSimplePublicObjectWithErrorsMultiStatus record {| + *http:MultiStatus; + BatchResponseSimplePublicObjectWithErrors body; +|}; + +# Represents the Queries record for the operation: get-/crm/v3/objects/quotes_getPage +public type GetCrmV3ObjectsQuotes_getpageQueries record { + # A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. + string[] associations?; + # Whether to return only results that have been archived. + boolean archived = false; + # A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. + string[] propertiesWithHistory?; + # The maximum number of results to display per page. + int:Signed32 'limit = 10; + # The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. + string after?; + # A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. + string[] properties?; +}; + +public type SimplePublicObjectWithAssociations record { + record {|CollectionResponseAssociatedId...;|} associations?; + string createdAt; + boolean archived?; + string archivedAt?; + record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; + string id; + record {|string?...;|} properties; + string updatedAt; +}; + +public type AnydataDefault record {| + *http:DefaultStatusCodeResponse; + anydata body; +|}; + +public type BatchInputSimplePublicObjectInputForCreate record { + SimplePublicObjectInputForCreate[] inputs; +}; + +public type SimplePublicUpsertObject record { + string createdAt; + boolean archived?; + string archivedAt?; + boolean 'new; + record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; + string id; + record {|string...;|} properties; + string updatedAt; +}; + +public type BatchResponseSimplePublicUpsertObjectOk record {| + *http:Ok; + BatchResponseSimplePublicUpsertObject body; +|}; + +public type SimplePublicObjectBatchInput record { + string idProperty?; + string objectWriteTraceId?; + string id; + record {|string...;|} properties; +}; + +# Provides API key configurations needed when communicating with a remote HTTP endpoint. +public type ApiKeysConfig record {| + string private\-app\-legacy; + string private\-app; +|}; + +public type StandardError record { + record {} subCategory?; + record {|string[]...;|} context; + record {|string...;|} links; + string id?; + string category; + string message; + ErrorDetail[] errors; + string status; +}; + +public type CollectionResponseAssociatedId record { + Paging paging?; + AssociatedId[] results; +}; + +# Represents the Queries record for the operation: get-/crm/v3/objects/quotes/{quoteId}_getById +public type GetCrmV3ObjectsQuotesQuoteid_getbyidQueries record { + # A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. + string[] associations?; + # Whether to return only results that have been archived. + boolean archived = false; + # A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. + string[] propertiesWithHistory?; + # The name of a property whose values are unique for this object type + string idProperty?; + # A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. + string[] properties?; +}; + +public type PublicAssociationsForObject record { + AssociationSpec[] types; + PublicObjectId to; +}; + +public type FilterGroup record { + Filter[] filters; +}; + +public type SimplePublicObjectId record { + string id; +}; + +# Represents the Queries record for the operation: post-/crm/v3/objects/quotes/batch/read_read +public type PostCrmV3ObjectsQuotesBatchRead_readQueries record { + # Whether to return only results that have been archived. + boolean archived = false; +}; + +public type ValueWithTimestamp record { + string sourceId?; + string sourceType; + string sourceLabel?; + int:Signed32 updatedByUserId?; + string value; + string timestamp; +}; + +# OAuth2 Refresh Token Grant Configs +public type OAuth2RefreshTokenGrantConfig record {| + *http:OAuth2RefreshTokenGrantConfig; + # Refresh URL + string refreshUrl = "https://api.hubapi.com/oauth/v1/token"; +|}; + +public type BatchInputSimplePublicObjectBatchInputUpsert record { + SimplePublicObjectBatchInputUpsert[] inputs; +}; + +public type CollectionResponseWithTotalSimplePublicObjectForwardPaging record { + int:Signed32 total; + ForwardPaging paging?; + SimplePublicObject[] results; +}; + +public type SimplePublicObject record { + string createdAt; + boolean archived?; + string archivedAt?; + record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; + string id; + record {|string?...;|} properties; + string updatedAt; +}; + +public type PublicObjectId record { + string id; +}; + +public type PublicObjectSearchRequest record { + string query?; + int:Signed32 'limit?; + string after?; + string[] sorts?; + string[] properties?; + FilterGroup[] filterGroups?; +}; + +# Proxy server configurations to be used with the HTTP client endpoint. +public type ProxyConfig record {| + # Host name of the proxy server + string host = ""; + # Proxy server port + int port = 0; + # Proxy server username + string userName = ""; + # Proxy server password + @display {label: "", kind: "password"} + string password = ""; +|}; + +public type SimplePublicObjectInput record { + string objectWriteTraceId?; + record {|string...;|} properties; +}; + +public type BatchResponseSimplePublicObjectOk record {| + *http:Ok; + BatchResponseSimplePublicObject body; +|}; + +public type CollectionResponseSimplePublicObjectWithAssociationsForwardPaging record { + ForwardPaging paging?; + SimplePublicObjectWithAssociations[] results; +}; + +public type AssociationSpec record { + "HUBSPOT_DEFINED"|"USER_DEFINED"|"INTEGRATOR_DEFINED" associationCategory; + int:Signed32 associationTypeId; +}; + +public type Filter record { + string highValue?; + string propertyName; + string[] values?; + string value?; + # null + "EQ"|"NEQ"|"LT"|"LTE"|"GT"|"GTE"|"BETWEEN"|"IN"|"NOT_IN"|"HAS_PROPERTY"|"NOT_HAS_PROPERTY"|"CONTAINS_TOKEN"|"NOT_CONTAINS_TOKEN" operator; +}; + +# Provides settings related to HTTP/1.x protocol. +public type ClientHttp1Settings record {| + # Specifies whether to reuse a connection for multiple requests + http:KeepAlive keepAlive = http:KEEPALIVE_AUTO; + # The chunking behaviour of the request + http:Chunking chunking = http:CHUNKING_AUTO; + # Proxy server related options + ProxyConfig proxy?; +|}; + +public type PreviousPage record { + string before; + string link?; +}; + +public type BatchInputSimplePublicObjectBatchInput record { + SimplePublicObjectBatchInput[] inputs; +}; + +public type BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus record {| + *http:MultiStatus; + BatchResponseSimplePublicUpsertObjectWithErrors body; +|}; + +public type NextPage record { + string link?; + string after; +}; + +public type AssociatedId record { + string id; + string 'type; +}; + +public type SimplePublicObjectInputForCreate record { + PublicAssociationsForObject[] associations; + string objectWriteTraceId?; + record {|string...;|} properties; +}; diff --git a/ballerina/utils.bal b/ballerina/utils.bal new file mode 100644 index 0000000..db366d6 --- /dev/null +++ b/ballerina/utils.bal @@ -0,0 +1,218 @@ +// AUTO-GENERATED FILE. +// This file is auto-generated by the Ballerina OpenAPI tool. + +import ballerina/url; + +type SimpleBasicType string|boolean|int|float|decimal; + +# Represents encoding mechanism details. +type Encoding record { + # Defines how multiple values are delimited + string style = FORM; + # Specifies whether arrays and objects should generate as separate fields + boolean explode = true; + # Specifies the custom content type + string contentType?; + # Specifies the custom headers + map headers?; +}; + +enum EncodingStyle { + DEEPOBJECT, FORM, SPACEDELIMITED, PIPEDELIMITED +} + +final Encoding & readonly defaultEncoding = {}; + +# Serialize the record according to the deepObject style. +# +# + parent - Parent record name +# + anyRecord - Record to be serialized +# + return - Serialized record as a string +isolated function getDeepObjectStyleRequest(string parent, record {} anyRecord) returns string { + string[] recordArray = []; + foreach [string, anydata] [key, value] in anyRecord.entries() { + if value is SimpleBasicType { + recordArray.push(parent + "[" + key + "]" + "=" + getEncodedUri(value.toString())); + } else if value is SimpleBasicType[] { + recordArray.push(getSerializedArray(parent + "[" + key + "]" + "[]", value, DEEPOBJECT, true)); + } else if value is record {} { + string nextParent = parent + "[" + key + "]"; + recordArray.push(getDeepObjectStyleRequest(nextParent, value)); + } else if value is record {}[] { + string nextParent = parent + "[" + key + "]"; + recordArray.push(getSerializedRecordArray(nextParent, value, DEEPOBJECT)); + } + recordArray.push("&"); + } + _ = recordArray.pop(); + return string:'join("", ...recordArray); +} + +# Serialize the record according to the form style. +# +# + parent - Parent record name +# + anyRecord - Record to be serialized +# + explode - Specifies whether arrays and objects should generate separate parameters +# + return - Serialized record as a string +isolated function getFormStyleRequest(string parent, record {} anyRecord, boolean explode = true) returns string { + string[] recordArray = []; + if explode { + foreach [string, anydata] [key, value] in anyRecord.entries() { + if value is SimpleBasicType { + recordArray.push(key, "=", getEncodedUri(value.toString())); + } else if value is SimpleBasicType[] { + recordArray.push(getSerializedArray(key, value, explode = explode)); + } else if value is record {} { + recordArray.push(getFormStyleRequest(parent, value, explode)); + } + recordArray.push("&"); + } + _ = recordArray.pop(); + } else { + foreach [string, anydata] [key, value] in anyRecord.entries() { + if value is SimpleBasicType { + recordArray.push(key, ",", getEncodedUri(value.toString())); + } else if value is SimpleBasicType[] { + recordArray.push(getSerializedArray(key, value, explode = false)); + } else if value is record {} { + recordArray.push(getFormStyleRequest(parent, value, explode)); + } + recordArray.push(","); + } + _ = recordArray.pop(); + } + return string:'join("", ...recordArray); +} + +# Serialize arrays. +# +# + arrayName - Name of the field with arrays +# + anyArray - Array to be serialized +# + style - Defines how multiple values are delimited +# + explode - Specifies whether arrays and objects should generate separate parameters +# + return - Serialized array as a string +isolated function getSerializedArray(string arrayName, anydata[] anyArray, string style = "form", boolean explode = true) returns string { + string key = arrayName; + string[] arrayValues = []; + if anyArray.length() > 0 { + if style == FORM && !explode { + arrayValues.push(key, "="); + foreach anydata i in anyArray { + arrayValues.push(getEncodedUri(i.toString()), ","); + } + } else if style == SPACEDELIMITED && !explode { + arrayValues.push(key, "="); + foreach anydata i in anyArray { + arrayValues.push(getEncodedUri(i.toString()), "%20"); + } + } else if style == PIPEDELIMITED && !explode { + arrayValues.push(key, "="); + foreach anydata i in anyArray { + arrayValues.push(getEncodedUri(i.toString()), "|"); + } + } else if style == DEEPOBJECT { + foreach anydata i in anyArray { + arrayValues.push(key, "[]", "=", getEncodedUri(i.toString()), "&"); + } + } else { + foreach anydata i in anyArray { + arrayValues.push(key, "=", getEncodedUri(i.toString()), "&"); + } + } + _ = arrayValues.pop(); + } + return string:'join("", ...arrayValues); +} + +# Serialize the array of records according to the form style. +# +# + parent - Parent record name +# + value - Array of records to be serialized +# + style - Defines how multiple values are delimited +# + explode - Specifies whether arrays and objects should generate separate parameters +# + return - Serialized record as a string +isolated function getSerializedRecordArray(string parent, record {}[] value, string style = FORM, boolean explode = true) returns string { + string[] serializedArray = []; + if style == DEEPOBJECT { + int arayIndex = 0; + foreach var recordItem in value { + serializedArray.push(getDeepObjectStyleRequest(parent + "[" + arayIndex.toString() + "]", recordItem), "&"); + arayIndex = arayIndex + 1; + } + } else { + if !explode { + serializedArray.push(parent, "="); + } + foreach var recordItem in value { + serializedArray.push(getFormStyleRequest(parent, recordItem, explode), ","); + } + } + _ = serializedArray.pop(); + return string:'join("", ...serializedArray); +} + +# Get Encoded URI for a given value. +# +# + value - Value to be encoded +# + return - Encoded string +isolated function getEncodedUri(anydata value) returns string { + string|error encoded = url:encode(value.toString(), "UTF8"); + if encoded is string { + return encoded; + } else { + return value.toString(); + } +} + +# Generate query path with query parameter. +# +# + queryParam - Query parameter map +# + encodingMap - Details on serialization mechanism +# + return - Returns generated Path or error at failure of client initialization +isolated function getPathForQueryParam(map queryParam, map encodingMap = {}) returns string|error { + string[] param = []; + if queryParam.length() > 0 { + param.push("?"); + foreach var [key, value] in queryParam.entries() { + if value is () { + _ = queryParam.remove(key); + continue; + } + Encoding encodingData = encodingMap.hasKey(key) ? encodingMap.get(key) : defaultEncoding; + if value is SimpleBasicType { + param.push(key, "=", getEncodedUri(value.toString())); + } else if value is SimpleBasicType[] { + param.push(getSerializedArray(key, value, encodingData.style, encodingData.explode)); + } else if value is record {} { + if encodingData.style == DEEPOBJECT { + param.push(getDeepObjectStyleRequest(key, value)); + } else { + param.push(getFormStyleRequest(key, value, encodingData.explode)); + } + } else { + param.push(key, "=", value.toString()); + } + param.push("&"); + } + _ = param.pop(); + } + string restOfPath = string:'join("", ...param); + return restOfPath; +} + +# Generate header map for given header values. +# +# + headerParam - Headers map +# + return - Returns generated map or error at failure of client initialization +isolated function getMapForHeaders(map headerParam) returns map { + map headerMap = {}; + foreach var [key, value] in headerParam.entries() { + if value is SimpleBasicType[] { + headerMap[key] = from SimpleBasicType data in value + select data.toString(); + } else { + headerMap[key] = value.toString(); + } + } + return headerMap; +} diff --git a/docs/resources/authentication_1.png b/docs/resources/authentication_1.png new file mode 100644 index 0000000000000000000000000000000000000000..212a9574362a8be6cc939e2b4b419eb7ad801de2 GIT binary patch literal 78927 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 NloZrnSIe1&{ufv8J^=s# literal 0 HcmV?d00001 diff --git a/docs/resources/authentication_2.png b/docs/resources/authentication_2.png new file mode 100644 index 0000000000000000000000000000000000000000..59b27b0fa2e65575d355e27bd5f0ed41f6dab183 GIT binary patch literal 140661 zcma&NRa6{X*Dg!~gx~~s5AN>nuEE{iEm&}epp6qGO=w(#yE_4bTX1iras4~*e)spC z|Kf~s`l70z`PZI{|OVOW2t5<;w@mWe z(GDb%ti)Q4)K(-?Q;WTqVl6^P>0|3SG1h4dMj;=0D@8CW*EIzhhsgCUJ9PL@Ec;h( zJie@Nl*6D&yr&4q_~GR=A?Q~O1I+#>B#SH|vS{XgUE z=jL(_^VOcch#EV;ll%elF3zC}$1sm??g(ms!H95-b#%vfW$`C#9SalHNCdXYz}`qC z1_&fNWqk<+9v?Wfk_KZ0(?zO}rYfTq-1|URXgdb!H;7G7Gn($J$DiiYUsfS*#YD9I z+^%!t?XnR_0ErpTVO@*q62)!gf%A8ibg}WB$Q1nu382F}33cKX8USfa#lq(&3JI$@ z>^gb(5i_NFxXCubw@md?WnU%Lu|1pcOxP4ET4Q$9(5=hZGF+tJQ}lC}y!C0u275AU zl_QD3E1;n)qva??mByk0R)oucFvJ!q41u-PuyLf*J$x$-=W=~ftpr+00DJN?l6W<;(h(&fV+?OHjwi z0B??wmT^ziVV=+nMl1vOeK^Ken2I{~s`180r}9IVUYwsL+pzc%Cst&PfEdkTV2sv$ z;V>8TUkOg9cda%M_qVaVNE8>54v7*%y2j**M$ar)C}mwdKdKpER!21onVLV`VM<-I zBRVF5C2Qntt=txyjx49sgd;DehKjU|rx7i7?6)?SQ*Sjo>|yJf#haCl9g(gAQ}X_S znTpGM;w7bb`;^67ctuB5w`(%$*yeM}*zR^nOTVqiU}1(Ra)>2-7Cyvkrx1eM>YkyS z74@~sE_2>1*8rL85GnnP&arY3gvgw)d{LQ)-6~sZ4v!O2mMzf~cz;{qKyd&`X2q>N zDNl$NG33(z-UOcL`b-gykCi^h&6g-iQQ-fYfD<9d z6$`YZ-YQ0y4Ke)+IwDND;JcA#7?HKGI%rj)B<*^VG4A#0q{Wa?=dO#Ps4Br&*GsfW zB|I#xGvjE{3g99!c~8O8*XviGDe6yymo3)naTer#vLw1UG^dq5FOQ{LXUdYkYlV{3 zztrf!D!VLLQ)T8_NrzMqRNkC7z;!$6mpA@=dd+xL(?OgKtb3TZS|vTlSZsukE#8;| zmwC_yU(H$;@X!gpEVrEY@v0xV-lj-9iUx#FcD@j;rMdN;LEJZt%3FL+ozei((_SRA zTrsqo?aePZv0>30q0<((3QS$70YujXdQAjArkKv$ab&33%FTPeakO8tuL+qHUt5 zClel$%r+uXh%9nxTMeX0w>Jk-jqLc8DIR{|v!g&u}s4<6bi z7j(IL0ius=({j;gFX!^^_qXpZV~dI$ifbqD*8w1VTLye!1jxSG6V;VX3G31ECbH<8 zgFrTLYY{i{-kS+XhtxV20s3N>xxm~f0sG?b1^Lasl!bbtvUCL?23P)W{s>HFC)tbC zBK zjxXGZS+VzGpl>U>6ufSS6k^JczRI7JXpz@0_(sC4w?v*Pds@Q5Ll{;2116Ol(w>;N$TVZ4TVdX>vm)5pVIkko!_S#T*E8U0|*oaqH`S$$6 zAJ^?cOpsuOf-o+5q=a2L4!DQdpaoBWFJE}XvP{#&(ZZuNB}T05vw3khY+Vl!mas@e z!pqyPY7_E(qHr(UjJu&bYMtEjtFLv6vY=HlZXjv2+Db}OAEst0uat;JZyLSiuvT%} zj<_b02hNt%FZsM$)+uE#_ILkb%R1Rz0P~S46QTYIG)5Qo-;hl$`9h zu$roieikMs_}{40rL*j&YiZBdeXC5TPq_XKkRINx+fe|l)6eRPhAg4(<`RxxUbKCh zopXCK9J~^2F?7zh2aVXw8lGBofNzQpSz_Y@5Q=bC8+~b>pJCJ1ISv5Ti3QhC9kJ4ZlA+Kff0v-HxRZjbHVIrFcaWM zw|M^aZQzy9S*?cn#j`F))Yh$52&mCO0tWrMOOf7r@POJrv+9RocnAHsD`& z%P#aysq{y4zq_NiR?hOBUXU4O%oHt)4U0;w+wOKlk?pBW!WF*s4OFtNC@vEiTslLS zp8HW*X{MoxI_(;rU561{q-Kmug^S2pR)(7d`~yL-wW}&EV|YjmXN-siG3XP5E?R== z)g`pc%FFtTI|8?`0ZD^L_#n`%nn4iD&t9_k8XrV7Q54kQ%ThKdJAR`SdU&JOZYI*{ z{br3;wJz|Lodc-QU%h?tnLaKuda&qk8KD!w1s-J|brT&)2McavBa*-Z?w=JcPKb)u z4Qe{Ltwmi47+Ztq;f$HWwV{Rq(Wn0CZr_UWnx<5x{o=D`OWn^v5lYS#MHNg6+KY

cz5m!qM{Od*DbphaY1I(4A`WJa_ELzn-JsF@o@Xon9>Kcq!J91h zC(s0sp?crLK?f6Jzk~F#*XrkZjxK^2AF;*DZ+azAnV1fankNk}uNncf#bgOC!`tGi z=K+mmEf(}2N|R4&mA-`YB2R$roPk@zvSM+ z=NvuAeA?h36XlQ8kRI*hTx#|slJ!qr_1h=mf^+2f7=cjC5_A=Zng#%<6QGJ4p+3i8 z3sYGvSkQ+zH}0_*O4-*GkVFa85+mSm{0g_6Xj(DWAvbep-2Uq7}hDNyM#R2N%!p&FkiAue{M%_jY6SdTXVD zS|_Lgm->HZkM~Kk<>Omyi~t>yL$)F?0CKaQ)>FBIGZBzz+SDs_lzLOJl1d)9kcqHo z*WK;N6TR)048Pt&#nJvxce2F}GCa}%Z)2WemHUZ1n~PcQe9dg+B{PjfhCz2UuP+ zWIKTFM;NQ!?|#!`9zs;ljOyJ{JBD~5CzIQ{jbWhUW^G%0`)wVtu7ZyX84gYy-)B$O zDKL2FI4LM`GZ72LI!>v}2KDuPF{zf4J)4TbUoh&;IlQ^h=dfm&~>p{3yVoU;0T zbwYuGu}1+nE#BK;OPn~HOs+eWm-|xIe?&abp%eiCmWNu`K#j{4xj3o0GsEvSSKQ@F(A+n znMm4sCrfIZUo!$(1Xx6DWBO&9k@qiC-fDHGqwNE$Jk=4jJj9k74#KjH;GOgHU1|nI z3g?E0Wd+RAcaw1E#Y|(suF@QxIEM5WM91~OaQS*XO!B_hhY_M5`7pCKssgWQI1zjD zsaZJh*#cVg3@>^;z=JabGN0{1jD9;k{_mqg>0%|M{Rn_|GXk{)2nXQP{aV`Kp6*}g z{w7a}p2E=37Q5PMJ$9SVGgm;G4uc%y9Mb!M`umeMrYi84S3<^~%nb>jkoAyfo8f-! zXa2;nmD81VT z-f3NKbk-b2E7$i%Zg(TdU4Itk@?$h{A&2RTzDIxlWVNirAbFIk+MM^32DMv}fxw&7 zk6^3MEjf6+E`z1|6)X3+gSsk2of06>pX=O_XiaRjv}ye&q#rgfuN6MPm9998>7b&x zsSSY$z|F0?0V&Nfy~W&bg`4kh@vUPl1tdXVt$k#XO&(_O@JSD>h7ye$Zf!0YX^bv> zd}>Of5QdkX-#X(b?yG6#+0B-!DcQAS@n?ybw_a8*QbAd&#S=D<|d zXpmX>O+=iSS{eW5>%?wMDF>geR>u9(PY>U#&>H5?@36Gy=Q#1Fwz{(1(|$aOl0wNcF7IbnwG?j;Nzx{F2E4tz>l$iLfpR}TNEl{?6v8P7 zO?||v<)51iGZXY(w-KBhg)C0-a5(e?WK3ocAN#AuJ3W7exH=+B`*?J^3*{NDJza0S zB7;C%Ge$xIuSWf;^z$7z0*y`#d)D0~dti-f*A<#gCXEPbWHu9;c0%ZpHWA#vLjpXL#bcnj)XgiPD?%422o zt-INeCoZi|%j+?X@^(Ei2JDk{DRQJ+56nc|1sJ0d+wH%!fyr~mE@mPpEWDLql7=RJ zkEHUgJ%Z!kjy2Y5r%UMZ(>^>nXNQh;^z{Wi))rtOzH1Hy8uS z;4OL|u$38t-)i2tv?JBn?(?*Xp@D_LqwO;pzDals{X9!Ub zZhptVe)lx_l>G>AXLKisF5>%ESaW3QKf>d825b2}7( zSWoRNc^w~i_MT)q@Gy4RO8U>!e4}TI`5|>RJycFp-5XjH3ly_iZ((`!q$f!wA9S-t zgZ8tasNClZa~t~kcBu(85Kdguq%8#P3z8sRqoOk9uE$$pAA%2U=#09{8LzHT*f7b= zAUA>SjZUI%>jI<6vu>lK7E;gPY5pDVbhyB?OwB_W-7B;bXrM9hy$p)a(r{}T>T}Dj zn7i7BuR{g2U~_u3G|@`KbyZ7N_(!&il^%YRgC}(-(8>xb*W3Ca55(vxh=JCC}Q{*K$0uj1CE6Gi7-S z!qG|tT#O{G`+)z7{kOuZjK?$mgrVo4wTT6Q)k=KHjL^?})Xv8fNIZ2a3a#eToQ3FS zx>1{ar)tl_b#>QZ?m)SopbbMpdOA~HR~k+#2!A|XSI7$~JsE@3fOflwI*%1I@srzF zJdZsis5y8*L&dw%qP?DVt(I?Eu>a|h)3%bq!h9AEnAXC_;R;cXVNOSZ20`#E-mb(^ zmNcqDd8L;6)H8l5Sx+rok2)qB-aXIw_tgGvNUMI2%q5SiZcpbyXx0`LxuOw0ogzvr zg;sm!&Uq^e^nksCv{fr5SEw-v^!Sd_rYh=D@jOdLycGw@|AB1ozIq()n~OaRB+9ii)p@cL+Z>l zWNV!MY1yV!t-Nc~uTD6lIaKIKRj;LJbvXHMQYgWT;0;7q>U%=Yw>I zPs?uY;g=uq08bjYLy_-$#4jMw=6hnJT1QGP1R)5+L^x=#WuRhf6mQap`z4T zJ+in*y#2VX!O&?E4794X+Yp&&((kUVnmut64U&h~L-@RWKU5mG+7&?W!-VQlcg!cc z@p~eAddLYGaNbt%fc+e3By|0Ni|H4o^chZAZK7J(7g;v(WcPv>T|-?kJ)??SIYyAr_(*J6Gb2>xnRpv zTC$zSIR`iFyh2R`zXwx1{x%|j1CGh#@`5W97C>>kJ8|KDX>g5hovy%d=S}w0J2L+} zEWX5nG1b>x-W67nR_AP*ta8Ik^*6bCjAX5#yr)YvSi*(}?Uxlxyljqa1(Q?t^B+il zW1F5mn=XQ=JOkBC1006xNkg|UbHuEr6Y0C^94)=@fNV|e1hrpDv64K1Vo%^=F7O!c zSp<89I-S|HAWM?q{oORqFrMN;wgit!?>@vFJ8nON$(&h$%Qlf|4T0FVnkv_sAsNtl4+knn`hzzCJjxY@N8DJzW0+9cj@am3m+$PO% zRKpaf^wfI{W{BMF)B322fMZG22 z7gmg(Q{)ulBhvc7{OgG*(a}MuZJ1pb*?au-n=SZdLiGX={HRLp>`KB;VhR1R79u-CYBZ`X!7pM>ruXIO%G? zRC!YQc~1>|S`ee&(lyFcX8Gw%kXKKs{yH0=OSFb@wI)lp#XoB~A&l~5kgxJRRei}s zxJZ3MDyW>(Bc3~;Uk=zW5g&5Kx~TzAtc`*6H`0{|wmChc9Vkuu9i zMUHD;e=Zl|@g(8}3thuq`P>OYe)gT8V+{1#MwM0_Ykkr#1T9PNlM5vF4MXp4?E(l! zzi(S&h2gEq__UPSI$9if3R)i?DG>On8#-u74<@~lvT2c10g5Om8szoFD+Kn-ws2}%q1dRe{czE4g+W>{hW2`e? z9|Me8u?UZ$*{3U1!zWU=rN_=l@uw4cX3v}J)bT{4(mwv!D8Yb4@G*bNIU%<$o<$P`0*P)g#Tg%lSeQWm&7lsX=VY4JWRJo9o;3P z@E!B}@h=O;@Miv8W!bjnK>P()v?9Nl%~6k6F@v4 zjt5RrG2%Z#vjk^dwHOl7ZbM8sa!FSvmvT>fAmBDSVDsjVJ>l)W5@xZMuPPff^TXl- zV?qwi{zH?zms#QCVR%q3M8EQBHZ!|VWqK_C%tg>svimCOYl3qkv_1AMKD2>=$fu>` zt1(Lhnyh~ER`B39`iDwq2~DqfbF^8eH_&uc!r1l@)9wgRhVCPWE)cQK5%`xH;q1Qc zP5qMR2|!reeYZP<#QB%$z|WtUpvPdEHJAz3@o2g54YOszOXL)o>P(v&7C8UQ%fR;; zJe7MA%#yi?m2rU590K@sWnyyK-HUVn!{Bh6vpmrMm*;^`OC9}p0{>w{492(>sF0mM z{s1wRR$9Has%6V&c*gwqsYvFa6GkK?Zm-cGIy}@iJF;l_bNK(S(8j9n z(An!CK$p#iuvNr)11dfL^x!r!=ydg%z#5!A0I?YzZu{^3X!L}ffVV9k>l>3<>=6b4 zmaqSjfWJ@sqehiU`wK+nOnwG@FizSRXoB(`{-KyO*E(O4zdU6V9lLm9{c{Vt-p9^{ z?=D!B+oqNO?UbUb&5huH*(GE$|0ge{zuCxK<-OaXM%LRUL-9|Z|5PH=2Nhu?z`3>! z-d;H(ZbjT-)HvnXE+$PKcTOvR_|IgvT0MxPlp3SAbAt&W7dzR&*|8r5|8~jlT_ulE zZO0I|H?cP@OG-(Ih;{z>ODikrf7mgG3G7J~+{zaBTM-q;Ehu9Rch4Jl46nOBUE-2P z6S`yy|IYGGjbN61{nWkI{vI=fIbU_*kd*Mqfq&gEcJM(zw5MB_^nZ)~BB<~6o|enx zZmRqS%|BT(Oc<5xU?zm~`|jXFb+yGVbKHofd+rhVUJM)S-?36uHL(-KR9DdLCr5z? zPG@RKa(3hJpjJi=JAyuymc6zm#F1r+imU@bU&*X-uJZ4|n%`Pr_5+5BPW+ECxaZPW zJGXFqH-EJR&vGX~L+uuaYlX(sRY`5>7VH+Rf2E_UJ5y>lDv88q${;H9*Y7VN5R`lX zwS6XZrkOM_g{CllTuaSXL_n*A0W&C<ORl1zM|3dYLT~; z<80K@^>mV3> zrL#e$yC!E4hy&Y^_XOz@m0vpxPH4<#lc^Q+IfL=*16H)hkLu!UhnQ2Sy1bGv70GiE z7K4OB6*c8cF>^`f)Qw23sq?!(8U6mGgL&EVhD|~G-Mc7x%Q&fGcF(!%$|&VnM7q14 z&Ji2QM3kpJqqVgzM^uAC@2^RNZhm_>E_$T}jL_&C_Xv}gT4tua<~bEMfCl7qSmHe`0+}b$J4~K*I2R)YUZ;bn5R0rV93k zSRE~vdv~9}IwIm0{b57LTM4Mumwo%|mf*{k`@ZVnNCut!uE&KT{&Xg_VHAK<@GYj_b3AOgx@^{kRP0}&~&=n6$q(6 zaXRb8a@Z>`=zylPdQ&1G(B0{T+8o^ z)uWV0gG6nq^AV;Ey+C5~eT-xNsX?Qw>n&Qm#+xA>l^znS-FTVC&Y!7W&*G7DO)LYn z8dK_#hwx2j zW2~(`OO1|QJho#$a-aa+rJe~dd@=i`5g$E=!z^$QNfgWk(aN-99jA*%_Is-D&fkSr z=y$~K*3)Q=+py!Hr)Cr0FINYKv^=W1UJZYE0h7I^Pxj;8Pb9IV{HFYmv|ohKLg|EC zGkiRRp|dlpZ-O|SWpvE;%XVXMzEvU=^7 zAC7N@Moa?s3w|&{JlZ?Lvgh@fvhfQ8;VJ@B&R+hodpp~Gt8R-EXY5|sYy5Ro4m?cn zXm1aK%{z^vx2)&-Ibmu3J*w+|zu?<|eas=@B8~J|=d_LNKf-_fU!DljTH=`d6iE|D zVcCleuVl1au^QJeZX7_B(S-=Mw8hbQ7FW0y8i{aES?33PT9wV)&U+kO6;M%-IpY}c zQ|)bKpC`IaR?`lyh{vslJ`ES=&)VED1oYW;?*91uxcfZT;Is$bud{il?Tt-I2%jeZ z{Msx|yJG8l7*KUvIf)4`-W|_jk6G8GUGllY?zF`r)2k1qXHI}if1A^Ey6LKuYp}37 z;1XnxqOz zR6ok_?iw{Z2IRk9q95Pi6ujU+@&fmuW*)6v*H{u&ofu1gr7s@cI5u!C>H&p2SKKAWE$c#LSbKEt*=ED7V zz|FgSzXaJR-#j7c)>_u>|G6Mqi_eMt-=-$qa*5X9+!B@=pAx20$c^7$gqRY1Y<-NP z%bNER1X`@1prIuX?+jT6TeGX$oU!q)FoV7-yEQm`QS9&mZcBRJ&{jDWJG(C_WrrkF zHwtOxb1ts*nYOwX=eX?>M{R}}Cwh8nvQ=%|j(?Z?h`pm`{ zS?f;we?>I85=TZw$*-4$sIo6jkUcMnUR=(vd7=Vc94&~W3OD)6PHYjjz$6BK*0aV6 z7M>k%_#(t#7DPn`%aT_gogGjcAPJ(69|nAgU#@kG|9sCIn(|MAf`F1yXtfa2A%8&x zk|<^(<2@Z{kb1Xz_QJ2)wG?DURgpMSTTDxDTylHiANvI4#Ney96lR(1v4lDIu*OQn2U^y)ZxRgUwz}RA1jytxwz*tPQU=s$%_i zgaS;5j&G8tWSNM2ztdZC*rj9%fxti}+`-~9OAmgfF&eP!e4->n9%UZ$ z)}=3fQluIVG^SM+;C*P*rH)qgZ#$c=Q^JhFZYhc}x1`U)MMG(Zv#zhTyftmiA zq(wQI6m*Br34Wqh)Mt#oGontVuY-pTCKuzv?q=DI-gn|^3*WogPP_cUg5KhYJGc9t zl8`)EPK}LZ)IwdznT#y(;0+gms634-zh2ELtldl^1ZIfo`S>xm!oXXq7%p5SC=5}cNR>BXwt{=;7-Gv5>4eRW5*9E`jfq%nmLg~6 z<`q~j_Y?)7+`gi3he**TjN<(Il#-^jHa1hA zDRpv*sc!Kp(t~=9d*NwO$n8|}1(gLyq0|c3B zo9tlZ}0J3}l3w1j><6c|Sh3Rwse5v29rol#~`s-FMl%VoV2tkNO-6C zL)WLL3_8CIZBr2~YaO!* zHK3ttd{WeZ1~^c+VzA-+DDja#AU@P6Z;yN1yo!)Q8`zX0l%9=|>GfSZ3#u3f&Qf#u z8Iq!ZPYL;pljkT2NK&TuZC`KBYqg88#uUDp@2CrLo%ICka$t2KZ(UHs_t9V?YK-E= zWJph^dDvu`7m5jG_0*71Zn9By;nk9+ zbsqz@hEwVB@xN2%i^0u}S}Y;81dsw2RH^^aWGPuJBBk%LuRaJ4Y7j>mvd9Xhi_fjy zb+BknNDrSCejVdT84U$}h?8OCaLW%equTXKV9MhS`^fl-edBEs(3G%vL1Ux=5l&J{ zQY79yx!uehpkNvIuFy5QW&?^mqa;zYolJKH4)60X5D(~#6+HFmME5`S%VIV^8_$ez z*|LmUZ2AP^SrGNlw)nuGe3u9@AL(sGiQM7`F;LR+m0-$y24k!=(&NUVprDv7p(V>@ zLSetUTRK%Iksh+w>85i6x6a#CKqmM1WR3~3SuKt%CSWl}oYc9$5j2?LNu|gdDYO-U zzAXTAPCn1f40+sscyBpp*vm`SX|XF)=*%0DBEH?v6ZBe+bz#pVi%zzc&;bQAjWRR(#+T}U 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∨|Z8~Fcgwa-L~ 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/resources/authentication_3.png b/docs/resources/authentication_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4050328cee7a3956752d6df935d7fa5c52214042 GIT binary patch literal 137222 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�TOB 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

  • VE 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
    Kfh6vciUc~M*>Va-%8*YVAzv3mOrp_O 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%0Dt9iRH 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

    b7k~=#ta&s1Dk6ny2FZ5PWZ3)5!8@SA3R> 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

    Z!d39BvR&u2){A|9J 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

    oDyxW9|SeBOQ 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 B^}+xE literal 0 HcmV?d00001 diff --git a/docs/resources/create_developer_account_1.png b/docs/resources/create_developer_account_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0609ac452f0732f1c80ef259e29562550f3e188c GIT binary patch literal 77336 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 VZ-0#(;C=&`T(`Vde%1Zy{{Zj-W32!H literal 0 HcmV?d00001 diff --git a/docs/resources/setup_auth_flow.png b/docs/resources/setup_auth_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..af106bc2d16c328da9613db6f6cc44e99d0ab70c GIT binary patch literal 41731 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 Dzk#w# literal 0 HcmV?d00001 diff --git a/docs/spec/quotes.json b/docs/spec/quotes.json new file mode 100644 index 0000000..24db5bf --- /dev/null +++ b/docs/spec/quotes.json @@ -0,0 +1,1688 @@ +{ + "openapi" : "3.0.1", + "info" : { + "title" : "Quotes", + "description" : "", + "version" : "v3", + "x-hubspot-product-tier-requirements" : { + "marketing" : "FREE", + "sales" : "FREE", + "service" : "FREE", + "cms" : "FREE" + }, + "x-hubspot-documentation-banner" : "NONE", + "x-hubspot-api-use-case" : "Create a contract proposal for a customer who is interested in signing up for one of your annual SEO auditing service packages.", + "x-hubspot-related-documentation" : [ { + "name" : "Quotes guide", + "url" : "https://developers.hubspot.com/beta-docs/guides/api/crm/commerce/quotes" + } ], + "x-hubspot-introduction" : "Use the quotes API to create and manage sales quotes for sharing pricing information with potential buyers." + }, + "servers" : [ { + "url" : "https://api.hubapi.com" + } ], + "tags" : [ { + "name" : "Batch" + }, { + "name" : "Basic" + }, { + "name" : "Search" + } ], + "paths" : { + "/crm/v3/objects/quotes/batch/read" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Read a batch of quotes by internal ID, or unique property values", + "operationId" : "post-/crm/v3/objects/quotes/batch/read_read", + "parameters" : [ { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchReadInputSimplePublicObjectId" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + } + }, + "/crm/v3/objects/quotes/{quoteId}" : { + "get" : { + "tags" : [ "Basic" ], + "summary" : "Read", + "description" : "Read an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", + "operationId" : "get-/crm/v3/objects/quotes/{quoteId}_getById", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "properties", + "in" : "query", + "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "propertiesWithHistory", + "in" : "query", + "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "associations", + "in" : "query", + "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + }, { + "name" : "idProperty", + "in" : "query", + "description" : "The name of a property whose values are unique for this object type", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + }, + "delete" : { + "tags" : [ "Basic" ], + "summary" : "Archive", + "description" : "Move an Object identified by `{quoteId}` to the recycling bin.", + "operationId" : "delete-/crm/v3/objects/quotes/{quoteId}_archive", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "204" : { + "description" : "No content", + "content" : { } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + }, + "patch" : { + "tags" : [ "Basic" ], + "summary" : "Update", + "description" : "Perform a partial update of an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.", + "operationId" : "patch-/crm/v3/objects/quotes/{quoteId}_update", + "parameters" : [ { + "name" : "quoteId", + "in" : "path", + "required" : true, + "style" : "simple", + "explode" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "idProperty", + "in" : "query", + "description" : "The name of a property whose values are unique for this object type", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectInput" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/archive" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Archive a batch of quotes by ID", + "operationId" : "post-/crm/v3/objects/quotes/batch/archive_archive", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectId" + } + } + }, + "required" : true + }, + "responses" : { + "204" : { + "description" : "No content", + "content" : { } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/create" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Create a batch of quotes", + "operationId" : "post-/crm/v3/objects/quotes/batch/create_create", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectInputForCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/update" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Update a batch of quotes by internal ID, or unique property values", + "operationId" : "post-/crm/v3/objects/quotes/batch/update_update", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInput" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes" : { + "get" : { + "tags" : [ "Basic" ], + "summary" : "List", + "description" : "Read a page of quotes. Control what is returned via the `properties` query param.", + "operationId" : "get-/crm/v3/objects/quotes_getPage", + "parameters" : [ { + "name" : "limit", + "in" : "query", + "description" : "The maximum number of results to display per page.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "integer", + "format" : "int32", + "default" : 10 + } + }, { + "name" : "after", + "in" : "query", + "description" : "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "string" + } + }, { + "name" : "properties", + "in" : "query", + "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "propertiesWithHistory", + "in" : "query", + "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "associations", + "in" : "query", + "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, { + "name" : "archived", + "in" : "query", + "description" : "Whether to return only results that have been archived.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "type" : "boolean", + "default" : false + } + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ] + }, + "post" : { + "tags" : [ "Basic" ], + "summary" : "Create", + "description" : "Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.", + "operationId" : "post-/crm/v3/objects/quotes_create", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" + } + } + }, + "required" : true + }, + "responses" : { + "201" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/batch/upsert" : { + "post" : { + "tags" : [ "Batch" ], + "summary" : "Create or update a batch of quotes by unique property values", + "description" : "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", + "operationId" : "post-/crm/v3/objects/quotes/batch/upsert_upsert", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInputUpsert" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObject" + } + } + } + }, + "207" : { + "description" : "multiple statuses", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObjectWithErrors" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.write" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.write" ] + } ] + } + }, + "/crm/v3/objects/quotes/search" : { + "post" : { + "tags" : [ "Search" ], + "operationId" : "post-/crm/v3/objects/quotes/search_doSearch", + "parameters" : [ ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PublicObjectSearchRequest" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "description" : "successful operation", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/CollectionResponseWithTotalSimplePublicObjectForwardPaging" + } + } + } + }, + "default" : { + "$ref" : "#/components/responses/Error" + } + }, + "security" : [ { + "oauth2_legacy" : [ "e-commerce" ] + }, { + "oauth2" : [ "crm.objects.quotes.read" ] + }, { + "private_apps_legacy" : [ "e-commerce" ] + }, { + "private_apps" : [ "crm.objects.quotes.read" ] + } ], + "x-hubspot-rate-limit-exemptions" : [ "ten-secondly" ] + } + } + }, + "components" : { + "schemas" : { + "StandardError" : { + "required" : [ "category", "context", "errors", "links", "message", "status" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "object", + "properties" : { } + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "id" : { + "type" : "string" + }, + "category" : { + "type" : "string" + }, + "message" : { + "type" : "string" + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ErrorDetail" + } + }, + "status" : { + "type" : "string" + } + } + }, + "CollectionResponseAssociatedId" : { + "required" : [ "results" ], + "type" : "object", + "properties" : { + "paging" : { + "$ref" : "#/components/schemas/Paging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AssociatedId" + } + } + } + }, + "PublicAssociationsForObject" : { + "required" : [ "to", "types" ], + "type" : "object", + "properties" : { + "types" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/AssociationSpec" + } + }, + "to" : { + "$ref" : "#/components/schemas/PublicObjectId" + } + } + }, + "BatchResponseSimplePublicObject" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "FilterGroup" : { + "required" : [ "filters" ], + "type" : "object", + "properties" : { + "filters" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/Filter" + } + } + } + }, + "ErrorDetail" : { + "required" : [ "message" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "string", + "description" : "A specific category that contains more specific detail about the error" + }, + "code" : { + "type" : "string", + "description" : "The status code associated with the error detail" + }, + "in" : { + "type" : "string", + "description" : "The name of the field or parameter in which the error was found." + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : "Context about the error condition", + "example" : { + "missingScopes" : [ "scope1", "scope2" ] + } + }, + "message" : { + "type" : "string", + "description" : "A human readable message describing the error along with remediation steps where appropriate" + } + } + }, + "ForwardPaging" : { + "type" : "object", + "properties" : { + "next" : { + "$ref" : "#/components/schemas/NextPage" + } + } + }, + "SimplePublicObjectId" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + } + } + }, + "BatchResponseSimplePublicUpsertObjectWithErrors" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "numErrors" : { + "type" : "integer", + "format" : "int32" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicUpsertObject" + } + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StandardError" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "BatchReadInputSimplePublicObjectId" : { + "required" : [ "inputs", "properties", "propertiesWithHistory" ], + "type" : "object", + "properties" : { + "propertiesWithHistory" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "idProperty" : { + "type" : "string" + }, + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectId" + } + }, + "properties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "BatchResponseSimplePublicUpsertObject" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicUpsertObject" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "BatchInputSimplePublicObjectId" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectId" + } + } + } + }, + "ValueWithTimestamp" : { + "required" : [ "sourceType", "timestamp", "value" ], + "type" : "object", + "properties" : { + "sourceId" : { + "type" : "string" + }, + "sourceType" : { + "type" : "string" + }, + "sourceLabel" : { + "type" : "string" + }, + "updatedByUserId" : { + "type" : "integer", + "format" : "int32" + }, + "value" : { + "type" : "string" + }, + "timestamp" : { + "type" : "string", + "format" : "date-time" + } + } + }, + "BatchInputSimplePublicObjectBatchInputUpsert" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectBatchInputUpsert" + } + } + } + }, + "CollectionResponseWithTotalSimplePublicObjectForwardPaging" : { + "required" : [ "results", "total" ], + "type" : "object", + "properties" : { + "total" : { + "type" : "integer", + "format" : "int32" + }, + "paging" : { + "$ref" : "#/components/schemas/ForwardPaging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + } + } + }, + "SimplePublicObject" : { + "required" : [ "createdAt", "id", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean", + "example" : false + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string", + "example" : "512" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "nullable" : true + }, + "example" : { + "property_date" : "1572480000000", + "property_radio" : "option_1", + "property_number" : "17", + "property_string" : "value", + "property_checkbox" : "false", + "property_dropdown" : "choice_b", + "property_multiple_checkboxes" : "chocolate;strawberry" + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + }, + "example" : { + "id" : "512", + "properties" : { + "hs_createdate" : "2019-10-30T03:30:17.883Z", + "hs_expiration_date" : "2020-09-06T02:43:14.491Z", + "hs_quote_amount" : "3000.00", + "hs_quote_number" : "20200916-092813983", + "hs_status" : "PENDING_APPROVAL", + "hs_terms" : "discount provided, two year term with customer", + "hs_title" : "Services Proposal", + "hubspot_owner_id" : "910901" + }, + "createdAt" : "2019-10-30T03:30:17.883Z", + "updatedAt" : "2019-12-07T16:50:06.678Z", + "archived" : false + } + }, + "PublicObjectId" : { + "required" : [ "id" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + } + } + }, + "Paging" : { + "type" : "object", + "properties" : { + "next" : { + "$ref" : "#/components/schemas/NextPage" + }, + "prev" : { + "$ref" : "#/components/schemas/PreviousPage" + } + } + }, + "PublicObjectSearchRequest" : { + "type" : "object", + "properties" : { + "query" : { + "type" : "string" + }, + "limit" : { + "type" : "integer", + "format" : "int32" + }, + "after" : { + "type" : "string" + }, + "sorts" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "properties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "filterGroups" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/FilterGroup" + } + } + } + }, + "Error" : { + "required" : [ "category", "correlationId", "message" ], + "type" : "object", + "properties" : { + "subCategory" : { + "type" : "string", + "description" : "A specific category that contains more specific detail about the error" + }, + "context" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "description" : "Context about the error condition", + "example" : { + "missingScopes" : [ "scope1", "scope2" ], + "invalidPropertyName" : [ "propertyValue" ] + } + }, + "correlationId" : { + "type" : "string", + "description" : "A unique identifier for the request. Include this value with any error reports or support tickets", + "format" : "uuid", + "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + }, + "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", + "example" : { + "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" + } + }, + "message" : { + "type" : "string", + "description" : "A human readable message describing the error along with remediation steps where appropriate", + "example" : "Invalid input (details will vary based on the error)" + }, + "category" : { + "type" : "string", + "description" : "The error category", + "example" : "VALIDATION_ERROR" + }, + "errors" : { + "type" : "array", + "description" : "further information about the error", + "items" : { + "$ref" : "#/components/schemas/ErrorDetail" + } + } + }, + "example" : { + "message" : "Invalid input (details will vary based on the error)", + "correlationId" : "aeb5f871-7f07-4993-9211-075dc63e7cbf", + "category" : "VALIDATION_ERROR", + "links" : { + "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" + } + } + }, + "SimplePublicObjectBatchInputUpsert" : { + "required" : [ "id", "properties" ], + "type" : "object", + "properties" : { + "idProperty" : { + "type" : "string" + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + } + }, + "BatchResponseSimplePublicObjectWithErrors" : { + "required" : [ "completedAt", "results", "startedAt", "status" ], + "type" : "object", + "properties" : { + "completedAt" : { + "type" : "string", + "format" : "date-time" + }, + "numErrors" : { + "type" : "integer", + "format" : "int32" + }, + "requestedAt" : { + "type" : "string", + "format" : "date-time" + }, + "startedAt" : { + "type" : "string", + "format" : "date-time" + }, + "links" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObject" + } + }, + "errors" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/StandardError" + } + }, + "status" : { + "type" : "string", + "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] + } + } + }, + "SimplePublicObjectInput" : { + "required" : [ "properties" ], + "type" : "object", + "properties" : { + "objectWriteTraceId" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + }, + "example" : { + "property_date" : "1572480000000", + "property_radio" : "option_1", + "property_number" : "17", + "property_string" : "value", + "property_checkbox" : "false", + "property_dropdown" : "choice_b", + "property_multiple_checkboxes" : "chocolate;strawberry" + } + } + }, + "example" : { + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + }, + "associations" : [ { + "to" : { + "id" : "101" + }, + "types" : [ { + "associationCategory" : "HUBSPOT_DEFINED", + "associationTypeId" : 2 + } ] + } ] + } + }, + "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" : { + "required" : [ "results" ], + "type" : "object", + "properties" : { + "paging" : { + "$ref" : "#/components/schemas/ForwardPaging" + }, + "results" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" + } + } + } + }, + "AssociationSpec" : { + "required" : [ "associationCategory", "associationTypeId" ], + "type" : "object", + "properties" : { + "associationCategory" : { + "type" : "string", + "enum" : [ "HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED" ] + }, + "associationTypeId" : { + "type" : "integer", + "format" : "int32" + } + } + }, + "SimplePublicObjectWithAssociations" : { + "required" : [ "createdAt", "id", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "associations" : { + "type" : "object", + "additionalProperties" : { + "$ref" : "#/components/schemas/CollectionResponseAssociatedId" + } + }, + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean" + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string", + "nullable" : true + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + }, + "example" : { + "properties" : { + "hs_createdate" : "2019-10-30T03:30:17.883Z", + "hs_expiration_date" : "2020-09-06T02:43:14.491Z", + "hs_quote_amount" : "3000.00", + "hs_quote_number" : "20200916-092813983", + "hs_status" : "PENDING_APPROVAL", + "hs_terms" : "discount provided, two year term with customer", + "hs_title" : "Services Proposal", + "hubspot_owner_id" : "910901" + } + } + }, + "Filter" : { + "required" : [ "operator", "propertyName" ], + "type" : "object", + "properties" : { + "highValue" : { + "type" : "string" + }, + "propertyName" : { + "type" : "string" + }, + "values" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "value" : { + "type" : "string" + }, + "operator" : { + "type" : "string", + "description" : "null", + "enum" : [ "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN" ] + } + } + }, + "BatchInputSimplePublicObjectBatchInput" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectBatchInput" + } + } + } + }, + "BatchInputSimplePublicObjectInputForCreate" : { + "required" : [ "inputs" ], + "type" : "object", + "properties" : { + "inputs" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" + } + } + } + }, + "PreviousPage" : { + "required" : [ "before" ], + "type" : "object", + "properties" : { + "before" : { + "type" : "string" + }, + "link" : { + "type" : "string" + } + } + }, + "SimplePublicUpsertObject" : { + "required" : [ "createdAt", "id", "new", "properties", "updatedAt" ], + "type" : "object", + "properties" : { + "createdAt" : { + "type" : "string", + "format" : "date-time" + }, + "archived" : { + "type" : "boolean" + }, + "archivedAt" : { + "type" : "string", + "format" : "date-time" + }, + "new" : { + "type" : "boolean" + }, + "propertiesWithHistory" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/ValueWithTimestamp" + } + } + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "updatedAt" : { + "type" : "string", + "format" : "date-time" + } + } + }, + "SimplePublicObjectBatchInput" : { + "required" : [ "id", "properties" ], + "type" : "object", + "properties" : { + "idProperty" : { + "type" : "string", + "example" : "my_unique_property_name" + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + }, + "example" : { + "id" : "1", + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + } + } + }, + "AssociatedId" : { + "required" : [ "id", "type" ], + "type" : "object", + "properties" : { + "id" : { + "type" : "string" + }, + "type" : { + "type" : "string" + } + } + }, + "NextPage" : { + "required" : [ "after" ], + "type" : "object", + "properties" : { + "link" : { + "type" : "string", + "example" : "?after=NTI1Cg%3D%3D" + }, + "after" : { + "type" : "string", + "example" : "NTI1Cg%3D%3D" + } + }, + "example" : { + "after" : "NTI1Cg%3D%3D", + "link" : "?after=NTI1Cg%3D%3D" + } + }, + "SimplePublicObjectInputForCreate" : { + "required" : [ "associations", "properties" ], + "type" : "object", + "properties" : { + "associations" : { + "type" : "array", + "items" : { + "$ref" : "#/components/schemas/PublicAssociationsForObject" + } + }, + "objectWriteTraceId" : { + "type" : "string" + }, + "properties" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + } + }, + "example" : { + "properties" : { + "hs_title" : "Pawnee Paper Deal", + "hs_status" : "PENDING_APPROVAL" + }, + "associations" : [ { + "to" : { + "id" : "101" + }, + "types" : [ { + "associationCategory" : "HUBSPOT_DEFINED", + "associationTypeId" : 2 + } ] + } ] + } + } + }, + "responses" : { + "Error" : { + "description" : "An error occurred.", + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/Error" + } + } + } + } + }, + "securitySchemes" : { + "oauth2_legacy" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", + "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", + "scopes" : { + "crm.objects.goals.read" : "Read goals", + "tickets" : "Read and write tickets", + "crm.objects.custom.read" : "View custom object records", + "e-commerce" : "e-commerce", + "crm.objects.custom.write" : "Change custom object records", + "media_bridge.read" : "Read media and media events" + } + } + } + }, + "oauth2" : { + "type" : "oauth2", + "flows" : { + "authorizationCode" : { + "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", + "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", + "scopes" : { + "crm.objects.companies.write" : " ", + "crm.objects.contacts.write" : " ", + "crm.objects.users.write" : "Write User CRM objects", + "crm.objects.commercepayments.read" : "Read the COMMERCE_PAYMENT object.", + "crm.objects.leads.write" : "Modify lead objects", + "crm.objects.subscriptions.read" : "Read Commerce Subscriptions", + "crm.objects.carts.read" : "Read carts", + "crm.objects.orders.write" : "Write orders", + "crm.objects.quotes.read" : "Quotes", + "crm.objects.services.read" : "Read services", + "crm.objects.orders.read" : "Read Orders", + "crm.objects.contacts.read" : " ", + "crm.objects.listings.read" : "Read listings", + "crm.objects.carts.write" : "Write cart", + "crm.objects.courses.write" : "Write courses", + "crm.objects.quotes.write" : "Quotes", + "crm.objects.users.read" : "Read User CRM objects", + "crm.objects.companies.read" : " ", + "crm.objects.appointments.read" : "Read appointments", + "crm.objects.partner-clients.write" : "Modify Partner Client CRM objects", + "crm.objects.leads.read" : "Read lead objects", + "crm.objects.appointments.write" : "Write appointments", + "crm.objects.services.write" : "Write services", + "crm.objects.line_items.read" : "Line Items", + "crm.objects.courses.read" : "Read courses", + "crm.objects.deals.read" : " ", + "crm.objects.invoices.read" : "Read invoices objects", + "crm.objects.partner-clients.read" : "View Partner Client CRM objects", + "crm.objects.deals.write" : " ", + "crm.objects.line_items.write" : "Line Items", + "crm.objects.listings.write" : "Write listings" + } + } + } + }, + "private_apps_legacy" : { + "type" : "apiKey", + "name" : "private-app-legacy", + "in" : "header" + }, + "private_apps" : { + "type" : "apiKey", + "name" : "private-app", + "in" : "header" + } + } + }, + "x-hubspot-available-client-libraries" : [ "PHP", "Node", "Ruby", "Python" ], + "x-hubspot-product-tier-requirements" : { + "marketing" : "FREE", + "sales" : "FREE", + "service" : "FREE", + "cms" : "FREE" + }, + "x-hubspot-documentation-banner" : "NONE" +} \ No newline at end of file From bd6bd4779eef55c50cdf32bf6c5dee09e9554ba5 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Tue, 7 Jan 2025 19:19:26 +0530 Subject: [PATCH 02/30] 9 tests done --- ballerina/Ballerina.toml | 6 +- ballerina/Dependencies.toml | 332 ++++++++++++++++++++++++ ballerina/client.bal | 245 ++++++++++++++++++ ballerina/quotes_service.bal | 196 +++++++------- ballerina/tests/mock_service.bal | 59 ----- ballerina/tests/test.bal | 308 +++++++++++++++++----- ballerina/tests/tests.bal | 111 -------- ballerina/types.bal | 358 +++++++++++++------------- ballerina/utils.bal | 18 +- build-config/resources/Ballerina.toml | 4 +- docs/spec/quotes.json | 62 ++--- 11 files changed, 1139 insertions(+), 560 deletions(-) create mode 100644 ballerina/Dependencies.toml delete mode 100644 ballerina/tests/mock_service.bal delete mode 100644 ballerina/tests/tests.bal diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index efb4e7b..ec2658f 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -5,12 +5,12 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = [] -# icon = "icon.png" # TODO: update icon.png +keywords = [] # TODO: Add keywords +# icon = "icon.png" # TODO: Add icon repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes" [build-options] observabilityIncluded = true -[platform.java21] +[platform.java17] graalvmCompatible = true diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml new file mode 100644 index 0000000..5b89209 --- /dev/null +++ b/ballerina/Dependencies.toml @@ -0,0 +1,332 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.10.0" + +[[package]] +org = "ballerina" +name = "auth" +version = "2.12.0" +dependencies = [ + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "cache" +version = "3.8.0" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "task"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "constraint" +version = "1.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "crypto" +version = "2.7.2" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "file" +version = "1.10.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "http" +version = "2.12.4" +dependencies = [ + {org = "ballerina", name = "auth"}, + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "file"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.decimal"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "mime"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "observe"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerina", packageName = "http", moduleName = "http"}, + {org = "ballerina", packageName = "http", moduleName = "http.httpscerr"} +] + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.3" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "jwt" +version = "2.13.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "lang.__internal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.decimal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.error" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.int" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "lang.regexp" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.string" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.regexp"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "log" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "observe"} +] + +[[package]] +org = "ballerina" +name = "mime" +version = "2.10.1" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "oauth2" +version = "2.12.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerina", packageName = "oauth2", moduleName = "oauth2"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.3.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "os" +version = "1.8.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "task" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "test" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.error"} +] +modules = [ + {org = "ballerina", packageName = "test", moduleName = "test"} +] + +[[package]] +org = "ballerina" +name = "time" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "url" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "url", moduleName = "url"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "ballerinax" +name = "hubspot.crm.commerce.quotes" +version = "1.0.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "test"}, + {org = "ballerina", name = "url"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "ballerinax", packageName = "hubspot.crm.commerce.quotes", moduleName = "hubspot.crm.commerce.quotes"} +] + diff --git a/ballerina/client.bal b/ballerina/client.bal index 66cdc3f..9c8442f 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -1,3 +1,6 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + // Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, @@ -13,3 +16,245 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. + +import ballerina/http; + +public isolated client class Client { + final http:Client clientEp; + final readonly & ApiKeysConfig? apiKeyConfig; + # Gets invoked to initialize the `connector`. + # + # + config - The configurations to be used when initializing the `connector` + # + serviceUrl - URL of the target service + # + return - An error if connector initialization failed + public isolated function init(ConnectionConfig config, string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes") returns error? { + http:ClientConfiguration httpClientConfig = {httpVersion: config.httpVersion, timeout: config.timeout, forwarded: config.forwarded, poolConfig: config.poolConfig, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, validation: config.validation}; + do { + if config.http1Settings is ClientHttp1Settings { + ClientHttp1Settings settings = check config.http1Settings.ensureType(ClientHttp1Settings); + httpClientConfig.http1Settings = {...settings}; + } + if config.http2Settings is http:ClientHttp2Settings { + httpClientConfig.http2Settings = check config.http2Settings.ensureType(http:ClientHttp2Settings); + } + if config.cache is http:CacheConfig { + httpClientConfig.cache = check config.cache.ensureType(http:CacheConfig); + } + if config.responseLimits is http:ResponseLimitConfigs { + httpClientConfig.responseLimits = check config.responseLimits.ensureType(http:ResponseLimitConfigs); + } + if config.secureSocket is http:ClientSecureSocket { + httpClientConfig.secureSocket = check config.secureSocket.ensureType(http:ClientSecureSocket); + } + if config.proxy is http:ProxyConfig { + httpClientConfig.proxy = check config.proxy.ensureType(http:ProxyConfig); + } + } + if config.auth is ApiKeysConfig { + self.apiKeyConfig = (config.auth).cloneReadOnly(); + } else { + httpClientConfig.auth = config.auth; + self.apiKeyConfig = (); + } + http:Client httpEp = check new (serviceUrl, httpClientConfig); + self.clientEp = httpEp; + return; + } + + # Archive + # + # + headers - Headers to be sent with the request + # + return - No content + resource isolated function delete [string quoteId](map headers = {}) returns http:Response|error { + string resourcePath = string `/${getEncodedUri(quoteId)}`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + return self.clientEp->delete(resourcePath, headers = httpHeaders); + } + + # List + # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - successful operation + resource isolated function get .(map headers = {}, *GetCrmV3ObjectsQuotes_getpageQueries queries) returns CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error { + string resourcePath = string `/`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map queryParamEncoding = {"properties": {style: FORM, explode: true}, "propertiesWithHistory": {style: FORM, explode: true}, "associations": {style: FORM, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + map httpHeaders = getMapForHeaders(headerValues); + return self.clientEp->get(resourcePath, httpHeaders); + } + + # Read + # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - successful operation + resource isolated function get [string quoteId](map headers = {}, *GetCrmV3ObjectsQuotesQuoteid_getbyidQueries queries) returns SimplePublicObjectWithAssociations|error { + string resourcePath = string `/${getEncodedUri(quoteId)}`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map queryParamEncoding = {"properties": {style: FORM, explode: true}, "propertiesWithHistory": {style: FORM, explode: true}, "associations": {style: FORM, explode: true}}; + resourcePath = resourcePath + check getPathForQueryParam(queries, queryParamEncoding); + map httpHeaders = getMapForHeaders(headerValues); + return self.clientEp->get(resourcePath, httpHeaders); + } + + # Update + # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - successful operation + resource isolated function patch [string quoteId](SimplePublicObjectInput payload, map headers = {}, *PatchCrmV3ObjectsQuotesQuoteid_updateQueries queries) returns SimplePublicObject|error { + string resourcePath = string `/${getEncodedUri(quoteId)}`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + resourcePath = resourcePath + check getPathForQueryParam(queries); + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->patch(resourcePath, request, httpHeaders); + } + + # Create + # + # + headers - Headers to be sent with the request + # + return - successful operation + resource isolated function post .(SimplePublicObjectInputForCreate payload, map headers = {}) returns SimplePublicObject|error { + string resourcePath = string `/`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # Archive a batch of quotes by ID + # + # + headers - Headers to be sent with the request + # + return - No content + resource isolated function post batch/archive(BatchInputSimplePublicObjectId payload, map headers = {}) returns http:Response|error { + string resourcePath = string `/batch/archive`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # Create a batch of quotes + # + # + headers - Headers to be sent with the request + # + return - successful operation + resource isolated function post batch/create(BatchInputSimplePublicObjectInputForCreate payload, map headers = {}) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors|error { + string resourcePath = string `/batch/create`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # Read a batch of quotes by internal ID, or unique property values + # + # + headers - Headers to be sent with the request + # + queries - Queries to be sent with the request + # + return - successful operation + resource isolated function post batch/read(BatchReadInputSimplePublicObjectId payload, map headers = {}, *PostCrmV3ObjectsQuotesBatchRead_readQueries queries) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors|error { + string resourcePath = string `/batch/read`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + resourcePath = resourcePath + check getPathForQueryParam(queries); + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # Update a batch of quotes by internal ID, or unique property values + # + # + headers - Headers to be sent with the request + # + return - successful operation + resource isolated function post batch/update(BatchInputSimplePublicObjectBatchInput payload, map headers = {}) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors|error { + string resourcePath = string `/batch/update`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # Create or update a batch of quotes by unique property values + # + # + headers - Headers to be sent with the request + # + return - successful operation + resource isolated function post batch/upsert(BatchInputSimplePublicObjectBatchInputUpsert payload, map headers = {}) returns BatchResponseSimplePublicUpsertObject|BatchResponseSimplePublicUpsertObjectWithErrors|error { + string resourcePath = string `/batch/upsert`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } + + # + headers - Headers to be sent with the request + # + return - successful operation + resource isolated function post search(PublicObjectSearchRequest payload, map headers = {}) returns CollectionResponseWithTotalSimplePublicObjectForwardPaging|error { + string resourcePath = string `/search`; + map headerValues = {...headers}; + if self.apiKeyConfig is ApiKeysConfig { + headerValues["private-app-legacy"] = self.apiKeyConfig?.private\-app\-legacy; + headerValues["private-app"] = self.apiKeyConfig?.private\-app; + } + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + return self.clientEp->post(resourcePath, request, httpHeaders); + } +} diff --git a/ballerina/quotes_service.bal b/ballerina/quotes_service.bal index aea1125..b035f29 100644 --- a/ballerina/quotes_service.bal +++ b/ballerina/quotes_service.bal @@ -1,111 +1,111 @@ -// AUTO-GENERATED FILE. -// This file is auto-generated by the Ballerina OpenAPI tool. +// // AUTO-GENERATED FILE. +// // This file is auto-generated by the Ballerina OpenAPI tool. -import ballerina/http; +// import ballerina/http; -listener http:Listener ep0 = new (443, config = {host: "api.hubapi.com"}); +// listener http:Listener ep0 = new (443, config = {host: "api.hubapi.com"}); -service / on ep0 { - # Archive - # - # + return - returns can be any of following types - # http:NoContent (No content) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:NoContent|AnydataDefault { - } +// service / on ep0 { +// # Archive +// # +// # + return - returns can be any of following types +// # http:NoContent (No content) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:NoContent|AnydataDefault { +// } - # List - # - # + 'limit - The maximum number of results to display per page. - # + after - The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. - # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. - # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. - # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. - # + archived - Whether to return only results that have been archived. - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function get crm/v3/objects/quotes(string? after, string[]? properties, string[]? propertiesWithHistory, string[]? associations, int:Signed32 'limit = 10, boolean archived = false) returns CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|AnydataDefault { - } +// # List +// # +// # + 'limit - The maximum number of results to display per page. +// # + after - The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. +// # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. +// # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. +// # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. +// # + archived - Whether to return only results that have been archived. +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function get crm/v3/objects/quotes(string? after, string[]? properties, string[]? propertiesWithHistory, string[]? associations, int:Signed32 'limit = 10, boolean archived = false) returns CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|AnydataDefault { +// } - # Read - # - # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. - # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. - # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. - # + archived - Whether to return only results that have been archived. - # + idProperty - The name of a property whose values are unique for this object type - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function get crm/v3/objects/quotes/[string quoteId](string[]? properties, string[]? propertiesWithHistory, string[]? associations, string? idProperty, boolean archived = false) returns SimplePublicObjectWithAssociations|AnydataDefault { - } +// # Read +// # +// # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. +// # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. +// # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. +// # + archived - Whether to return only results that have been archived. +// # + idProperty - The name of a property whose values are unique for this object type +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function get crm/v3/objects/quotes/[string quoteId](string[]? properties, string[]? propertiesWithHistory, string[]? associations, string? idProperty, boolean archived = false) returns SimplePublicObjectWithAssociations|AnydataDefault { +// } - # Update - # - # + idProperty - The name of a property whose values are unique for this object type - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function patch crm/v3/objects/quotes/[string quoteId](string? idProperty, @http:Payload SimplePublicObjectInput payload) returns SimplePublicObject|AnydataDefault { - } +// # Update +// # +// # + idProperty - The name of a property whose values are unique for this object type +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function patch crm/v3/objects/quotes/[string quoteId](string? idProperty, @http:Payload SimplePublicObjectInput payload) returns SimplePublicObject|AnydataDefault { +// } - # Create - # - # + return - returns can be any of following types - # http:Created (successful operation) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes(@http:Payload SimplePublicObjectInputForCreate payload) returns SimplePublicObject|AnydataDefault { - } +// # Create +// # +// # + return - returns can be any of following types +// # http:Created (successful operation) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes(@http:Payload SimplePublicObjectInputForCreate payload) returns SimplePublicObject|AnydataDefault { +// } - # Archive a batch of quotes by ID - # - # + return - returns can be any of following types - # http:NoContent (No content) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/batch/archive(@http:Payload BatchInputSimplePublicObjectId payload) returns http:NoContent|AnydataDefault { - } +// # Archive a batch of quotes by ID +// # +// # + return - returns can be any of following types +// # http:NoContent (No content) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/batch/archive(@http:Payload BatchInputSimplePublicObjectId payload) returns http:NoContent|AnydataDefault { +// } - # Create a batch of quotes - # - # + return - returns can be any of following types - # http:Created (successful operation) - # http:MultiStatus (multiple statuses) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/batch/create(@http:Payload BatchInputSimplePublicObjectInputForCreate payload) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { - } +// # Create a batch of quotes +// # +// # + return - returns can be any of following types +// # http:Created (successful operation) +// # http:MultiStatus (multiple statuses) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/batch/create(@http:Payload BatchInputSimplePublicObjectInputForCreate payload) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { +// } - # Read a batch of quotes by internal ID, or unique property values - # - # + archived - Whether to return only results that have been archived. - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:MultiStatus (multiple statuses) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/batch/read(@http:Payload BatchReadInputSimplePublicObjectId payload, boolean archived = false) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { - } +// # Read a batch of quotes by internal ID, or unique property values +// # +// # + archived - Whether to return only results that have been archived. +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:MultiStatus (multiple statuses) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/batch/read(@http:Payload BatchReadInputSimplePublicObjectId payload, boolean archived = false) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { +// } - # Update a batch of quotes by internal ID, or unique property values - # - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:MultiStatus (multiple statuses) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/batch/update(@http:Payload BatchInputSimplePublicObjectBatchInput payload) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { - } +// # Update a batch of quotes by internal ID, or unique property values +// # +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:MultiStatus (multiple statuses) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/batch/update(@http:Payload BatchInputSimplePublicObjectBatchInput payload) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { +// } - # Create or update a batch of quotes by unique property values - # - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:MultiStatus (multiple statuses) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/batch/upsert(@http:Payload BatchInputSimplePublicObjectBatchInputUpsert payload) returns BatchResponseSimplePublicUpsertObjectOk|BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus|AnydataDefault { - } +// # Create or update a batch of quotes by unique property values +// # +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:MultiStatus (multiple statuses) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/batch/upsert(@http:Payload BatchInputSimplePublicObjectBatchInputUpsert payload) returns BatchResponseSimplePublicUpsertObjectOk|BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus|AnydataDefault { +// } - # + return - returns can be any of following types - # http:Ok (successful operation) - # http:DefaultStatusCodeResponse (An error occurred.) - resource function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload) returns CollectionResponseWithTotalSimplePublicObjectForwardPagingOk|AnydataDefault { - } -} +// # + return - returns can be any of following types +// # http:Ok (successful operation) +// # http:DefaultStatusCodeResponse (An error occurred.) +// resource function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload) returns CollectionResponseWithTotalSimplePublicObjectForwardPagingOk|AnydataDefault { +// } +// } diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal deleted file mode 100644 index b8dd9bd..0000000 --- a/ballerina/tests/mock_service.bal +++ /dev/null @@ -1,59 +0,0 @@ -import ballerina/http; - -service /hubspotMockApi on new http:Listener(8080) { - - resource function post /crm/v3/objects/quotes/batch/archive (http:Caller caller, http:Request req) returns error? { - json response = {"message": "Batch quotes archived successfully."}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes (http:Caller caller, http:Request req) returns error? { - json response = {"id": "12345", "message": "Quote created successfully."}; - check caller->respond(response); - } - - resource function get /crm/v3/objects/quotes (http:Caller caller, http:Request req) returns error? { - json response = {"results": [{"id": "12345", "name": "Sample Quote 1"}, {"id": "67890", "name": "Sample Quote 2"}]}; - check caller->respond(response); - } - - resource function delete /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId) returns error? { - json response = {"id": quoteId, "message": "Quote archived successfully."}; - check caller->respond(response); - } - - resource function patch /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId, http:Request req) returns error? { - json response = {"id": quoteId, "message": "Quote updated successfully."}; - check caller->respond(response); - } - - resource function get /crm/v3/objects/quotes/{quoteId} (http:Caller caller, string quoteId) returns error? { - json response = {"id": quoteId, "name": "Sample Quote", "details": "Mock details for the quote."}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes/batch/update (http:Caller caller, http:Request req) returns error? { - json response = {"message": "Batch quotes updated successfully."}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes/batch/upsert (http:Caller caller, http:Request req) returns error? { - json response = {"message": "Batch quotes upserted successfully."}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes/batch/create (http:Caller caller, http:Request req) returns error? { - json response = {"message": "Batch quotes created successfully."}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes/search (http:Caller caller, http:Request req) returns error? { - json response = {"results": [{"id": "12345", "name": "Searched Quote 1"}, {"id": "67890", "name": "Searched Quote 2"}]}; - check caller->respond(response); - } - - resource function post /crm/v3/objects/quotes/batch/read (http:Caller caller, http:Request req) returns error? { - json response = {"results": [{"id": "12345", "name": "Read Quote 1"}, {"id": "67890", "name": "Read Quote 2"}]}; - check caller->respond(response); - } -} diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 2949087..00fb2bc 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -1,71 +1,241 @@ -// // AUTO-GENERATED FILE. -// // This file is auto-generated by the Ballerina OpenAPI tool. - -// import ballerina/http; -// import ballerina/test; -// import ballerina/oauth2; - -// configurable string clientId = ?; -// configurable string clientSecret = ?; -// configurable string refreshToken = ?; -// configurable string serviceUrl = ?; - -// OAuth2RefreshTokenGrantConfig authConfig = { -// clientId: clientId, -// clientSecret: clientSecret, -// refreshToken: refreshToken, -// credentialBearer: oauth2:POST_BODY_BEARER -// }; - - -// // configurable http:BearerTokenConfig & readonly authConfig = ?; -// ConnectionConfig config = {auth : authConfig}; -// Client baseClient = check new Client(config, serviceUrl = "https://api.hubapi.com"); - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/batch/archive/archive() { -// json payload = {}; -// var response = baseClient->post("/crm/v3/objects/quotes/batch/archive", payload); -// test:assertEquals(response is http:Response, true, msg = "Response is not HTTP response"); -// test:assertEquals(response.getJsonPayload(), {"message": "Batch quotes archived successfully."}); +import ballerina/test; +import ballerina/oauth2; +import ballerina/http; +import ballerina/io; + +configurable string clientId = ?; +configurable string clientSecret = ?; +configurable string refreshToken = ?; + +OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + +final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; + +final Client hubspotClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + +string testQuoteId = ""; + + +// Test function for creating a quote +@test:Config{} +function testCreateNewQuote() returns error? { + SimplePublicObjectInputForCreate payload = { + associations: [], + properties: { + "hs_title": "Test Quote", + "hs_expiration_date": "2025-01-31" + } + }; + + // Call the Quotes API to create a new quote + SimplePublicObject response = check hubspotClient->/.post(payload); + + // Set test id + testQuoteId = response.id; + + // Validate the response + test:assertTrue(response.id != ""); + +} +// Test function for creating a quote +@test:Config{} +function testCreateNewBatchOfQuotes() returns error? { + + SimplePublicObjectInputForCreate ob1 = { + associations: [], + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-02-28" + } + }; + + SimplePublicObjectInputForCreate ob2 = { + associations: [], + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-04-30" + } + }; + + BatchInputSimplePublicObjectInputForCreate payload = { + inputs: [ob1, ob2] + }; + + // Call the Quotes API to create a new quote + BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors response = check hubspotClient->/batch/create.post(payload); + + // Validate the response + test:assertTrue(response.results.length() > 0); + +} + + +// Test for retrieving all quotes +@test:Config{} +function testGetAllQuotes() returns error? { + + CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error response = check hubspotClient->/.get(); + + // Validate the response contains a list of quotes + if(response is CollectionResponseSimplePublicObjectWithAssociationsForwardPaging){ + test:assertTrue(response.results.length() > 0, + msg = "No quotes found in the response."); + }else { + io:println(response); + } +} + +// Test function for retrieving a quote +@test:Config{} +function testGetOneQuote() returns error? { + SimplePublicObjectWithAssociations|error response = check hubspotClient->/[testQuoteId].get(); + + if (response is SimplePublicObjectWithAssociations) { + // Validate essential fields + test:assertTrue(response.id == testQuoteId, msg = "Quote ID is missing."); + } else if (response is error) { + test:assertFail("Failed to retrieve quote: " + response.message()); + } +} + +// Test function for retrieving a batch of quotes +@test:Config{} +function testGetBatchOfQuotes() returns error? { + + SimplePublicObjectId ob0 = { + id: testQuoteId + }; + + BatchReadInputSimplePublicObjectId payload = { + properties: [], + propertiesWithHistory: [], + inputs: [ob0] + }; + + BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors response = check hubspotClient->/batch/read.post(payload); + + // Validate essential fields + test:assertTrue(response.results.length() == payload.inputs.length(), msg = string`Only ${response.results.length()} IDs found.`); +} + + +// Archive a quote by ID +@test:Config{} +function testArchiveOneQuote() returns error?{ + + http:Response|error response = check hubspotClient->/["0"].delete(); + + // Validate the response + if(response is http:Response){ + test:assertTrue(response.statusCode == 204); + }else{ + test:assertFail("Deletion failed."); + } +} + +// Archive batch of quotes by ID +@test:Config{} +function testArchiveBatchOfQuoteById() returns error?{ + + SimplePublicObjectId id0 = {id:"0"}; + + BatchInputSimplePublicObjectId payload = { + inputs:[ + id0 + ] + }; + + http:Response|error response = check hubspotClient->/batch/archive.post(payload); + + // Validate the response + if(response is http:Response){ + test:assertTrue(response.statusCode == 204); + }else{ + test:assertFail("Deletion failed."); + } +} + + +// Test function for updating a quote +@test:Config{} +function testUpdateOneQuote() returns error? { + SimplePublicObjectInput payload = { + properties: { + "hs_title": "Test Quote Modified", + "hs_expiration_date": "2025-03-31" + } + }; + + // Call the Quotes API to create a new quote + SimplePublicObject|error response = check hubspotClient->/[testQuoteId].patch(payload); + + // Validate the response + if(response is SimplePublicObject){ + test:assertTrue(response.id != "", + msg = "Quote in response does not match the expected quote."); + }else { + io:println(response); + } +} + +// Test function for updating a batch of quotes +@test:Config{} +function testUpdateBatchOfQuotes() returns error? { + + SimplePublicObjectBatchInput ob3 = { + id: testQuoteId, + properties: { + "hs_title": "Test Quote 3", + "hs_expiration_date": "2025-04-30" + } + }; + + BatchInputSimplePublicObjectBatchInput payload = { + inputs: [ob3] + }; + + // Call the Quotes API to create a new quote + BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors|error response = hubspotClient->/batch/update.post(payload); + + // Validate the response + if(response is BatchResponseSimplePublicObject){ + test:assertTrue(response.results.length() == payload.inputs.length(), + msg = "Quote in response does not match the expected quote."); + }else{ + test:assertFail("Errors in updating."); + } +} + +// // Test function for creating or updating a batch of quotes +// @test:Config{} +// function testCreateOrUpdateBatchOfQuotes() returns error? { + +// SimplePublicObjectBatchInputUpsert ob4 = { +// id: testQuoteId, +// properties: { +// "hs_title": "Test Quote 4", +// "hs_expiration_date": "2025-05-31" +// } +// }; + +// BatchInputSimplePublicObjectBatchInputUpsert payload = { +// inputs: [ob4] +// }; + +// // Call the Quotes API to create a new quote +// BatchResponseSimplePublicUpsertObject|BatchResponseSimplePublicUpsertObjectWithErrors|error response = hubspotClient->/batch/upsert.post(payload); + +// // Validate the response +// if(response is BatchResponseSimplePublicUpsertObject){ +// test:assertTrue(response.results.length() == payload.inputs.length(), +// msg = "Quote in response does not match the expected quote."); +// }else{ +// test:assertFail("Errors in updating."); +// } // } -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes_create() { -// } - -// @test:Config {} -// isolated function testGet-/crm/v3/objects/quotes_getPage() { -// } - -// @test:Config {} -// isolated function testDelete-/crm/v3/objects/quotes/{quoteId}_archive() { -// } - -// @test:Config {} -// isolated function testPatch-/crm/v3/objects/quotes/{quoteId}_update() { -// } - -// @test:Config {} -// isolated function testGet-/crm/v3/objects/quotes/{quoteId}_getById() { -// } - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/batch/update_update() { -// } - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/batch/upsert_upsert() { -// } - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/batch/create_create() { -// } - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/search_doSearch() { -// } - -// @test:Config {} -// isolated function testPost-/crm/v3/objects/quotes/batch/read_read() { -// } diff --git a/ballerina/tests/tests.bal b/ballerina/tests/tests.bal deleted file mode 100644 index 7524813..0000000 --- a/ballerina/tests/tests.bal +++ /dev/null @@ -1,111 +0,0 @@ -import ballerina/test; -import ballerina/oauth2; -import ballerina/http; -import ballerina/io; - -configurable string clientId = ?; -configurable string clientSecret = ?; -configurable string refreshToken = ?; - -OAuth2RefreshTokenGrantConfig auth = { - clientId, - clientSecret, - refreshToken, - credentialBearer: oauth2:POST_BODY_BEARER -}; - -final string serviceUrl = "https://api.hubapi.com"; - -final Client hubspotClient = check new Client(config = {auth}, serviceUrl = serviceUrl); - -string testQuoteId = ""; - - -// Test function for creating a quote -@test:Config{} -function testCreateNewQuote() returns error? { - SimplePublicObjectInputForCreate payload = { - associations: [], - properties: { - name: "Test Quote", - dealId: "123456", - totalAmount: "1000.00", - expirationDate: "2025-01-31", - paymentTerms: "Net 30" - } - }; - - // Call the Quotes API to create a new quote - SimplePublicObject|error response = check hubspotClient->/crm/v3/objects/quotes.post(payload); - - // Validate the response - test:assertTrue(response == payload, - msg = "Quote in response does not match the expected quote."); -} - -// Test for retrieving all quotes -@test:Config{} -function testGetAllQuotes() returns error? { - - CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error response = check hubspotClient->/crm/v3/objects/quotes; - - // Validate the response contains a list of quotes - if(response is CollectionResponseSimplePublicObjectWithAssociationsForwardPaging){ - test:assertTrue(response.results.length() >= 0, - msg = "No quotes found in the response."); - }else { - io:println(response); - } -} - -// Test function for retrieving a quote -@test:Config{} -function testGetOneQuote() returns error? { - - SimplePublicObjectWithAssociations|error response = check hubspotClient->/crm/v3/objects/quotes/[testQuoteId]; - - // Validate the response - if(response is SimplePublicObjectWithAssociations){ - test:assertTrue(response.id == testQuoteId, - msg = "Retrieved quote ID does not match the expected ID."); - }else{ - io:println(response); - } - -@test:Config{} -function testArchiveOneQuote() { - - http:Response|error response = hubspotClient->/crm/v3/objects/quotes/[testQuoteId].delete(); - - // Validate the response - if(response is SimplePublicObjectWithAssociations){ - test:assertTrue(response.id == testQuoteId, - msg = "Retrieved quote ID does not match the expected ID."); - }else{ - io:println(response); - } - -} - - -// Test function for updating a quote -@test:Config{} -function testUpdateOneQuote() returns error? { - SimplePublicObjectInput payload = { - properties: { - name: "Test Quote", - dealId: "123456", - totalAmount: "1000.00", - expirationDate: "2025-01-31", - paymentTerms: "Net 30" - } - }; - - // Call the Quotes API to create a new quote - SimplePublicObject|error response = check hubspotClient->/crm/v3/objects/quotes/[testQuoteId].patch(payload); - - // Validate the response - test:assertTrue(response == payload, - msg = "Quote in response does not match the expected quote."); -} - diff --git a/ballerina/types.bal b/ballerina/types.bal index 337767e..a2269ca 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -1,12 +1,58 @@ -// AUTO-GENERATED FILE. +// AUTO-GENERATED FILE. DO NOT MODIFY. // This file is auto-generated by the Ballerina OpenAPI tool. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/http; -public type CollectionResponseWithTotalSimplePublicObjectForwardPagingOk record {| - *http:Ok; - CollectionResponseWithTotalSimplePublicObjectForwardPaging body; -|}; +public type StandardError record { + record {} subCategory?; + record {|string[]...;|} context; + record {|string...;|} links; + string id?; + string category; + string message; + ErrorDetail[] errors; + string status; +}; + +public type CollectionResponseAssociatedId record { + Paging paging?; + AssociatedId[] results; +}; + +# Represents the Queries record for the operation: get-/crm/v3/objects/quotes/{quoteId}_getById +public type GetCrmV3ObjectsQuotesQuoteid_getbyidQueries record { + # A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. + string[] associations?; + # Whether to return only results that have been archived. + boolean archived = false; + # A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. + string[] propertiesWithHistory?; + # The name of a property whose values are unique for this object type + string idProperty?; + # A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. + string[] properties?; +}; + +public type PublicAssociationsForObject record { + AssociationSpec[] types; + PublicObjectId to; +}; public type BatchResponseSimplePublicObject record { string completedAt; @@ -17,6 +63,10 @@ public type BatchResponseSimplePublicObject record { "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; }; +public type FilterGroup record { + Filter[] filters; +}; + public type ErrorDetail record { # A specific category that contains more specific detail about the error string subCategory?; @@ -34,6 +84,10 @@ public type ForwardPaging record { NextPage next?; }; +public type SimplePublicObjectId record { + string id; +}; + public type BatchResponseSimplePublicUpsertObjectWithErrors record { string completedAt; int:Signed32 numErrors?; @@ -45,6 +99,13 @@ public type BatchResponseSimplePublicUpsertObjectWithErrors record { "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; }; +public type BatchReadInputSimplePublicObjectId record { + string[] propertiesWithHistory; + string idProperty?; + SimplePublicObjectId[] inputs; + string[] properties; +}; + public type BatchResponseSimplePublicUpsertObject record { string completedAt; string requestedAt?; @@ -54,17 +115,52 @@ public type BatchResponseSimplePublicUpsertObject record { "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; }; -public type BatchReadInputSimplePublicObjectId record { - string[] propertiesWithHistory; - string idProperty?; - SimplePublicObjectId[] inputs; - string[] properties; +# Represents the Queries record for the operation: post-/crm/v3/objects/quotes/batch/read_read +public type PostCrmV3ObjectsQuotesBatchRead_readQueries record { + # Whether to return only results that have been archived. + boolean archived = false; +}; + +public type ValueWithTimestamp record { + string sourceId?; + string sourceType; + string sourceLabel?; + int:Signed32 updatedByUserId?; + string value; + string timestamp; }; public type BatchInputSimplePublicObjectId record { SimplePublicObjectId[] inputs; }; +# OAuth2 Refresh Token Grant Configs +public type OAuth2RefreshTokenGrantConfig record {| + *http:OAuth2RefreshTokenGrantConfig; + # Refresh URL + string refreshUrl = "https://api.hubapi.com/oauth/v1/token"; +|}; + +public type BatchInputSimplePublicObjectBatchInputUpsert record { + SimplePublicObjectBatchInputUpsert[] inputs; +}; + +public type CollectionResponseWithTotalSimplePublicObjectForwardPaging record { + int:Signed32 total; + ForwardPaging paging?; + SimplePublicObject[] results; +}; + +public type SimplePublicObject record { + string createdAt; + boolean archived?; + string archivedAt?; + record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; + string id; + record {|string?...;|} properties; + string updatedAt; +}; + # Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. @display {label: "Connection Config"} public type ConnectionConfig record {| @@ -100,6 +196,10 @@ public type ConnectionConfig record {| boolean validation = true; |}; +public type PublicObjectId record { + string id; +}; + public type Paging record { NextPage next?; PreviousPage prev?; @@ -111,6 +211,15 @@ public type PatchCrmV3ObjectsQuotesQuoteid_updateQueries record { string idProperty?; }; +public type PublicObjectSearchRequest record { + string query?; + int:Signed32 'limit?; + string after?; + string[] sorts?; + string[] properties?; + FilterGroup[] filterGroups?; +}; + public type SimplePublicObjectBatchInputUpsert record { string idProperty?; string objectWriteTraceId?; @@ -129,11 +238,34 @@ public type BatchResponseSimplePublicObjectWithErrors record { "PENDING"|"PROCESSING"|"CANCELED"|"COMPLETE" status; }; -public type BatchResponseSimplePublicObjectWithErrorsMultiStatus record {| - *http:MultiStatus; - BatchResponseSimplePublicObjectWithErrors body; +# Proxy server configurations to be used with the HTTP client endpoint. +public type ProxyConfig record {| + # Host name of the proxy server + string host = ""; + # Proxy server port + int port = 0; + # Proxy server username + string userName = ""; + # Proxy server password + @display {label: "", kind: "password"} + string password = ""; |}; +public type SimplePublicObjectInput record { + string objectWriteTraceId?; + record {|string...;|} properties; +}; + +public type CollectionResponseSimplePublicObjectWithAssociationsForwardPaging record { + ForwardPaging paging?; + SimplePublicObjectWithAssociations[] results; +}; + +public type AssociationSpec record { + "HUBSPOT_DEFINED"|"USER_DEFINED"|"INTEGRATOR_DEFINED" associationCategory; + int:Signed32 associationTypeId; +}; + # Represents the Queries record for the operation: get-/crm/v3/objects/quotes_getPage public type GetCrmV3ObjectsQuotes_getpageQueries record { # A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. @@ -161,175 +293,6 @@ public type SimplePublicObjectWithAssociations record { string updatedAt; }; -public type AnydataDefault record {| - *http:DefaultStatusCodeResponse; - anydata body; -|}; - -public type BatchInputSimplePublicObjectInputForCreate record { - SimplePublicObjectInputForCreate[] inputs; -}; - -public type SimplePublicUpsertObject record { - string createdAt; - boolean archived?; - string archivedAt?; - boolean 'new; - record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; - string id; - record {|string...;|} properties; - string updatedAt; -}; - -public type BatchResponseSimplePublicUpsertObjectOk record {| - *http:Ok; - BatchResponseSimplePublicUpsertObject body; -|}; - -public type SimplePublicObjectBatchInput record { - string idProperty?; - string objectWriteTraceId?; - string id; - record {|string...;|} properties; -}; - -# Provides API key configurations needed when communicating with a remote HTTP endpoint. -public type ApiKeysConfig record {| - string private\-app\-legacy; - string private\-app; -|}; - -public type StandardError record { - record {} subCategory?; - record {|string[]...;|} context; - record {|string...;|} links; - string id?; - string category; - string message; - ErrorDetail[] errors; - string status; -}; - -public type CollectionResponseAssociatedId record { - Paging paging?; - AssociatedId[] results; -}; - -# Represents the Queries record for the operation: get-/crm/v3/objects/quotes/{quoteId}_getById -public type GetCrmV3ObjectsQuotesQuoteid_getbyidQueries record { - # A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. - string[] associations?; - # Whether to return only results that have been archived. - boolean archived = false; - # A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. - string[] propertiesWithHistory?; - # The name of a property whose values are unique for this object type - string idProperty?; - # A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. - string[] properties?; -}; - -public type PublicAssociationsForObject record { - AssociationSpec[] types; - PublicObjectId to; -}; - -public type FilterGroup record { - Filter[] filters; -}; - -public type SimplePublicObjectId record { - string id; -}; - -# Represents the Queries record for the operation: post-/crm/v3/objects/quotes/batch/read_read -public type PostCrmV3ObjectsQuotesBatchRead_readQueries record { - # Whether to return only results that have been archived. - boolean archived = false; -}; - -public type ValueWithTimestamp record { - string sourceId?; - string sourceType; - string sourceLabel?; - int:Signed32 updatedByUserId?; - string value; - string timestamp; -}; - -# OAuth2 Refresh Token Grant Configs -public type OAuth2RefreshTokenGrantConfig record {| - *http:OAuth2RefreshTokenGrantConfig; - # Refresh URL - string refreshUrl = "https://api.hubapi.com/oauth/v1/token"; -|}; - -public type BatchInputSimplePublicObjectBatchInputUpsert record { - SimplePublicObjectBatchInputUpsert[] inputs; -}; - -public type CollectionResponseWithTotalSimplePublicObjectForwardPaging record { - int:Signed32 total; - ForwardPaging paging?; - SimplePublicObject[] results; -}; - -public type SimplePublicObject record { - string createdAt; - boolean archived?; - string archivedAt?; - record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; - string id; - record {|string?...;|} properties; - string updatedAt; -}; - -public type PublicObjectId record { - string id; -}; - -public type PublicObjectSearchRequest record { - string query?; - int:Signed32 'limit?; - string after?; - string[] sorts?; - string[] properties?; - FilterGroup[] filterGroups?; -}; - -# Proxy server configurations to be used with the HTTP client endpoint. -public type ProxyConfig record {| - # Host name of the proxy server - string host = ""; - # Proxy server port - int port = 0; - # Proxy server username - string userName = ""; - # Proxy server password - @display {label: "", kind: "password"} - string password = ""; -|}; - -public type SimplePublicObjectInput record { - string objectWriteTraceId?; - record {|string...;|} properties; -}; - -public type BatchResponseSimplePublicObjectOk record {| - *http:Ok; - BatchResponseSimplePublicObject body; -|}; - -public type CollectionResponseSimplePublicObjectWithAssociationsForwardPaging record { - ForwardPaging paging?; - SimplePublicObjectWithAssociations[] results; -}; - -public type AssociationSpec record { - "HUBSPOT_DEFINED"|"USER_DEFINED"|"INTEGRATOR_DEFINED" associationCategory; - int:Signed32 associationTypeId; -}; - public type Filter record { string highValue?; string propertyName; @@ -358,10 +321,27 @@ public type BatchInputSimplePublicObjectBatchInput record { SimplePublicObjectBatchInput[] inputs; }; -public type BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus record {| - *http:MultiStatus; - BatchResponseSimplePublicUpsertObjectWithErrors body; -|}; +public type BatchInputSimplePublicObjectInputForCreate record { + SimplePublicObjectInputForCreate[] inputs; +}; + +public type SimplePublicUpsertObject record { + string createdAt; + boolean archived?; + string archivedAt?; + boolean 'new; + record {|ValueWithTimestamp[]...;|} propertiesWithHistory?; + string id; + record {|string...;|} properties; + string updatedAt; +}; + +public type SimplePublicObjectBatchInput record { + string idProperty?; + string objectWriteTraceId?; + string id; + record {|string...;|} properties; +}; public type NextPage record { string link?; @@ -373,6 +353,12 @@ public type AssociatedId record { string 'type; }; +# Provides API key configurations needed when communicating with a remote HTTP endpoint. +public type ApiKeysConfig record {| + string private\-app\-legacy; + string private\-app; +|}; + public type SimplePublicObjectInputForCreate record { PublicAssociationsForObject[] associations; string objectWriteTraceId?; diff --git a/ballerina/utils.bal b/ballerina/utils.bal index db366d6..13d33ab 100644 --- a/ballerina/utils.bal +++ b/ballerina/utils.bal @@ -1,6 +1,22 @@ -// AUTO-GENERATED FILE. +// AUTO-GENERATED FILE. DO NOT MODIFY. // This file is auto-generated by the Ballerina OpenAPI tool. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/url; type SimpleBasicType string|boolean|int|float|decimal; diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index 15d7441..ec2658f 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -2,7 +2,7 @@ distribution = "2201.10.0" org = "ballerinax" name = "hubspot.crm.commerce.quotes" -version = "@toml.version@" +version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] keywords = [] # TODO: Add keywords @@ -12,5 +12,5 @@ repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.cr [build-options] observabilityIncluded = true -[platform.java21] +[platform.java17] graalvmCompatible = true diff --git a/docs/spec/quotes.json b/docs/spec/quotes.json index 24db5bf..e0be725 100644 --- a/docs/spec/quotes.json +++ b/docs/spec/quotes.json @@ -19,7 +19,7 @@ "x-hubspot-introduction" : "Use the quotes API to create and manage sales quotes for sharing pricing information with potential buyers." }, "servers" : [ { - "url" : "https://api.hubapi.com" + "url" : "https://api.hubapi.com/crm/v3/objects/quotes" } ], "tags" : [ { "name" : "Batch" @@ -29,7 +29,7 @@ "name" : "Search" } ], "paths" : { - "/crm/v3/objects/quotes/batch/read" : { + "/batch/read" : { "post" : { "tags" : [ "Batch" ], "summary" : "Read a batch of quotes by internal ID, or unique property values", @@ -92,7 +92,7 @@ } ] } }, - "/crm/v3/objects/quotes/{quoteId}" : { + "/{quoteId}" : { "get" : { "tags" : [ "Basic" ], "summary" : "Read", @@ -288,7 +288,7 @@ } ] } }, - "/crm/v3/objects/quotes/batch/archive" : { + "/batch/archive" : { "post" : { "tags" : [ "Batch" ], "summary" : "Archive a batch of quotes by ID", @@ -324,7 +324,7 @@ } ] } }, - "/crm/v3/objects/quotes/batch/create" : { + "/batch/create" : { "post" : { "tags" : [ "Batch" ], "summary" : "Create a batch of quotes", @@ -376,7 +376,7 @@ } ] } }, - "/crm/v3/objects/quotes/batch/update" : { + "/batch/update" : { "post" : { "tags" : [ "Batch" ], "summary" : "Update a batch of quotes by internal ID, or unique property values", @@ -428,7 +428,7 @@ } ] } }, - "/crm/v3/objects/quotes" : { + "/" : { "get" : { "tags" : [ "Basic" ], "summary" : "List", @@ -574,7 +574,7 @@ } ] } }, - "/crm/v3/objects/quotes/batch/upsert" : { + "/batch/upsert" : { "post" : { "tags" : [ "Batch" ], "summary" : "Create or update a batch of quotes by unique property values", @@ -627,7 +627,7 @@ } ] } }, - "/crm/v3/objects/quotes/search" : { + "/search" : { "post" : { "tags" : [ "Search" ], "operationId" : "post-/crm/v3/objects/quotes/search_doSearch", @@ -751,15 +751,15 @@ "properties" : { "completedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "requestedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "startedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "links" : { "type" : "object", @@ -849,7 +849,7 @@ "properties" : { "completedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "numErrors" : { "type" : "integer", @@ -857,11 +857,11 @@ }, "requestedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "startedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "links" : { "type" : "object", @@ -920,15 +920,15 @@ "properties" : { "completedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "requestedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "startedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "links" : { "type" : "object", @@ -982,7 +982,7 @@ }, "timestamp" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" } } }, @@ -1023,7 +1023,7 @@ "properties" : { "createdAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "archived" : { "type" : "boolean", @@ -1031,7 +1031,7 @@ }, "archivedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "propertiesWithHistory" : { "type" : "object", @@ -1064,7 +1064,7 @@ }, "updatedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" } }, "example" : { @@ -1229,7 +1229,7 @@ "properties" : { "completedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "numErrors" : { "type" : "integer", @@ -1237,11 +1237,11 @@ }, "requestedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "startedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "links" : { "type" : "object", @@ -1347,14 +1347,14 @@ }, "createdAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "archived" : { "type" : "boolean" }, "archivedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "propertiesWithHistory" : { "type" : "object", @@ -1377,7 +1377,7 @@ }, "updatedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" } }, "example" : { @@ -1461,14 +1461,14 @@ "properties" : { "createdAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "archived" : { "type" : "boolean" }, "archivedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" }, "new" : { "type" : "boolean" @@ -1493,7 +1493,7 @@ }, "updatedAt" : { "type" : "string", - "format" : "date-time" + "format" : "datetime" } } }, From e66284a7909cca630f3f09259cb5e7f23bb984f3 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Wed, 8 Jan 2025 11:51:05 +0530 Subject: [PATCH 03/30] [Automated] Update the toml files --- ballerina/Dependencies.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 5b89209..e50f62c 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -215,6 +215,9 @@ dependencies = [ {org = "ballerina", name = "lang.value"}, {org = "ballerina", name = "observe"} ] +modules = [ + {org = "ballerina", packageName = "log", moduleName = "log"} +] [[package]] org = "ballerina" @@ -321,6 +324,7 @@ version = "1.0.0" dependencies = [ {org = "ballerina", name = "http"}, {org = "ballerina", name = "io"}, + {org = "ballerina", name = "log"}, {org = "ballerina", name = "oauth2"}, {org = "ballerina", name = "test"}, {org = "ballerina", name = "url"}, From bce31ffba350a2142263b1ad08bf8d211deb965a Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Wed, 8 Jan 2025 19:13:02 +0530 Subject: [PATCH 04/30] Mock service created. --- ballerina/tests/mock_service.bal | 61 +++++++++++++ ballerina/tests/mock_test.bal | 30 +++++++ ballerina/tests/test.bal | 6 +- examples/sales_analytics/.devcontainer.json | 8 ++ examples/sales_analytics/.gitignore | 11 +++ examples/sales_analytics/Ballerina.toml | 14 +++ examples/sales_analytics/main.bal | 94 +++++++++++++++++++++ 7 files changed, 222 insertions(+), 2 deletions(-) create mode 100644 ballerina/tests/mock_service.bal create mode 100644 ballerina/tests/mock_test.bal create mode 100644 examples/sales_analytics/.devcontainer.json create mode 100644 examples/sales_analytics/.gitignore create mode 100644 examples/sales_analytics/Ballerina.toml create mode 100644 examples/sales_analytics/main.bal diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal new file mode 100644 index 0000000..7cbdb94 --- /dev/null +++ b/ballerina/tests/mock_service.bal @@ -0,0 +1,61 @@ +import ballerina/http; +import ballerina/log; + +listener http:Listener httpListener = new(9090); + +http:Service mockService = service object { + + // Archive + resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:Response|error { + http:Response response = new(); + response.statusCode = http:STATUS_NO_CONTENT; + response.setPayload("Successfully deleted"); + return response; + } + + // Read + resource function get crm/v3/objects/quotes/[string quoteId](string[]? properties, string[]? propertiesWithHistory, string[]? associations, string? idProperty, boolean archived = false) returns SimplePublicObjectWithAssociations|error { + return { + id: "0", + properties: { + "hs_title": "Test Quote 0", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + } + + // Update + resource function patch crm/v3/objects/quotes/[string quoteId](string? idProperty, @http:Payload SimplePublicObjectInput payload) returns SimplePublicObject|error { + return { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + } + + // Create + resource function post crm/v3/objects/quotes(@http:Payload SimplePublicObjectInputForCreate payload) returns SimplePublicObject|error { + return { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + } + +}; + +function init() returns error?{ + log:printInfo("Initializing mock service"); + check httpListener.attach(mockService, "/"); + check httpListener.'start(); +} \ No newline at end of file diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal new file mode 100644 index 0000000..731e55b --- /dev/null +++ b/ballerina/tests/mock_test.bal @@ -0,0 +1,30 @@ +import ballerina/test; +import ballerina/http; +import ballerina/io; + + +final string serviceUrl = "http://localhost:9090/crm/v3/objects/quotes"; + +final Client mockClient = check new Client(config, serviceUrl = serviceUrl); + +// Test function for creating a quote +@test:Config{} +function testCreateNewQuote() returns error? { + SimplePublicObjectInputForCreate payload = { + associations: [], + properties: { + "hs_title": "Test Quote", + "hs_expiration_date": "2025-01-31" + } + }; + + // Call the Quotes API to create a new quote + SimplePublicObject response = check hubspotClient->/.post(payload); + + // Set test id + testQuoteId = response.id; + + // Validate the response + test:assertTrue(response.id != ""); + +} diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 00fb2bc..71f248c 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -42,7 +42,9 @@ function testCreateNewQuote() returns error? { test:assertTrue(response.id != ""); } -// Test function for creating a quote + + +// Test function for creating a batch of quotes @test:Config{} function testCreateNewBatchOfQuotes() returns error? { @@ -171,7 +173,7 @@ function testUpdateOneQuote() returns error? { } }; - // Call the Quotes API to create a new quote + // Call the Quotes API to update the quote SimplePublicObject|error response = check hubspotClient->/[testQuoteId].patch(payload); // Validate the response diff --git a/examples/sales_analytics/.devcontainer.json b/examples/sales_analytics/.devcontainer.json new file mode 100644 index 0000000..75bd926 --- /dev/null +++ b/examples/sales_analytics/.devcontainer.json @@ -0,0 +1,8 @@ +{ + "image": "ballerina/ballerina-devcontainer:2201.10.3", + "customizations": { + "vscode": { + "extensions": ["WSO2.ballerina"] + } + } +} diff --git a/examples/sales_analytics/.gitignore b/examples/sales_analytics/.gitignore new file mode 100644 index 0000000..2d54267 --- /dev/null +++ b/examples/sales_analytics/.gitignore @@ -0,0 +1,11 @@ +# Ballerina generates this directory during the compilation of a package. +# It contains compiler-generated artifacts and the final executable if this is an application package. +target/ + +# Ballerina maintains the compiler-generated source code here. +# Remove this if you want to commit generated sources. +generated/ + +# Contains configuration values used during development time. +# See https://ballerina.io/learn/provide-values-to-configurable-variables/ for more details. +Config.toml diff --git a/examples/sales_analytics/Ballerina.toml b/examples/sales_analytics/Ballerina.toml new file mode 100644 index 0000000..1ac52a0 --- /dev/null +++ b/examples/sales_analytics/Ballerina.toml @@ -0,0 +1,14 @@ +[package] +org = "harith" +name = "sales_analytics" +version = "0.1.0" +distribution = "2201.10.3" + +[[dependency]] +org = "ballerinax" +name = "hubspot.crm.commerce.quotes" +version = "1.0.0" +repository = "local" + +[build-options] +observabilityIncluded = true diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal new file mode 100644 index 0000000..c98a50c --- /dev/null +++ b/examples/sales_analytics/main.bal @@ -0,0 +1,94 @@ +import ballerina/io; +import ballerina/oauth2; +import ballerina/http; +import ballerinax/hubspot.crm.commerce.quotes as quotes; + +configurable string & readonly clientId = ?; +configurable string & readonly clientSecret = ?; +configurable string & readonly refreshToken = ?; + +quotes:OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + +final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; + +final quotes:Client storeClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + +public function main() returns error? { + + quotes:OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER + }; + + final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; + + final quotes:Client storeClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + + string quoteId = "0"; + + // Add new sales quote + quotes:SimplePublicObjectInputForCreate payload = { + associations: [], + properties: { + "hs_title": "Premium Subscription Quote", + "hs_expiration_date": "2025-02-28", + "hs_currency": "USD", + "hs_total_amount": "1500.00", + "hs_quote_terms": "Payment must be completed within 30 days of acceptance.", + "hs_payment_schedule": "50% upfront, 50% upon completion", + "hs_quote_status": "draft", + "hs_delivery_start_date": "2025-03-01", + "hs_delivery_end_date": "2025-06-30", + "hs_deal_id": "123456", + "hs_sender_name": "John Doe", + "hs_sender_email": "john.doe@company.com" + } + }; + var createdNewQuote = check storeClient->/.post(payload); + if(createdNewQuote is quotes:SimplePublicObject ){ + io:println(createdNewQuote); + }else{ + io:println("New quote creation failed."); + } + + + // Get all existing sales quotes + quotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error allExistingQuotes = check storeClient->/.get(); + io:println(allExistingQuotes); + + // Get one sales quote by ID + quotes:SimplePublicObjectWithAssociations|error quote = check storeClient->/[quoteId].get(); + io:println(quote); + + // Archive one sales quote by ID + http:Response|error response = check storeClient->/[quoteId].delete(); + io:println(response); + + // Update one sales quote by ID + quotes:SimplePublicObjectInput modifyPayload = { + properties: { + "hs_title": "Premium Subscription Quote", + "hs_expiration_date": "2025-02-28", + "hs_currency": "USD", + "hs_total_amount": "2000.00", + "hs_quote_terms": "Payment must be completed within 30 days of acceptance.", + "hs_payment_schedule": "50% upfront, 50% upon completion", + "hs_quote_status": "draft", + "hs_delivery_start_date": "2025-03-01", + "hs_delivery_end_date": "2025-06-30", + "hs_deal_id": "123456", + "hs_sender_name": "John Doe", + "hs_sender_email": "john.doe@company.com" + } + }; + quotes:SimplePublicObject|error modifiedQuote = check storeClient->/[quoteId].patch(payload); + io:println(modifiedQuote); + +} From 8bf42b17bcb21b0aca2a884ca7d5301eabde3b50 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 9 Jan 2025 16:20:31 +0530 Subject: [PATCH 05/30] [Automated] Update the toml files --- ballerina/Ballerina.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index ec2658f..89686b1 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -5,8 +5,8 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = [] # TODO: Add keywords -# icon = "icon.png" # TODO: Add icon +keywords = ["hubspot"] +icon = "HubSpot-Logo.png" repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes" [build-options] From 44a04ed3b2b6d87d47f500106cff8aa63efdad39 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 9 Jan 2025 16:25:07 +0530 Subject: [PATCH 06/30] All tests and mock tests passed and are built successfully. --- ballerina/HubSpot-Logo.png | Bin 0 -> 65493 bytes ballerina/Package.md | 25 +- ballerina/quotes_service.bal | 111 ------- ballerina/tests/mock_service.bal | 56 +++- ballerina/tests/mock_test.bal | 179 +++++++++++- ballerina/tests/test.bal | 4 +- build-config/resources/Ballerina.toml | 4 +- build-config/resources/HubSpot-Logo.png | Bin 0 -> 65493 bytes docs/spec/sanitations.md | 26 +- examples/sales_analytics/Dependencies.toml | 321 +++++++++++++++++++++ examples/sales_analytics/main.bal | 60 +--- 11 files changed, 585 insertions(+), 201 deletions(-) create mode 100644 ballerina/HubSpot-Logo.png delete mode 100644 ballerina/quotes_service.bal create mode 100644 build-config/resources/HubSpot-Logo.png create mode 100644 examples/sales_analytics/Dependencies.toml diff --git a/ballerina/HubSpot-Logo.png b/ballerina/HubSpot-Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..341841e1aa4d952133feab7a3fd4e2c2552949b6 GIT binary patch literal 65493 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 literal 0 HcmV?d00001 diff --git a/ballerina/Package.md b/ballerina/Package.md index eb8fd4d..7c5b05c 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -1,7 +1,5 @@ ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) - [HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). @@ -9,8 +7,6 @@ The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and ## Setup guide -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) - To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. ### Step 1: Create/Login to a HubSpot Developer Account @@ -27,21 +23,21 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Go to Test Account section from the left sidebar. - + 2. Click Create developer test account. - Hubspot developer testacc2 + Hubspot developer testacc2 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + Hubspot developer testacc3 ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 2. Provide the necessary details, including the app name and description. @@ -49,7 +45,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + Hubspot app creation 2 testacc3 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. @@ -59,17 +55,17 @@ Within app developer accounts, you can create developer test accounts to test ap `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 6: Setup Authentication Flow @@ -87,7 +83,7 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 3. A code will be displayed in the browser. Copy the code. @@ -132,8 +128,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token ## Quickstart -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) - To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: ### Step 1: Import the module @@ -212,4 +206,3 @@ public function main() returns error? { The `HubSpot CRM Commerce Quotes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-hubspot.crm.commerce.quotes/tree/main/examples/), covering the following use cases: -[//]: # (TODO: Add examples) diff --git a/ballerina/quotes_service.bal b/ballerina/quotes_service.bal deleted file mode 100644 index b035f29..0000000 --- a/ballerina/quotes_service.bal +++ /dev/null @@ -1,111 +0,0 @@ -// // AUTO-GENERATED FILE. -// // This file is auto-generated by the Ballerina OpenAPI tool. - -// import ballerina/http; - -// listener http:Listener ep0 = new (443, config = {host: "api.hubapi.com"}); - -// service / on ep0 { -// # Archive -// # -// # + return - returns can be any of following types -// # http:NoContent (No content) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:NoContent|AnydataDefault { -// } - -// # List -// # -// # + 'limit - The maximum number of results to display per page. -// # + after - The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. -// # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. -// # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request. -// # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. -// # + archived - Whether to return only results that have been archived. -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function get crm/v3/objects/quotes(string? after, string[]? properties, string[]? propertiesWithHistory, string[]? associations, int:Signed32 'limit = 10, boolean archived = false) returns CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|AnydataDefault { -// } - -// # Read -// # -// # + properties - A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored. -// # + propertiesWithHistory - A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. -// # + associations - A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored. -// # + archived - Whether to return only results that have been archived. -// # + idProperty - The name of a property whose values are unique for this object type -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function get crm/v3/objects/quotes/[string quoteId](string[]? properties, string[]? propertiesWithHistory, string[]? associations, string? idProperty, boolean archived = false) returns SimplePublicObjectWithAssociations|AnydataDefault { -// } - -// # Update -// # -// # + idProperty - The name of a property whose values are unique for this object type -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function patch crm/v3/objects/quotes/[string quoteId](string? idProperty, @http:Payload SimplePublicObjectInput payload) returns SimplePublicObject|AnydataDefault { -// } - -// # Create -// # -// # + return - returns can be any of following types -// # http:Created (successful operation) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes(@http:Payload SimplePublicObjectInputForCreate payload) returns SimplePublicObject|AnydataDefault { -// } - -// # Archive a batch of quotes by ID -// # -// # + return - returns can be any of following types -// # http:NoContent (No content) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/batch/archive(@http:Payload BatchInputSimplePublicObjectId payload) returns http:NoContent|AnydataDefault { -// } - -// # Create a batch of quotes -// # -// # + return - returns can be any of following types -// # http:Created (successful operation) -// # http:MultiStatus (multiple statuses) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/batch/create(@http:Payload BatchInputSimplePublicObjectInputForCreate payload) returns BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { -// } - -// # Read a batch of quotes by internal ID, or unique property values -// # -// # + archived - Whether to return only results that have been archived. -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:MultiStatus (multiple statuses) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/batch/read(@http:Payload BatchReadInputSimplePublicObjectId payload, boolean archived = false) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { -// } - -// # Update a batch of quotes by internal ID, or unique property values -// # -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:MultiStatus (multiple statuses) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/batch/update(@http:Payload BatchInputSimplePublicObjectBatchInput payload) returns BatchResponseSimplePublicObjectOk|BatchResponseSimplePublicObjectWithErrorsMultiStatus|AnydataDefault { -// } - -// # Create or update a batch of quotes by unique property values -// # -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:MultiStatus (multiple statuses) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/batch/upsert(@http:Payload BatchInputSimplePublicObjectBatchInputUpsert payload) returns BatchResponseSimplePublicUpsertObjectOk|BatchResponseSimplePublicUpsertObjectWithErrorsMultiStatus|AnydataDefault { -// } - -// # + return - returns can be any of following types -// # http:Ok (successful operation) -// # http:DefaultStatusCodeResponse (An error occurred.) -// resource function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload) returns CollectionResponseWithTotalSimplePublicObjectForwardPagingOk|AnydataDefault { -// } -// } diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal index 7cbdb94..d3b7c71 100644 --- a/ballerina/tests/mock_service.bal +++ b/ballerina/tests/mock_service.bal @@ -51,7 +51,61 @@ http:Service mockService = service object { updatedAt: "2025-01-15" }; } - + + resource function post crm/v3/objects/quotes/batch/upsert(@http:Payload BatchInputSimplePublicObjectBatchInputUpsert payload, map headers = {}) returns BatchResponseSimplePublicUpsertObject|error { + SimplePublicUpsertObject ob1 = { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + 'new: true, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + SimplePublicUpsertObject ob2 = { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-01-31" + }, + 'new: true, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + return { + completedAt: "2025-01-10", + startedAt: "2025-01-08", + requestedAt: "2025-01-08", + results:[ob1,ob2], + status: "COMPLETE" + }; + } + + resource isolated function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload, map headers = {}) returns CollectionResponseWithTotalSimplePublicObjectForwardPaging|error { + SimplePublicObject ob1 = { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + SimplePublicObject ob2 = { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + return { + total: 1500, + results: [ob1, ob2] + }; + } }; function init() returns error?{ diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index 731e55b..cf3890f 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -1,30 +1,181 @@ -import ballerina/test; import ballerina/http; -import ballerina/io; - +import ballerina/oauth2; +import ballerina/test; -final string serviceUrl = "http://localhost:9090/crm/v3/objects/quotes"; +final string mockServiceUrl = "http://localhost:9090/crm/v3/objects/quotes"; -final Client mockClient = check new Client(config, serviceUrl = serviceUrl); +final Client mockClient = check new Client(config = {auth: { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}}, serviceUrl = mockServiceUrl); // Test function for creating a quote @test:Config{} -function testCreateNewQuote() returns error? { +function testCreateAQuote() returns error? { SimplePublicObjectInputForCreate payload = { associations: [], properties: { - "hs_title": "Test Quote", + "hs_title": "Test Quote 2", "hs_expiration_date": "2025-01-31" } }; - // Call the Quotes API to create a new quote - SimplePublicObject response = check hubspotClient->/.post(payload); + SimplePublicObject response = check mockClient->/.post(payload); + + test:assertEquals(response.properties, payload.properties, "New quote creation failed."); +} + +// Test function to get a quote bu ID +@test:Config{} +function testGetAQuoteById() returns error? { + SimplePublicObjectWithAssociations response = check mockClient->/["0"].get(); + + test:assertEquals(response, { + id: "0", + properties: { + "hs_title": "Test Quote 0", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }, "Reading this quote is failed."); +} + +// Test function to archive a quote by ID +@test:Config{} +function testArchiveAQuoteById() returns error?{ - // Set test id - testQuoteId = response.id; + http:Response response = check mockClient->/["0"].delete(); - // Validate the response - test:assertTrue(response.id != ""); - + test:assertTrue(response.statusCode == 204); } + +// Test function to update a quote +@test:Config{} +function testUpdateAQuoteById() returns error? { + SimplePublicObjectInput payload = { + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + } + }; + + // Call the Quotes API to update the quote + SimplePublicObject response = check mockClient->/["1"].patch(payload); + + test:assertEquals(response, { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }, "Quote update failed."); +} + +// Test function to upsert a quote +@test:Config{} +function testUpsertAQuote() returns error? { + BatchInputSimplePublicObjectBatchInputUpsert payload = { + inputs: [ + { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + } + }, + { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-03-31" + } + } + ] + }; + + BatchResponseSimplePublicUpsertObject response = check mockClient->/batch/upsert.post(payload = payload); + + test:assertEquals(response, { + completedAt: "2025-01-10", + startedAt: "2025-01-08", + requestedAt: "2025-01-08", + results:[ + { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + 'new: true, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }, + { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-01-31" + }, + 'new: true, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + } + ], + status: "COMPLETE" + }, "Quote upsert failed."); +} + +// Test function to upsert a quote +@test:Config{} +function testSearchAQuote() returns error? { + // PublicObjectSearchRequest payload = { + // properties: ["hs_title", "hs_expiration_date"] + // }; + + PublicObjectSearchRequest payload = { + filterGroups: [ + { + filters: [ + { + propertyName: "hs_title", + operator: "EQ", + value: "Test Quote 1" + } + ] + } + ], + properties: ["hs_title", "hs_expiration_date"] +}; + + CollectionResponseWithTotalSimplePublicObjectForwardPaging response = check mockClient->/search.post(payload = payload); + + SimplePublicObject ob1 = { + id: "1", + properties: { + "hs_title": "Test Quote 1", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + SimplePublicObject ob2 = { + id: "2", + properties: { + "hs_title": "Test Quote 2", + "hs_expiration_date": "2025-01-31" + }, + createdAt: "2025-01-08", + updatedAt: "2025-01-15" + }; + + test:assertEquals(response, { + total: 1500, + results: [ob1, ob2] + }, "Quote search failed."); +} + diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 71f248c..87a9d53 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -1,7 +1,7 @@ -import ballerina/test; -import ballerina/oauth2; import ballerina/http; import ballerina/io; +import ballerina/oauth2; +import ballerina/test; configurable string clientId = ?; configurable string clientSecret = ?; diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index ec2658f..89686b1 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -5,8 +5,8 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = [] # TODO: Add keywords -# icon = "icon.png" # TODO: Add icon +keywords = ["hubspot"] +icon = "HubSpot-Logo.png" repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes" [build-options] diff --git a/build-config/resources/HubSpot-Logo.png b/build-config/resources/HubSpot-Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..341841e1aa4d952133feab7a3fd4e2c2552949b6 GIT binary patch literal 65493 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 literal 0 HcmV?d00001 diff --git a/docs/spec/sanitations.md b/docs/spec/sanitations.md index 4c71d11..7dd6c45 100644 --- a/docs/spec/sanitations.md +++ b/docs/spec/sanitations.md @@ -1,6 +1,6 @@ -_Author_: \ -_Created_: \ -_Updated_: \ +_Author_: @harithmaduranga \ +_Created_: 2025/01/09 \ +_Updated_: 2025/01/09 \ _Edition_: Swan Lake # Sanitation for OpenAPI specification @@ -9,16 +9,24 @@ This document records the sanitation done on top of the official OpenAPI specifi The OpenAPI specification is obtained from (TODO: Add source link). These changes are done in order to improve the overall usability, and as workarounds for some known language limitations. -[//]: # (TODO: Add sanitation details) -1. -2. -3. +1. **Change the `url` property of the `servers` object**: + + - **Original**: [https://api.hubapi.com](https://api.hubapi.com) + - **Updated**: [https://api.hubapi.com/crm/v3/objects/quotes](https://api.hubapi.com/crm/v3/objects/quotes) + - **Reason**: This change is made to ensure that all API paths are relative to the versioned base URL which improves the consistency and usability of the APIs. + +2. **Update API Paths**: + + - **Original**: Paths included the version prefix in each endpoint (e.g., /crm/v3/objects/quotes). + - **Updated**: Paths are modified to remove the common prefix from the endpoints, as it is now included in the base URL. For example: + - **Original**: /crm/v3/objects/quotes/batch/read + - **Updated**: /batch/read + - **Reason**: This modification simplifies the API paths, making them shorter and more readable. It also centralizes the versioning to the base URL, which is a common best practice. ## OpenAPI cli command The following command was used to generate the Ballerina client from the OpenAPI specification. The command should be executed from the repository root directory. ```bash -# TODO: Add OpenAPI CLI command used to generate the client -``` +bal openapi -i quotes.json --mode client --license docs/license.txt -o ballerina``` Note: The license year is hardcoded to 2024, change if necessary. diff --git a/examples/sales_analytics/Dependencies.toml b/examples/sales_analytics/Dependencies.toml new file mode 100644 index 0000000..d5de7f6 --- /dev/null +++ b/examples/sales_analytics/Dependencies.toml @@ -0,0 +1,321 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.10.3" + +[[package]] +org = "ballerina" +name = "auth" +version = "2.12.0" +dependencies = [ + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "cache" +version = "3.8.0" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "task"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "constraint" +version = "1.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "crypto" +version = "2.7.2" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "file" +version = "1.10.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "http" +version = "2.12.4" +dependencies = [ + {org = "ballerina", name = "auth"}, + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "file"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.decimal"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "mime"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "observe"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerina", packageName = "http", moduleName = "http"}, + {org = "ballerina", packageName = "http", moduleName = "http.httpscerr"} +] + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.3" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "jwt" +version = "2.13.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "lang.__internal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.decimal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.int" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "lang.regexp" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.string" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.regexp"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "log" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "observe"} +] + +[[package]] +org = "ballerina" +name = "mime" +version = "2.10.1" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "oauth2" +version = "2.12.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerina", packageName = "oauth2", moduleName = "oauth2"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.3.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "os" +version = "1.8.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "task" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "time" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "url" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "ballerinax" +name = "hubspot.crm.commerce.quotes" +version = "1.0.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "url"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "ballerinax", packageName = "hubspot.crm.commerce.quotes", moduleName = "hubspot.crm.commerce.quotes"} +] + +[[package]] +org = "harith" +name = "sales_analytics" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerinai", name = "observe"}, + {org = "ballerinax", name = "hubspot.crm.commerce.quotes"} +] +modules = [ + {org = "harith", packageName = "sales_analytics", moduleName = "sales_analytics"} +] + diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index c98a50c..e36a300 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -1,23 +1,12 @@ +import ballerina/http; import ballerina/io; import ballerina/oauth2; -import ballerina/http; import ballerinax/hubspot.crm.commerce.quotes as quotes; configurable string & readonly clientId = ?; configurable string & readonly clientSecret = ?; configurable string & readonly refreshToken = ?; -quotes:OAuth2RefreshTokenGrantConfig auth = { - clientId, - clientSecret, - refreshToken, - credentialBearer: oauth2:POST_BODY_BEARER -}; - -final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; - -final quotes:Client storeClient = check new Client(config = {auth}, serviceUrl = serviceUrl); - public function main() returns error? { quotes:OAuth2RefreshTokenGrantConfig auth = { @@ -29,7 +18,7 @@ public function main() returns error? { final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; - final quotes:Client storeClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + final quotes:Client storeClient = check new quotes:Client(config = {auth}, serviceUrl = serviceUrl); string quoteId = "0"; @@ -39,56 +28,35 @@ public function main() returns error? { properties: { "hs_title": "Premium Subscription Quote", "hs_expiration_date": "2025-02-28", - "hs_currency": "USD", - "hs_total_amount": "1500.00", - "hs_quote_terms": "Payment must be completed within 30 days of acceptance.", - "hs_payment_schedule": "50% upfront, 50% upon completion", - "hs_quote_status": "draft", - "hs_delivery_start_date": "2025-03-01", - "hs_delivery_end_date": "2025-06-30", - "hs_deal_id": "123456", - "hs_sender_name": "John Doe", - "hs_sender_email": "john.doe@company.com" + "hs_currency": "USD" } }; var createdNewQuote = check storeClient->/.post(payload); - if(createdNewQuote is quotes:SimplePublicObject ){ - io:println(createdNewQuote); - }else{ - io:println("New quote creation failed."); - } + quoteId = createdNewQuote.id; + io:println(createdNewQuote); // Get all existing sales quotes - quotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error allExistingQuotes = check storeClient->/.get(); + quotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging allExistingQuotes = check storeClient->/.get(); io:println(allExistingQuotes); // Get one sales quote by ID - quotes:SimplePublicObjectWithAssociations|error quote = check storeClient->/[quoteId].get(); + quotes:SimplePublicObjectWithAssociations quote = check storeClient->/[quoteId].get(); io:println(quote); - // Archive one sales quote by ID - http:Response|error response = check storeClient->/[quoteId].delete(); - io:println(response); - // Update one sales quote by ID quotes:SimplePublicObjectInput modifyPayload = { properties: { "hs_title": "Premium Subscription Quote", - "hs_expiration_date": "2025-02-28", - "hs_currency": "USD", - "hs_total_amount": "2000.00", - "hs_quote_terms": "Payment must be completed within 30 days of acceptance.", - "hs_payment_schedule": "50% upfront, 50% upon completion", - "hs_quote_status": "draft", - "hs_delivery_start_date": "2025-03-01", - "hs_delivery_end_date": "2025-06-30", - "hs_deal_id": "123456", - "hs_sender_name": "John Doe", - "hs_sender_email": "john.doe@company.com" + "hs_expiration_date": "2025-03-31", + "hs_currency": "USD" } }; - quotes:SimplePublicObject|error modifiedQuote = check storeClient->/[quoteId].patch(payload); + quotes:SimplePublicObject modifiedQuote = check storeClient->/[quoteId].patch(modifyPayload); io:println(modifiedQuote); + // Archive one sales quote by ID + http:Response response = check storeClient->/[quoteId].delete(); + io:println(response); + } From f666fe0307f7977e81a7f79fbd5b06e6295fdf6c Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 9 Jan 2025 17:32:54 +0530 Subject: [PATCH 07/30] [Automated] Update the toml files --- ballerina/Dependencies.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index e50f62c..4ddbb45 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -98,9 +98,6 @@ dependencies = [ {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "lang.value"} ] -modules = [ - {org = "ballerina", packageName = "io", moduleName = "io"} -] [[package]] org = "ballerina" @@ -323,7 +320,6 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" dependencies = [ {org = "ballerina", name = "http"}, - {org = "ballerina", name = "io"}, {org = "ballerina", name = "log"}, {org = "ballerina", name = "oauth2"}, {org = "ballerina", name = "test"}, From 9b0afa5e359505de70b204def6ec72fea1a0bd46 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 10:26:58 +0530 Subject: [PATCH 08/30] [Automated] Update the toml files --- ballerina/Ballerina.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 89686b1..bbe78a8 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -5,8 +5,8 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = ["hubspot"] -icon = "HubSpot-Logo.png" +keywords = ["hubspot", "commerce", "quotes"] +icon = "icon.png" repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes" [build-options] From fc4f54db6881256844a3c01cfca63e4e7ffccd06 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 10:30:12 +0530 Subject: [PATCH 09/30] Example completed. --- README.md | 199 +++++++++++++++++++++++- ballerina/HubSpot-Logo.png | Bin 65493 -> 0 bytes ballerina/Module.md | 199 +++++++++++++++++++++++- ballerina/icon.png | Bin 0 -> 3779 bytes ballerina/tests/test.bal | 99 +++--------- build-config/resources/Ballerina.toml | 4 +- build-config/resources/HubSpot-Logo.png | Bin 65493 -> 0 bytes build-config/resources/icon.png | Bin 0 -> 3779 bytes examples/sales_analytics/main.bal | 75 ++++++++- 9 files changed, 484 insertions(+), 92 deletions(-) delete mode 100644 ballerina/HubSpot-Logo.png create mode 100644 ballerina/icon.png delete mode 100644 build-config/resources/HubSpot-Logo.png create mode 100644 build-config/resources/icon.png diff --git a/README.md b/README.md index 0446b89..92ffd73 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,210 @@ ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. + +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). ## Setup guide -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. + +### Step 1: Create/Login to a HubSpot Developer Account + +If you have an account already, go to the [HubSpot developer portal](https://app.hubspot.com/) + +If you don't have a HubSpot Developer Account you can sign up to a free account [here](https://developers.hubspot.com/get-started) + +### Step 2 (Optional): Create a [Developer Test Account](https://developers.hubspot.com/beta-docs/getting-started/account-types#developer-test-accounts) under your account + +Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. + +**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** + +1. Go to Test Account section from the left sidebar. + + + +2. Click Create developer test account. + + Hubspot developer testacc2 + +3. In the dialogue box, give a name to your test account and click create. + + Hubspot developer testacc3 + +### Step 3: Create a HubSpot App under your account. + +1. In your developer account, navigate to the "Apps" section. Click on "Create App" + + Hubspot app creation 1 testacc3 + +2. Provide the necessary details, including the app name and description. + +### Step 4: Configure the Authentication Flow. + +1. Move to the Auth Tab. + + Hubspot app creation 2 testacc3 + +2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. + + `crm.lists.read` + + `crm.lists.write` + + `cms.membership.access_groups.write` + + Hubspot app creation 1 testacc3 + +4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. + + Hubspot app creation 1 testacc3 + +### Step 5: Get your Client ID and Client Secret + +- Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. + + Hubspot app creation 1 testacc3 + +### Step 6: Setup Authentication Flow + +Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: + +1. Create an authorization URL using the following format: + + ``` + https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= + ``` + + Replace the ``, `` and `` with your specific value. + + **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** + +2. Paste it in the browser and select your developer test account to intall the app when prompted. + + Hubspot app creation 1 testacc3 + +3. A code will be displayed in the browser. Copy the code. + + ``` + Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx + ``` + +4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. + + - Linux/macOS + + ```bash + curl --request POST \ + --url https://api.hubapi.com/oauth/v1/token \ + --header 'content-type: application/x-www-form-urlencoded' \ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + - Windows + + ```bash + curl --request POST ^ + --url https://api.hubapi.com/oauth/v1/token ^ + --header 'content-type: application/x-www-form-urlencoded' ^ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + This command will return the access token necessary for API calls. + + ```json + { + "token_type": "bearer", + "refresh_token": "", + "access_token": "", + "expires_in": 1800 + } + ``` + +5. Store the access token securely for use in your application. ## Quickstart -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) +To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: + +### Step 1: Import the module + +Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. + +```ballerina +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; +import ballerina/oauth2; +``` + +### Step 2: Instantiate a new connector + +1. Create a `Config.toml` file and, configure the obtained credentials in the above steps as follows: + + ```toml + clientId = + clientSecret = + refreshToken = + ``` + +2. Instantiate a `OAuth2RefreshTokenGrantConfig` with the obtained credentials and initialize the connector with it. + + ```ballerina + configurable string clientId = ?; + configurable string clientSecret = ?; + configurable string refreshToken = ?; + + OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER + }; + + final string serviceUrl = "https://api.hubapi.com"; + + final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + + ``` + +### Step 3: Invoke the connector operation + +Now, utilize the available connector operations. A sample usecase is shown below. + +#### Create a CRM List + +```ballerina +public function main() returns error? { + http:Client hubspotClient = check new ("https://api.hubapi.com", { + headers: { + "Authorization": "Bearer " + } + }); + + // Define the payload for creating a quote + json payload = { + "name": "Test Quote", + "hs_expiration_date": "2025-12-31", + "hs_status": "DRAFT", + "hs_owner_id": "", + "hs_currency": "USD", + "hs_total_amount": 1500, + "hs_associated_deal_id": "" + }; + + // Send the request to create a quote + http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + + // Print the response + io:println("Response: ", response.getJsonPayload()); +} +``` ## Examples -The `HubSpot CRM Commerce Quotes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-hubspot.crm.commerce.quotes/tree/main/examples/), covering the following use cases: +The `HubSpot CRM Commerce Quotes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-hubspot.crm.commerce.quotes/examples/), covering the following use cases: -[//]: # (TODO: Add examples) +1. Sales Analytics System ## Build from the source diff --git a/ballerina/HubSpot-Logo.png b/ballerina/HubSpot-Logo.png deleted file mode 100644 index 341841e1aa4d952133feab7a3fd4e2c2552949b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65493 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 diff --git a/ballerina/Module.md b/ballerina/Module.md index bada2c1..7c5b05c 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -1,17 +1,208 @@ ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. + +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). + ## Setup guide -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. + +### Step 1: Create/Login to a HubSpot Developer Account + +If you have an account already, go to the [HubSpot developer portal](https://app.hubspot.com/) + +If you don't have a HubSpot Developer Account you can sign up to a free account [here](https://developers.hubspot.com/get-started) + +### Step 2 (Optional): Create a [Developer Test Account](https://developers.hubspot.com/beta-docs/getting-started/account-types#developer-test-accounts) under your account + +Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. + +**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** + +1. Go to Test Account section from the left sidebar. + + + +2. Click Create developer test account. + + Hubspot developer testacc2 + +3. In the dialogue box, give a name to your test account and click create. + + Hubspot developer testacc3 + +### Step 3: Create a HubSpot App under your account. + +1. In your developer account, navigate to the "Apps" section. Click on "Create App" + + Hubspot app creation 1 testacc3 + +2. Provide the necessary details, including the app name and description. + +### Step 4: Configure the Authentication Flow. + +1. Move to the Auth Tab. + + Hubspot app creation 2 testacc3 + +2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. + + `crm.lists.read` + + `crm.lists.write` + + `cms.membership.access_groups.write` + + Hubspot app creation 1 testacc3 + +4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. + + Hubspot app creation 1 testacc3 + +### Step 5: Get your Client ID and Client Secret + +- Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. + + Hubspot app creation 1 testacc3 + +### Step 6: Setup Authentication Flow + +Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: + +1. Create an authorization URL using the following format: + + ``` + https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= + ``` + + Replace the ``, `` and `` with your specific value. + + **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** + +2. Paste it in the browser and select your developer test account to intall the app when prompted. + + Hubspot app creation 1 testacc3 + +3. A code will be displayed in the browser. Copy the code. + + ``` + Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx + ``` + +4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. + + - Linux/macOS + + ```bash + curl --request POST \ + --url https://api.hubapi.com/oauth/v1/token \ + --header 'content-type: application/x-www-form-urlencoded' \ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + - Windows + + ```bash + curl --request POST ^ + --url https://api.hubapi.com/oauth/v1/token ^ + --header 'content-type: application/x-www-form-urlencoded' ^ + --data 'grant_type=authorization_code&code=&redirect_uri=&client_id=&client_secret=' + ``` + + This command will return the access token necessary for API calls. + + ```json + { + "token_type": "bearer", + "refresh_token": "", + "access_token": "", + "expires_in": 1800 + } + ``` + +5. Store the access token securely for use in your application. + + ## Quickstart -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) +To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: + +### Step 1: Import the module + +Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. + +```ballerina +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; +import ballerina/oauth2; +``` + +### Step 2: Instantiate a new connector + +1. Create a `Config.toml` file and, configure the obtained credentials in the above steps as follows: + + ```toml + clientId = + clientSecret = + refreshToken = + ``` + +2. Instantiate a `OAuth2RefreshTokenGrantConfig` with the obtained credentials and initialize the connector with it. + + ```ballerina + configurable string clientId = ?; + configurable string clientSecret = ?; + configurable string refreshToken = ?; + + OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER + }; + + final string serviceUrl = "https://api.hubapi.com"; + + final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + + ``` + +### Step 3: Invoke the connector operation + +Now, utilize the available connector operations. A sample usecase is shown below. + +#### Create a CRM List + +```ballerina +public function main() returns error? { + http:Client hubspotClient = check new ("https://api.hubapi.com", { + headers: { + "Authorization": "Bearer " + } + }); + + // Define the payload for creating a quote + json payload = { + "name": "Test Quote", + "hs_expiration_date": "2025-12-31", + "hs_status": "DRAFT", + "hs_owner_id": "", + "hs_currency": "USD", + "hs_total_amount": 1500, + "hs_associated_deal_id": "" + }; + + // Send the request to create a quote + http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + + // Print the response + io:println("Response: ", response.getJsonPayload()); +} +``` ## Examples The `HubSpot CRM Commerce Quotes` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/module-ballerinax-hubspot.crm.commerce.quotes/tree/main/examples/), covering the following use cases: -[//]: # (TODO: Add examples) diff --git a/ballerina/icon.png b/ballerina/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d57a9445d74ad70f8d8904d5108790e2d4df4c5 GIT binary patch literal 3779 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/batch/create.post(payload); // Validate the response - test:assertTrue(response.results.length() > 0); + test:assertEquals(response.results.length(), payload.inputs.length(), + "New batch of quotes not created successfully."); } @@ -81,28 +82,18 @@ function testCreateNewBatchOfQuotes() returns error? { @test:Config{} function testGetAllQuotes() returns error? { - CollectionResponseSimplePublicObjectWithAssociationsForwardPaging|error response = check hubspotClient->/.get(); + CollectionResponseSimplePublicObjectWithAssociationsForwardPaging response = check hubspotClient->/.get(); - // Validate the response contains a list of quotes - if(response is CollectionResponseSimplePublicObjectWithAssociationsForwardPaging){ - test:assertTrue(response.results.length() > 0, + test:assertTrue(response.results.length() > 0, msg = "No quotes found in the response."); - }else { - io:println(response); - } } // Test function for retrieving a quote @test:Config{} function testGetOneQuote() returns error? { - SimplePublicObjectWithAssociations|error response = check hubspotClient->/[testQuoteId].get(); - - if (response is SimplePublicObjectWithAssociations) { - // Validate essential fields - test:assertTrue(response.id == testQuoteId, msg = "Quote ID is missing."); - } else if (response is error) { - test:assertFail("Failed to retrieve quote: " + response.message()); - } + SimplePublicObjectWithAssociations response = check hubspotClient->/[testQuoteId].get(); + + test:assertEquals(response.id, testQuoteId, "Quote ID is missing."); } // Test function for retrieving a batch of quotes @@ -122,22 +113,17 @@ function testGetBatchOfQuotes() returns error? { BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors response = check hubspotClient->/batch/read.post(payload); // Validate essential fields - test:assertTrue(response.results.length() == payload.inputs.length(), msg = string`Only ${response.results.length()} IDs found.`); -} + test:assertEquals(response.results.length(), payload.inputs.length(), msg = string`Only ${response.results.length()} IDs found.`); +} // Archive a quote by ID @test:Config{} function testArchiveOneQuote() returns error?{ - http:Response|error response = check hubspotClient->/["0"].delete(); + http:Response response = check hubspotClient->/["0"].delete(); - // Validate the response - if(response is http:Response){ - test:assertTrue(response.statusCode == 204); - }else{ - test:assertFail("Deletion failed."); - } + test:assertTrue(response.statusCode == 204); } // Archive batch of quotes by ID @@ -152,14 +138,9 @@ function testArchiveBatchOfQuoteById() returns error?{ ] }; - http:Response|error response = check hubspotClient->/batch/archive.post(payload); + http:Response response = check hubspotClient->/batch/archive.post(payload); - // Validate the response - if(response is http:Response){ - test:assertTrue(response.statusCode == 204); - }else{ - test:assertFail("Deletion failed."); - } + test:assertTrue(response.statusCode == 204); } @@ -174,15 +155,10 @@ function testUpdateOneQuote() returns error? { }; // Call the Quotes API to update the quote - SimplePublicObject|error response = check hubspotClient->/[testQuoteId].patch(payload); + SimplePublicObject response = check hubspotClient->/[testQuoteId].patch(payload); - // Validate the response - if(response is SimplePublicObject){ - test:assertTrue(response.id != "", - msg = "Quote in response does not match the expected quote."); - }else { - io:println(response); - } + test:assertEquals(response.properties["hs_title"], "Test Quote Modified", + "Quote not updated successfully."); } // Test function for updating a batch of quotes @@ -202,42 +178,9 @@ function testUpdateBatchOfQuotes() returns error? { }; // Call the Quotes API to create a new quote - BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors|error response = hubspotClient->/batch/update.post(payload); + BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors response = check hubspotClient->/batch/update.post(payload); - // Validate the response - if(response is BatchResponseSimplePublicObject){ - test:assertTrue(response.results.length() == payload.inputs.length(), - msg = "Quote in response does not match the expected quote."); - }else{ - test:assertFail("Errors in updating."); - } + test:assertEquals(response.results.length(), payload.inputs.length(), + "Quote in response does not match the expected quote."); } -// // Test function for creating or updating a batch of quotes -// @test:Config{} -// function testCreateOrUpdateBatchOfQuotes() returns error? { - -// SimplePublicObjectBatchInputUpsert ob4 = { -// id: testQuoteId, -// properties: { -// "hs_title": "Test Quote 4", -// "hs_expiration_date": "2025-05-31" -// } -// }; - -// BatchInputSimplePublicObjectBatchInputUpsert payload = { -// inputs: [ob4] -// }; - -// // Call the Quotes API to create a new quote -// BatchResponseSimplePublicUpsertObject|BatchResponseSimplePublicUpsertObjectWithErrors|error response = hubspotClient->/batch/upsert.post(payload); - -// // Validate the response -// if(response is BatchResponseSimplePublicUpsertObject){ -// test:assertTrue(response.results.length() == payload.inputs.length(), -// msg = "Quote in response does not match the expected quote."); -// }else{ -// test:assertFail("Errors in updating."); -// } -// } - diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index 89686b1..bbe78a8 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -5,8 +5,8 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = ["hubspot"] -icon = "HubSpot-Logo.png" +keywords = ["hubspot", "commerce", "quotes"] +icon = "icon.png" repository = "https://github.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes" [build-options] diff --git a/build-config/resources/HubSpot-Logo.png b/build-config/resources/HubSpot-Logo.png deleted file mode 100644 index 341841e1aa4d952133feab7a3fd4e2c2552949b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65493 zcmeFa2~<>P_AmOK8W{?ZK?a#hiCRX40#rai3yqklQHVyRMJ;78=@>yU0u90e93l|J zNVI5?V2mbd?TC=4F;A(U|U`A!uSRoMS~*SqiC=UvTO zz1qmxXHUO9eZ%oc=$aK~Ceut1LT0bL{L*U(S->BS;*5CkfBDsS;^F^{<6aI=K!~%1 z{vYwhw_H#7OJU^8uf2-UpJpONW+5~*3jhBEp?Aax{Y#3_A{jzOj{9B&LV~Q)-+k}y>X2Kq)fcD1n{ZA=0!rsU;E&J610-QT zQEGiHp3euwh&@3q11+A*2M|v>K`W%M#q;?9g#;7T(pU5Oe88TBl%n%vpv80f0AfQL z)&0@e;`w~QAX)3H`FuX0pUn-lcrG6>$maT5Jf9EfXLAEBp34WG&zhufY6C3{viX0C z7E=}U>w$rx{trCxeAXm=Lm6mckj?*7v=|KP*8>AX{lD>m?ZkEu>GLp1=g-LlGjzK> z7^U?mM*URzoIJ3JGf^*nH4HNTbMb)W|4OY4YRG?z?SG1`ZutJUrSkvz0|qtZKgE{u zfPNV>Fx3Bn2MlVEz6{Uj1NtS%K#S+{f#YLg?i~kfYCO;V1K|dG&|KS0H*-Br? z=ko!BT>PJ+^`D}p+c^DyP#5(R<$sEn#sT_6jJ}}^D$4(k2Xb`14}aDd!XOzxCl6Ro z)XP8({e1qMJmAinsF%JP&u3W@{$Hupe~K-GRRcTd7n%Rb2lB23guH*>C=(6ZUt1o0 zxLUA(X|+pw{M6uSR~m>f|F-BoH9GkA_w)d>+3O6Nb|k0ttN3q<-SLs)wI+5a0T z^o1bDc}S{VN7b#|(n;jH zIOw>Z*YAiI7`alK6aKLwKS;}3Nu|L_s|n_&95mlV$&wHq2ca4 z*033!26T*rOiifliUgBdgO^E?iA~0d8;lKKCYp!lHrKlohA)feN~7;LE;qDF$*1U| zG@!=F&?*I>%pU_LQ>L3$I^*q)mWKT8BhZH8U*=B2f0-$@vizJ{-&1@a)r%j4m=L*MART@E$PsN{V?* z=j|ovqB>_rDT7j-mvHRJsS#nU4H!^5fFtuknz`B+=}0pr6m5uEZoG-X<^+(0u|f>~ zmMd-BW%XE&|nc3$p5CC zoB*33+8be^%NtibBD+G}aCPPt(vHd|;#FZwmNz0%3=Fm67MwTC8D1ZOJ z&47|OQ;I1YUoAGI6b8S^P>y^sM~~9}wKu|SgTu8io~QR~qd8xQ-Yxm`Y&TozIcMay zUGGGs9I*LA!P3ybhYb?>CvDQB1xt)|!C2vbQ2=H(;N`*=MQUk)&|iL*%q z-%U+#o1&+5r|1h&Y)R5tBmk3*dN0Y*mmDnqPe~6T5hO?F-SmGCF|pDY0szub4JX>F z=Isd>u_1#W(xk+uAv@aA6X3(+0tmyb-ytW0h%1h#!=GM^2|Zoo2E9qfO9B1?{oIw(K_7J zqs=&I8*N(f7SLY3ggPGF`6MB`WuacCgS3MLCCGi}86?of2Z&R`x!BDvLAgaUCaN0> zu~;g(3|=5pz?N6&0N1ewjVv@*jSczME4N=vyFVcZ2wwa`w4r1@z=IlMl@7SSS*RyA z1Q28}#M`tP_2(_8^VP(NGKPo}ehm7o{9}wBE~PJ@S$>QK`uc4|{aa`HUokY731ezn zUJw+*mHE+V+g%7E&3RIxClW~?k2*L5+I99Fun)>i3vLUOEHN@&?^5P(LyZ zLb^VPP!=tVPS#Jo^36wL0{%jT%IDTRQ;jJF+x7AW2su;Am6E@+N)u-v_s*T%;h|el zfAdRvwyh7#r%i1`h9TYrqiY=U#vGKg^CLsUF$faS((B}U(5W{UvJb1Y*K?kK-9%{8 zHls@#NJ~2xJf`sjodR(X4+FA}udesfLl12!s7V-OlcG+9-0tXA9Sx0SKhY3iH5ofF z7ZlS0H?!nP#H6A4Off+Z{c1zY4@|gHqkHoWg{KRuWI550VmY}Wv|-SML=L$Y{sw@j zTK(7%J#?3n>xoik|1bE3jbQ}=I011G0UAdhZJRcE{*vw`8iuF*F9`mI=je-ciE+C> zxl6!}2ihDbXC~Ro(&zLBflZriOyh+%ljbM%S-+5+;o{b&b*8>ipY;oL&=x13{FAuV zq9xG$jQyhIpngov!vgbC@Z_As~Nc1!`raR~{x0FbB$8=>lBO>i%yMd$50~#&~M|I5G!SwUCeF%$dzaE|vd>I6s! zXwYS{U37p@1*w8)VXp4F(CWCwsGk;PZmlH7K~9HvOybZ+W@I@iwz-b_T>4y)q@v@N(-xPoh3R)bmtT|LOxkwFo-HyXNiI^a!&IY7N5#* z$Zs}pEU{;2zofDvFJ>h!1et(n(3HCBgsw`*DGmV>c}x5p`OSE*=8dwcCQc=x9O2Jo z;sUJ}l{Vn4aRLpCvvRqHg~*nW`zNi9TuZm2s|QzjxqiKcgCZ6!gOVEY(@Xs~*RWl` zA@XaYLtCR;cXZ7S%_VGdQIvDlsmq_x9ZcOeRCg<#;?4*6PzTpUZR?nyD&b2;P6Pz+ zJCV~<&AMqH>dnf3he~lsnMP0dHstY5Kl9A>4Qee3ua~5V;a^KjqUL z>^msxi~q&;_=~~&U+7(c-!DfiUq;^M&DWUsTaSb(4)1pDBToK6cM*1rj_tqv9mU^^ z7PiM$nEE@?cq)iO%U?i4ysn6jH|Z+VV@LK_y2d4&L4k=oW8G*MV8)m=B)_t4N7W@s zIM3!dYMs`dcC(mAH-_m%!-|x{3qv#MCT`pj4X10`=H}P5(VjR#6chkS)kYmp{E0fZ zP~Q{Q!R9AvPeeO}ZeU41uN}70dZOo;OI*dP6Bxj|m*wBmzW)UM{uQ-Yq?lg;9G~wm z;ui=fs{QBQD^A?9iinQ=Toa$vva63;YJCv7I%{Ay144l9pwQxK2aQ6Hy_p?v;n)EG z3FYmyeM{zBZ;0sWdKiu*#kDEcW5Rj4#66+y74Z|N@kb29O`!d({O@S#BztE47jUXe zAV~MD#F-4Ih!K&B{a;7BNh`Wt)x_-}X-<8wp68QMw)xOG& zHk}PwOM^I(;`(u=4tyPlZfK1SH*VcWJ2bSoaQ&v9SXDA1$*Zlj924?e=QztX6D;`Y z-4<^vc~`tw@x0KI!auC#@vdd&(I>Hh!{(|jMH)jG>WZ#uQPH$C2?tV+r z_w!G_rrw-VkGea5ZDunvs<~39qG03e?&~LDwXQYR->CIZ752k3LN7MHwld7FM#^qGa{v0oIQC4VaX57o&LF?!%ab|RE+OuzQt#{?`LEfa<`0|qNFjgVA=Tnv z`o@>+8aa_JsXLi-*^@Q%)L)m|%$&}hgQ}KXyH8A%k zb}ZdvLIr#uAYc>=Mg2Wa`e9`xZz(e`oj#CqrNNG9U*$jY*U%Cc5LKEoL_eh3^aVGr zNRSxQ6P+f2A;*T|SiH3Q4UGJk z+GB@!4JSsgZSKfHHnPyau)58E%VTLFwI|#*?lW_Y`FA$kXE4Axxg>jt>~QnfH(=b(krQu`f89xR*$&S@Z8Ho0imFy!%VEq8 z8O9!J=*gcUm~rAR{07I^yLVc=%}R$>DF zbAT2_Vvjp4k0!{+5FNr{hQ;)u&1poDHD(b#tKc%K^0}6vLC`YSo2kNnO9Qti`KI6T zAj>l&c7ZD29C*!^95|O~HbIp~j4H-umvH%=0+r5|N)Gn;(vubX$E9ATROR1Ocv|Gt zMTb+|KnMsxK-9JXGeCgwh4edf$%HJ-qTxV1u=qGpFqmcx;c(+skZVf+w~qR7OInbA z=S8xdAyOWAABfH-nleOL3~F!&yZX(TT<_Pk*-%4_T=7d^0lB`d~FmcZ)8)wT9KUT!;bvg+}h|Jq!8#!^sn9Qa) z^q;Km#lLzGr1e0Odid%ntOG){x;YUZD&6!o1;wgj3psJ0Gh`ozHnX~2el;h^$=8`v%Y{vLWoiWSVoItljvk5T7Kqxu5wHJ7J>}$@62K>Ir=Csj)U_aE+5`!PVgU! z;1 zexVJp@=OO;c};a1k+I7=v*;oN%{h&v9wtG^s~P$Wrw=M6g z6G34u8d}HEfKb#d^62U1*j_fDgpL62`pm&z(>3`cPZaGqh&GGy4*p_$+Jx}tg0qRnPRdmW~`q-})*XplEiH04CmQbDv3Mzp^y^#aju7lCN5 zx}u#_PZaGv5N!@4+UugjMAF*A9yHkbSjTGL{BC6C*R3mBnI(w!A||^1y69aZX+>cd z8dPbBG*_0Aqw*d4*DJT!`v(mN&eq!PU}zzpSQAfrV$ z7|9MCoZ+B+5V@N@n3pv!nX&nGOQjNUt?kE0w zKT!33v*I{@q4Yih)9yiZSpZIa7@C+f5xk^(vTsrKj~W^VCw`lNVmwjGgHXeL zI#CoIjCUXta~;f-o8KE2;>3b89($ID6)Y3rz8sMXHhJwDc;j}sNJcb!seH(;`5JG; z{d!iW6oMLmzWOp}OeAj|k={HL#Y?&(yNjytO%y3^qDTRVb2<{|qR=0fJ`{AX@j6PR z9v7bO-iDk*+V|&A}HQj4$HO9N;CT%dVm7 z%8819JW+8!P<%6^c1}uW z4Kndip{X*(R8tvX0-WUsRf|1$d;mnk78Ey9rKK@>6KIl6m7BFRFrNZN7EPh;X%U&q zhW!n2`^qh%b41cc*?*B;bFW%t(uw{oowEJD(pA08jO@#1thMh<5ie=2>@uqUtG=}q zx+L*tV;N4Ac&3Dxv_f_XRbQBBt?wsVYXMkm9b>KTrLUNEr-?TcscW^?VqkK0B23-{ zn0&}YZO6gu)0C&B#jL?YnVLvvqP8?=0!;3qDSH>3`JUc<=;U9lwXqD0#9Tl^Yp5XWwO<<^b_@de?nk?uh~u`b+7a zL-LAXxi7WL*N#YCH4$5S_T2{dO=RpVI`omF^z&0WsQR21!MGq`9(1zCjg7DpprvA% zgbNP(QmcI}#sN$>j~qT^I?P71=7pl{&`xvQJ4&_-&iRV(d6^O|>i}ITyYcEHwE5V) znq?a#*-e!EUbP)3h)4F>v84ZQbJpN_E#h&8&+?oQ>rE`lH{myS->No3ZC*A?&LcXN>r=2PzlxDP-XBp4NOK=DkfXejPJ%O8n5_OYE3JL9`#GSlEX;GBwrx zVebmB+F(5spk(g(cJb(gms8LGLeB%CqGfZ;#h30bLY3Pzu!Q9u7zg-pY>u8~wPDO{ z^{Da19g*ZS!8t$b;=-R%<<^c}m+3Ygcf^=NGb|#>hTtE1hi{a3?kIpvDSCHK9ijTd zpD(S+iM1IYAT-9tlPr?IC|ozR#cD)-pYH8Tq=(*jk}f{=HtN4RxDWb2nu<=YbWG}0 z>^Z_!L#M5Nb!3q9wP3kFwQJ#zsAG4J8H^b)woPgUf3AZ`&Bhuw1D-}fw7>Yc*LNsj zbLt(c*b%SEYHgs^D1V(~UvDL35lCh>^`U=eDL9-xW7;%if)Hf&A z=~?mYZ6bdq?Ys4(9yt9=2(y`s#OZfEP(XNUJC+O&yn2bI)wRQt)phB`=2gmq&qmj;9sckhl{L^h|Bk}bYb)eKOweJBgfw; zfr|a=riiXKYnD}*D>nIcgehS)+KqKVZ71s$mGAG=r`8!xvr zCU`oT2~G+}r3(j7U$u|k#z8CpDEencV|E3n;lhr4IYGX7hk@>1bxWG?B-s(UIP_@% zE}Urjf`VVDhy}+{$NHXEb^36<47w^mMeL^Dps~OLn@-gCeITo2-Q}PEjem{{`=nb3 z|H=qw@|Ng9MsjvIr{V05mS+lgT-Y^uSGs%s=my3?Z<^f<5U;vB9SyHbb$xc7vWjw6 znAc2Y0w~$6Er1d%$U>FtI`-p?Fl})*Gbc)M?czk zzTxSPduDhOi|)4Q46Ka@Igm*6){m}XggaukJWw2P*BK4JmO2|Vnhe`fR#8q0>l$lD zxMOC~fmGA{1eEex2l;P>^OMa9ZnL%RL zyS8XJG}YJ82=p>444A>^YZX0?d%SK#=?aZs7G|LcN#K_9Z*H}xtK<3KChH^uGgoI- zJobIWB%i;XxyV<|h%u4!v#*K!n;`w-6$zYywIdDbo*Bqi9mU;5N%x`aF0#WaW3tP$ z`a>ygG&p*x7YsB(mVc|3$F(z8`7zT~M$)b$4=@jUpV6>tg>%Ar339E?QkNxLD1sGJ zsAlWo?a#7VILDuNqJD&pIkP7Uc%S0H<-k8U|FGsB1j>iimfYmJWDoz zjsws3u85KCpr6g}RI1N1l$uq0#Rki!X%gr?YI>@>411UUoFVQ~RY6V|)JF1srlKzO{X2rI6L^_*ai?Hoif#|>E*X?ilEL*lFe@hi7zQ^QH!+H_e;8HYa&Ni zfAipd8To~6I|^|7E&9iqPx&hA7&E1#VBako00O%ulZEwkxrc0Xnl+9bl)X>XzMZ$d z8Dx{D=RPYXW(g}LPt?6#KQmBMo+;p~%wjB*0fK#U%t^Ny)AR>Ixkm}=pb0_?-h7%! zoC~z+5l2#8oNnhj->I~%Wxq|@CQga6Q;2K$bo5XcPu@T?g9^IDtHe2|{SQTLIDnXS z#tCg)6i|tZB1c}`LNDtSt`A|~1Tw0F3S<=}@7a1q$An?%M0%8y#9Tbktw`x4B)s6= z8TsL=mcQQ=!3oMG(Y~Rr%O0AmW5ge#c4^VwU+6y2eE)ds$dyJp<+H^Dfqh8~H9>bK zus-uc!IQv*l7_?YJIAn9Hp*SOK7Ke3SpudueMJ2aeoHWS5k)VFKyAFUM2Gp7mBma8qUn%f+yUY@;xyauvdG=bJkqs_Ly`cE7}WhB^+(ZZ?_i*c>VnF zgYfp2o7m{4#~g#VPg%aGX1n+X+PS;v7&f|%bPChiwz+C8UYw%d8hD>f&Mq{c-dA69 zI48`65}M9fmC2fJvN!FDG>@on@w1*xdTD1eZMyf8ejv)H`Zz6BolZBUrT4Ocx33Hp zy_8%ZYoqX{!ku<*r=$AN;qjUXXXU)j<%BGyI5}`2%{r-{D7W=-jPqJa*tafjT@~u_ z(w_QQYw>qfp;P-doJF|ynmJ>L@4#Oy^%)(?h zVyzSlsG+7pJ0{W5D@4#-Y#Qk)qODHL-P4rP-&2VcQbja{?bVYX5d36Hw13SKDuUg< zwK+d=-j^f*%IILOY@X2jO=H5 zgq%USf&5;P$q~_=hl#uxM`cInYTTtjF4I(vxhQ3g)=^2FLH7ooiI@d3?n)YB-cIsQ zOFn+Ltf<9WTAxuKSbqt3peABX3(;#aZsFoc^?6EB7s17LYBY;_J@gMR1=q(KDg3BH zmxRCTK>KwRGIDGWD!<;;r+8d3(2<#FB5RR-0_$B6FmDOVGg)pX@oB!KKfiv!?-FiX z1nTiVk%=meiDP;K*or-hP;BDX`T1Ld&setk)mT$S?DkaZ>0Zdd1aDO;jE{Wxakswp zVan*+Jt^!yr*doh33~^#)=iw|UiX!GqPn41k;>VxkKOqRq=0pcvy&ad8`$R6e$qKQVbnFm>2em| z_nM8*AxC-Vza9M0@|<4{n^LfMrfbE``IDZwbBj|(oqINO8rkKRSlnMq1>@-cddO&)p1I3%bi1?^F4MA71|wq+2&DTJ6Xuz$0CQH(C4lM zw!P3znr|A1!e2nxYuy3dMs^>Z00pLnrcv8M^MPr(83^k;CafjqI1_}836v8mm*V7m z*V@h1TWbSQf(3nsIz+{ak`|C*@Ag6eNsvzZDotupO)gdGKt z^|Hi;ck`8khk=#k5Pu(6nYM@?@&zY4^<)Kx0`;NV0K&(dw(F)ZSy4MeKVF~Nr(neh z8ypyho3S&m8amT~-6ihcO6_7}o)=J~{lS$5%D@Z2v!6F+pI`KN)&&lXY$g*Ol9ou% z!@ew_c^#RXyJP0cxZ<^xnmx>pTjGqXfayLx7!dcajq;SIdCk_cXng!T-bOh0tWmC2 zQM;vhlyV_3Y6s;jygc1<-oeDWWiM#0@*1yssw`4V>vNWqJEN$53Z}(e!^qmD&T-v0 ziB-7vpoDuqYg-e#TAZuyQvqxr0rpB7D{3crC9_XWs9YOngOT7S0C?qNJ+BxicRoFp zmFScd3-t*rx`tHeT8TkXe@eg!-~!&ek4nCx#a*@6P~0WTE&OI@SvVHg+gi8`RAm*l z3&iZ&-Go+LmcFp2FZqDjOJ$Qp1-IxJnoi2Di| z_@0&6B(8Wa<-|$h;qaW*c~*Av*g1b#zGI&luP_T24~*=ubwXWM3K0`&#`&Lxu|kIK zmUCoT(jS>fg9r^br^9UKs8CZ{XDcfPx=d6=(kIe|4AU%S2BRPYSQuvrFeatV@ z2|EUYSW}w-4(V&fc9MQ-H47u~2=aHd@$acZfZd=mJ##0~b8}`RD&wmx>7%u|fgE{b zNyFC{xPGG>$Qj~>B>>%hf5!o1`&bXWyZ_YrG$7M~0OBc_*qtN4U!ugsi%BbSLofpe z*HJpBOvlRVR7_2Fma?MJV@!}w-BreL$4f=eN1ZY2|E_dT^X)`0GKk07HNa@VvJ&@ zq`Z&hk40=Y*s^~rBPGnCGa0gRl+$7^BnRg7@?+pO20$l*Ej)gfBS0&uhVU^L?ACJu zod+sW^Jj8bnI{v=W@JPjV@KY$gi)Wu8pl03L7|RbMJ&ZTlnEwuq6n&ZA{2FCJ{0PHD3ZD=Yp?H zsCWUH3wK{>oE#n#@|d2Gvs(dOaBc(4e;&*aO}8iVUc{Jx3lD>&{9km!n5i%2`_O@y zlZo@Zja0^T9W8BQ2|uBwG@%-Hj!7xilalDJ<~nftIM^iNsC6%x1kIFo%*R=R$F+CA zgaOhz)_bF*_8D2yVn#T36we4J*f$Le_xP+#9JL24r4yy7D)CsbcomM(WUgcbf2I_L zvg)=nl?iIZ-=|Hi5f2EK#Q4K(?SfhKltS)@M;n|U@WTO?x9X`|n1th#?sW?f?2_8!e; zLpuTU8mh`UwoJSN>ruf$h0d^p0D64R=urqKuyx}_n zbja`LYeW9#{D~p&g1Vwwrzk7|YjEwHBZ*mIY>x`a+IqI8iM(9Eb4uMqy`LU9TiY(9 z?%g5gwE{R%Kb4HOL{a-}G6;#WeToHBW8l#B$zul@KI74cy3>G2jXRvSDX4W{0Z9PU zN`?s9+&gdRH4LcvTlsWY4P1g9BVY+H(V1^0B^_lPBce8iXb@Ixtt~4kX{}q1^bj^c zFCXkBF1XYMp~=QG_=}VQI_Im*lHDQ$yORMJ%`4I5x*#31HHX;NI$^W5nW3n6XtP<`4^P2n0}JHrG_b$}`3z|uj_6(-q!kRAPo9dBd4dczr)=YE7OS9?oE{nqs zeGP@cd`|aB7O1&J?k1Z}XSdQ^f-K6L0f_@eda^JZ$Zm~-iP?=$1vn*h6nOa9RE_e# z3&x_}kv+eqF2tbzZ%Bie=>RoyzaLc9*cxsin&oSCppo{nGOcA?C)(Xn~Nb6NC;15(Yg?kYgw8hW0QCi$b8~2%3 zOc@8o`_tY>xm%2}_Zi5d^EYMcWsx4v=V}x4w&@p3dKWwE%jA^t!Vv=s%c|odT5W^U*5wj0&+=N)t@qgJ@7cnmzBIY;wOr|9%Z9-%dG@3MG62}m8L?1Dz z>rWLNg%IxfyaU&ejU+0#rcI}_kumipwj;IloI5_OqNEnLlcYZ!$2XyRS*UkmHf0ip zOB%yx^&kzJWJAz&9eWkJO1eo4C!nijIGJ;`UH2n;tB1A#-PkK4j#Cw~1`KMtK7Ddf&z=^TC+%%e`pK%zP|g;%zR31;OHE zl+Vo%quklp#IW@20Kf!iCfZ^yF~8%Xh+#B7!y%!C@Ds9-N4pdL-LzgW5y1u{KQPf| zSuXH_xn!&zbwRC!KUdrWn-PCQyXx3NJB`6E;U^4f&Zn zI`sg_YoMOP1kvw~m7%Bg>r9u-)N@!KK&`B(sbV&Lxws+46;;^bU~U*-JaZl{c0kn> z>$QU@-z2?Em@_S9BvpzzrUnd#@d6K&2Lw0mP z$7*wPsXzmoC?_A6R#>dK7l?W@1j2Hpa-&_-+=t{}!b(0^t@;9k%=a*yGY#OJODb5Z z7wADDF`WTdwnrg8MjFOr+fJ;}lxx}+!itxnna`<0trCIy1v z?cc=O7L1YFNDF`mgR(7fnK(^K-!7fJuu5^P9GUoUg6(9PFiHhq!_0pSD3eeLpYr9-``r*v`@OwHfpg8I^ zRL6h26y1UekWC6QoY=A(*od(=ei)FA{xEnt^L^pU^t7L)E=mPY(}QT(#c0{J8bvvX zPu>mUN)OqRcg0mFTlaPcgiN1O@VkN#d&YUNaVG-1Hi#lt5%#WSS_R_|xU*&VM9BIz zwD3yzNNrzM%Yv2ZCGwpfWJN}~eZ4ocxg>^roUnP)X0eHkgynETaw2~xN|y?5=bS|*;`eSbxvMZvG) zCE{&yKU^QeTa*z05DO>LOA(84dw292GB6{VD|_G(a%?MFnA2TPHBs)842yzZ@iOsS zadp=l@!f(Eu1Y?DI?lCGU=VV@~4Kf ziZ3XpsyBFLp#&#-cjMa8p2bvPZK`CuMM1ZCvp7YacKVaJ-L>=*dKi4T!iH>fbtfqX zZ!yQi*=dzBUosikUgk;@czv$r+yoXkD75-UQLWQ;f0K6Gl-&Vu;x$D*k(aB?2ZJK( zQOw_R!eGHC+4JYD6 zb<;>K%gCMbg8e?}dFj^eF4BD{rWz~h@Lu?Vq0H;f*?ZGcWUt7!__;p3i1!#u;44J1 z8oR_+LUONSmR1R-3SI)6YD%P8R@x>w>_iItnwbT^gcje}#qv>980};>ML(lAMZvfm zP~8~cL()STEoZ_B*;5SPEji)2F9SIP6%AWS2Zb-u6JJ2w6FBHHQO8 zCh@Y((rSP9!_;SRHB$I0tQB0UlHt0sw&Qx>(j(?ve{qfYaa{kN#h5D{GO%=&K89Tt zTjeC16T>1CGwHpb<_ofOes)riGZKFG9$BQc-hV*33v={&WEeCGt|CCZS;0nKJQ{aQA6x$#Z^(06aRvwiL*^LJWn_Q>?`;3DnZUMICh%@!UZJw2?_7C+UjdY&vyq{x`z z6f;ehQoqRWBt{`DT+p6jiN{drgZeCd_z9@HIL<2@KKau!KjwvcBiZYs+Znx%F;23q zdS4B#h@ulxuf-T?&3-sf;i^DX%604-yIKe6GTZzLnyI22?q4<572-3Mu!sXV3K_Yq z%}9fHBW*MNqj)H38^+OtBjNA%5wa~S_rPJ0WPZ#?u#LH$S24hK0E?D8;(? zSSqI1q@yl@-Ptdvl26mT*n1XJf=Z04WnjfdapcX?T+S$smjEh z4$9tM8C#+_lx!4pzRy%c>^7ODr}bGW+-s6i7n~siJi6Zqhi#>3 zUzZuoBe$J7ovNRo2Ipl}92q*;5}@4jXot;FTk@%`R}B^MRnfY=Z0Q1+JWv~2s}HMV=&hYfe;qR8DD<*XRzmAgfkGKSvu&-O8`pRQYtBMHtX@)V38 z_l(nSNDu8e@o>OA=@L_2-*w=sUQiXsJBlu5gda)%*Tqa9_`(Fe3?KkZxsOT-j;)d& zUAphzbh^3vMwc^Hi4OuOX2q?c)XP3IJGemX>9uaphT5SUbg6py6CCBCtJPF;+{OlME0A7GMChEJhg zIdsu9W|pdChNI}SjEW zU2g4T+iqPHgcHT*^hsknR}l8v{v)g9McD<}J4s&>UG{co|6od`ZI)kE=90;ue#N`} zrgYzqx<#jy9T{|8H%P@b>%^PAx@fk=bj7ky;1^kn?ZS2}^DCOGVIv_&MlBufFOHv8bnshR#`rVlITZ0|JDxeWj8IcCl4yuEuCN8hj#Gb>IG8D3Q$*~vDhimi*?N4%SmmyAP3wZYLNw#ZY7*GK zu<|X@SvcZYnA2xe??fLrgQ*dRjs{Fgs-8+txoyIfnnWt#7H+qEqQc`ssG{{7*vsdO zH+m(WULL2yXMR8X9k%iHQfkdAajX}=Cxu^?7?JzOxoG%-@DAv!`uL-1E8j?Sm43dX zf6-y3;u%I>Ax`wN?m5Np?!-p+;S`yPeZpQ_Mwlr!DWo;icTOpSBh|2?OgFN$ZyQ)f zrN|df5k00lDkgmM=46e&4_03(s(#Z*P zEoT=Qivz+|FMA?Tgo|@dFNvc+O+g zD2tvU?-FsA*X*8Q{-E|Kf$yAeiLUv*08*mQ{{8rw_tGA!Dd+Ip_ z$Ho<}DhMjzYZ{FTRveFtSZ-|A<}FUIE!x*iIWQLPm?V0xWfbN%9tlTDp0u{P4oE&K z`|ItUq7#Hltoow-nLGp74durIRy#iBDW^JHJk?$_J`5G zU*cfbA61UF*vY<=eI{KD^1}VY!3fMpFfAr|G19;@}oSwLmpj#Zd;qX-(KTo-J%SRVg}o#*Zia zR`$5w#&0t%tys5I?e0uIAJjMaYDV&V4mrt$_{o-N&r2w`!&vrhjOXoWQC^0>Sxkiw zw|*)PH@JhU->~(ZVkzEIge%Ob6gX81x3f*Nb(5iN#a}i|)7#2G_K; z(wN8}G8>8YH5WSCK7@{|_-P&yuBENgp@q`~bR(`)meW>|74IeIIIxm-V%%35%ez!! zlW0*65wlSBw?0n2=0=HTsMofaJprt8#{@gg=2z?L{0Ck+AAB8Z#a8T6?AvKvGzSA$ zf2x0+$dNseRmx_Pi6>}>$_vS+yzq-JA9~+jx-as}fK|%X_%cej+Au=XmXSm6HRdF< zl48N3mr+OKZ=1PM`xKEgy=}fi<&J$1{8>9;wHNOpPHg-K%?On*qz)71HSAFDS;7mE zv*sQ_=-4%RJ@Hm(lw9H*{!Q2A->1MW-JR9D0Yh3jRe17&dk+;h3m_&&V5ix$MDj!b0HI`LVinGQXa-V?HaN8A*aA}=}PwPs_ ztXsP_xGeJ$h;MkcpLW%Vnxrypxoey$_gn6D3c_!+vkV%gkn^0VJ$(*vC+h~~#7}4* zB6b=>O@qS5OxV!Wxl?z8?p3vOYMjM)ymD$g@IDK)1Fdn2oi~9F7BtG68-Wf-7#z8t zI3f=|Kq`NgSB$0dDR`vPTz;HXyd83OKK&`R;>hNJ0HwR;R?_&GdzD_&tZ@*3=XJa` zkafLfdw(w==zX&4?KNk`hrI2j)!S78zIue(k$#{^>C28;r1F-nl6(`O*t(Ul_qWO~ zzxzjwe1{}APzG2+Rd$ez{<{8kviZg=NH zfE~jQzV!ouQjehIY2|+i7t9nZm-KfEFYKPlWBt@CE4A-ma$ENJfPME{AAB5e)lqoq z!p!@>)vR98f8U{W1>LMsNppA@eUFJLNhq(W@6@euA}XNQA$ zs-3O>^^yHbDH#Dw?SSbfV9I1gm1`hkSy0DP()#>nlc_7#WC_@LP0__IQ2x?53FV68 zjiT&1BoXgCbaa2MIW7P<+PH<9v7rYU1)>$5Lw6q+p^6!aWIFIu>D{_iTh?UlVmIwvycd>C)kgBf!uQ^nv1Ba)@_nsK_HhGXXN+lR z;imjZPrx|CTwoY()@z2BbUKV=M~~fKxkHo=38?J^3RU$Qk&v#c5b8q8X+E!(VBJ zTwrLS#U%{NL$|uV8dI~JkS9kilrP7#Qi7YbZh6|=!)Jglxry7)(a=5glnXSg5o1d3 zWaszEcjX_GJb0iQy2cX6giyQY-Ut({`<>Mq*vaZJ>gVGaf{Gy_bgiQyJc(ChfGRLY zuu-t=iD`b{Rnrcm23MUrql;Hl$q#Oo!CNyc?;c*W1U^@F&3_#kZtL*5{h{l2!uCC` z4VD_?Bn9ioNCk=tDszmQ4c8%td5RozXsSLLe00zd<#y!7lMhHIE`4G1^c+f&E!b$X z?4fD?Z&xi!-JU6@G00gHe4Z6OaH@R(`sArZ!e881%vlYD1DMbmD@e~169dv%((G14 zIG6?}7HJ55K676&eRU&EXbl|yJz+TfQyrLHxu`5+x**z9()@T$shbowv*BK6Po{v$ z*JF=8ozVa<`w}!s?dcX|i?E3`R32G7;!UktGtT6=*z=>+?Li@g>wC}H0<f-?WB1x!@AAV4pUqOO3C~+9E3*@J?U^lIQW}7P%B;icrVfVC8$^P*aAU=+X{}gl ze|sybxOG~(gzAKaVz?B@b%13GSo#_RTRV|IB;S*NOIh4^=6IK**o~!Hot)=wpVkh9 z*JyTwZ^OP@Cu|^qAK@h`R~%8v(+AY5Juay5s1rZR2e;}W9K{KFLbTWh4nZGHsZApv zK&WY(u!W<_@yv>%7MD3i&A-~7`qRfSKUj*_-A*W|4eez`E$-wE6Z`mqc5t$-O2`zK zAjAqpC&4ypv+G&Hfn#mt#Y2Y@Pqz7FM%Ny#*`Ci_jDh4Y_O;Vr*oKDvrAIqx=rE zBo?;}R}(%nq%j3gL|Jn%bM`)V3T6%q29q)GSaE{w?Tmfu%2F+B{o4$C(6!^%1F0|7 zto5me5K@Jcm@lLqV~ZM(2J)ie90E!% zfF{3ya))l|3XSOlv11o<6j}0jW{N@O#-o+ByUA->$KJ4%_P}S>)maXF1%ZnnSJLlx zj|jKGwPcr(jNP_qC2i+2u=4|y!YGrVwjw>=d8T-#r=fgeUz_GXz3SM(YjD)$KCu&FyUm8YyF|8!a-#X(3P({(dY$6<%6bTZ z_Fvsw$ z#?l0U3tO58RbmBs6E1l7S&X^Z91R^^&2KV>+&i=wG~P9t#;-XX(onh@ZP(hW9p#V8 z_fijF#4PTL1n=&h#JhDE%!WKYzk8ZSByu|!yDmzuKH4}%d_ya+r{e>&`iut}SZ0l~ zOCK7Q!Y%n+iv#*9&xOL(w_kCHbTF^@oO9@XJK^vi-v+Z%U#1reKEzN$*FZxOTbU4! z9(zItuoFMDI30-X{Gj#O(1LuOuJ9xMb?mI{)G{qJn}q57D0^=P9Q%a_#^B7BjJSPA z4DjKfBf-jEn*QSl6rHG+KF7Q(ft_ahypT@ese|QeTaSl-xp%Z<(Yq?jh7^tL6K3{?B76mJWS74p#f! z$Y&@!*wgiuP17oyEU5TgK%=7Xe*zWJe{1nn=G8uJUpD*RfR`gH#;YRFTgDLknT{EG z#DZedq9yhX*mvG=rguWzcclEXg{kpsFOqY8Fcu{;{J`m`x${P;btY>`yHfvzs05hjli8C z@OJ9-fl5YT=!;%21A!T0D(~M3%$0OP`D|LH6?onBJ0DyR9i$t7b^wbJc#?cm31zHx zF_f_-8Q8!eZ-M&?FIwJukQaJYDq)YdLAkk+z%~-|p<<^L(Jb!}O>ndUQe3#Dc*XQv zQ*VSavxb(X?2urYrpd54AZDT`@n|`c?~n2)15CJ52%Whsm8kXV4*Qkc$f8?Yq$|c- zP7UQ)Q#IfRP1VUZ)H$c=Fq3Cyz(-adiw@1%Pk6f|68ktzKL&k*eq#LPu{-jHMo#(p zjIK4ms+*yRWRpX$2juL*0HIqO6bFs5wB4V`Y~}(nG<#GAa;%& z;bYyqIaqMhQ}X3wm(tnNbllY#@0?uVW?EoaMFsC9TZ(gH%*n#M?D%<>upp6#Td`w`NeDuQ=zPt@X+6|&KIfrkm?FE z^P2Y`h_WC0TEsgy9^Fzqg8SXc63p-|IQJOn?L;{r!X|bme5|}Thrv3Ky3MiWJvZscyJ5#|B)~O?zE((sDv0yDC z7A3-_5JR{^zAM_xrWO_EHC^$P9)6}%(~FEHbuf@NMPnlkS&Ch!U;5x?D2E-j$h)PQ zbcQ3v@YyKC{%d5CS(2Dh0nQxONMHcVSKU6B7+o)W;; zEY#>nj3R*-w-7aYTp^m?>Vzf<%7wsKH9dUxg)k?eZT0JQNy!SrdXD$DG#KddrHCjp zm3-+&(_(QQti%@6FHF4^YQk>yD{F2h8A3yG`+(9+m(ri6`~*`*`NfY>8km+Qw2*v$ zXBTRU#Vq};6v6U03vPu9*baF`w>qUqu{Uc+i3SZ0_)D>{8cMfvqA511x(nL8S17@O z+zmolOU{2FPacM4LfsxQRT#zev{A)AuyHKk+q!@ZFuykd268u+WwiRNj1nEr=-@fT zrc)lU(g#Q6xDIsw{2AIMCRqC7%!@1~#cr2~rahRYie|ZM!;EGAG|R+c_CENRo1m^~ zbGF5SRN(=CdO!{$B?ee$KfKzc7olvaA!@^S^$YC=g%D3!+dB&Cr*n=@AUEB`6 zQgXYKvIvz$Y+x%tztOiJvi;i3Mt)>Z>c z}b(@8Mz^Oksp?>!)hu=(XKJuhVvCjzGx?FCl6d6jRstbyI{4ro}*YKm$rGsuARes zf-7sKpJ3Q(67@~~QW%Tgp#7ibGc}$dF zzj22ReOyC3sxO|hlxVofmh;08`#e;jGRF#mvKf%j;w$}uqwtq+o9SaCM-{p1FV|_9 z!mSxPRKTA@{BrZFqsQK<=hmA6SiVM`ivwHWh)I>PY)`94c8n-LBZAlX_9beoF5q)4 z4#0A27dgDG{$Yf&iEIjSVP75YPHlk|HGeoW6un7TwoXg_U@Fl8CG3n-{qjTJSF!J^jM zj@G6!tuUZmR4~;vcIvc+76lcd{fvOn0V#;zd(KS|6PWqU_x!$RhIz(6ti3t!efQ2wAC>0@xMJo)|2g0Sbgv`!iX7E^c zlj^QiT`XhjsKR%B`SQoNdd_nsN@-PEj`p>nh(eK~TC=H~*TpWM83JD#e0gwJilF|H zCOD4UB2aviKFu7ufopSJ9TgyBhBl%42aL#kjB>eHNmbyv*}Y9R`4Kg z4domtmYojQO@9AK6koHZ>5uN*a^B!RMCd4J^=rAU88NEPtWK`xO&1ZJI_g??dIRlZ zuYFDvZU1$oAGareSIyzIXWM^FJn=i+0em1sSl;x+@oX)xd?lw?;elK_dT63u|gJ!|UXyTgu)&e-UK95z> zG1=kp^GCPmzUQJ@6%&|fqjxkjML?bg$gOo_G_g&7;VnNjSUiC~V1!=T6wqaaZt!KC z-AFIQ(-OArbWus6@n1z(rEr=80uHWte`BVr-19b8b?hsWt6nRX&WorMHBAk0kqWxt zl*^N%#nbW#g3l-cv`rkZ#i}Ww(WvbZ+c2fL^xrrHEUin5iAkQbER# z$yjvBY)|9YuWO)>2m5n~^7P!+)R=KPk##2- zWPX-e8%S&x`atX7kT^s4jrdBBp#HC#z&JsRP*J5>F<_gqAszR# z*>$|a9T&z~zv;Db@7dZ2y{j>`NeoR(sb{m7{Id5&`EL2mu+|Anc7$B+uL)WP{dJJv zX<1_U>Z7H(uZ+_~#!O8d-D{Me%P!IYv}Sa9!5F`!MYGu^&Njvm#3hr@K1$Y5)bL&1 z=#MKf^b$o$*JuOs6rOWLP8DgVLH9n|vc65@4_gO<6=j;GujoFjoQ^k3z)_;zyg*_6 z7~YJ6>tTr#)_=CIcBUaR21=Y+^jC$9Zae#ezVGC%Vc$)N_)>bgzd2|HOTN1-HhkXE zOS$pmG%v^ac8!q=jB&$Ae#Y$P@$$3YXH}ErU17Qjv#p-L+~11#d0_5606g@lCN~>{ zPcedPf932tQY9lzTj*{4IL$7r+`a7XqO1}@fMd^sAA-BOFZaOBK`1xXggb)9~azZ^7>ku=+`YqVqd1}sq zAC{_8+X$M|B!dtexb97k8;V zBFiSm`^@#z*^l7#96OtsYoK2{zcFDha+KZlWZGlh%x^i`kTYD&m2S z{f~+)FQ5BA1aHo0BdEIym1 zj|g3t`B@%YHt`CN82mMjQJ%65cY+B{k%B~oj))lT%fV}C2G%BD=v z@n_qdbl^J@JzIg+M@dE*^j74MFs8I}?}DJrpijL5_vYwMH+Tmn{pIdKvZy$VS(%*{ zG1_+GOht-ju6|nAXrgzRT|a@>z69{|gK~mOyr%5U0{CZwQsJ=Ec}nY{ToCrfq)S<6 zT+i6X99_llwKRI&b`mst!0f6kELz`=8Lbr0}VEe|f)8ikjf2@7E@1_Ipiv#Z>qwJitFPE0=ogK6%=%SbF-X!3Ca!@AAyQgw~ zSjMC)S!3J+Y?=<=;Fnt&dCw)hzXi05Vtwkr)wru(R>djuG{G(3Z+2A8Ufi;eECPx+ zv7=)gtrNu6S)vHt+H0R3GHQOUrTQ0g$V@BCxUlM7ZB^Z+LVoo2w1kXDiB&xj*yv^a zDmPBYOIfxBcND9OLvI(H=41dOU{?)&vo zc4r5D3*$^9}&ZG%Cg*Zf;jlp8F4s3{j&kJ?>6Z;mz;#13AShKqMJp% zQ*%lHb(TCNuI1f?AaqL1urFNd=wiJz4Vhvuz^%RisO5Zto?m>;l{3&TRc?J zsuV?%29BUrzNrdtQrH!xHPF!(T6fI^dwt|#ZrRqp3w~QWKg4?|pnDu{l)GMb`og(g zi>m6X3kAV>`uN-jy)`Z**vK5K^jV@8{%mXivtohQS^W#OD~Q}L2qk=r2qW`7RV%ki zT?(^1^Aq5NYuQ~<@4GpHFRp4$&VV{|5lRr85p0ka{H&Pk^{IO7+BkAeEHrCISw#H~ zALUGh+vjhE&O6-bcBe0AWyJE}%MU-fBO;krvPae&)?A!?qJG;t_YOf*!41n)Sm=jU zU})LXXd$_oQ2D9cDaUuqfpEUpb;Yuv%NcD!IT}}@Ijy%cSTSAPm=#~t_u$9*p=)Pf zfb)#{vYFP5{3Mjg5@gVR(RgiCY2IG%plcec$web>fxWA$aN>8q*(u!MoG~8aAI2wy z`PJ=HR~r59mVhg7xJDFgd%?wurV%DP>Y zM!9S~XO)U~TOhphRz=`9^>5iN*?g;YZfxT&Z%;7qeANb+r_LtG7i9-?;i8b=iEoWx z5!PB;q`qoI&H_W7Q7BCE*9ha>nk)i@E?YbGA%J`ti~NvG7nV_cN?@IG#-hol%SRt* zEOUdB~cB~=@Jp?;exYjVQO=v5qdWi|5vD)m9ZIE|&KzJfYj1&Q-pwb@1|zY~pU16-{+m^g49G zQVYPtBCC|%28*l^YpnvETccyRy4fAvLW}sCvYM2t9`7kL@wzluxkPL4XZoE1K9aV6LMq&&c0iV=kmQ=!@lrJRru&;=*H;Wb4sc@QyXT|F4ex2 zZq}8|;>H$j&L+k-HyyTGfaqVLry;;7BzCW}j}26%tJ0ge0sO)oQB_Y(N<1u|!l93t zF|n4acOv<7e!dng2&U6TQahv5$O-UUP+vMUKi4e|x~H*@vF+d$W+m(nY_6!<7u<*| z97ew`5w*D74T}{0Hn+;<^5NWbgaFc8<3=SDw>>TS^p@(*F7H6aERBQ0K_}Jyz68o> zYliNruAn=G)>|dTlAjuQa1Z=jwV6iU%btLjl+CQFo0kZpo1_t_l2o(eY>43ne3gcD zlU`z&suzw_P7yy|_x?qX56J$%@Z2MOwVou4O>5sySd*Rbu3PxC<0BM;pzfeNor}FH z;aVFu-Ej%9*A!49o=l%qyNv{UKc4f!b6HQ|GZL0$m+T4&4;?R6aDyHP?a{#`4!$8@ z)Z&(zpb9QWaPS}ZaQzb}7?Xt-9ax3^vdCY%rFFhMckfhL)mW=i;-JfnZxGho;X4%`-wqDw@-d3`6mle@trGntx~(67D6A{^ z$41o^QPg2U|I6|k63~$P9>^2HM$pr{+~Iry9?1+;P1WA^@+n#& zIi{o#-blnp`d{&d47dFgIr`U(!dZ;+K{y~A*XFrNPPOM0Z%V`wkKWyKUjCS?NNf3B z2F$XNy2XIbDaRcSj+2xhVI}*Lr2G`_TsL*{opc-<5HtGI>6?E6^DC zTxcE%yh#7L@+*o-yZyF+Id>12mzZ(Z>Ql$*H)0v%Wx>fv$jaCgbxqZ_Amz*Q6I`+j z5x<{Y5Rtrs+cguvAFB8}?@fOZIj$uBH5=)FqqIYkLye(=;?~x`_Q8H0n0kvJbLbBL zn{~1i@C7!W42p=aQPkUn2R@~aTN_H0;r2usnG}TVR9E%A{i@flog)FbUE-{+pNt)o zo+S)?9@1R>Eu&G4zB47wEgoDdl#KI>AzQnbS$3<}uwfP%8+E zIJ{>yTtm@UEp=m(+90z##UzVGQEyL$4jNZhdEt~TU1yOr1FRM%0jN9_cqs16PYMdF zZ@otfkrH(0cDoFSA|~R?k)6dRQfJXU9levJW=*7FKHS^^n)YCKl~#ClJ`GS|OP5)6 zKW9MF8w#iaNp~Ow!1*5aIoWHsn6$f>_NmEFk+%F8h#NU);QtxKdB!DUljv;kAFCncV$xqB;on(SlZ ze03H~=(Zk&60BNd(0@bw4E7mQlJ#I5IIi5V-Sk5a*}Dmgi5J%~ufWDRFz2pG+BT$I zDEBcMVGA}wF!E2~>Oipf)rwnLMg%<;>V;V@6iV13bwS;5a|RBUr}wb$KWB^gA>wwS zpoZS&$kqb(j0Z2)0%@NCit4M$E_F_NA@iDHR2 zl0Cb{hpX=O>*~7+{;Hf7#wvR;t8ARNwhJ!P8yvA~#yKFVJ;vi*x`+CxJbzZ@3dCo2 zQTX;0FstWDeF)Wk{uniUCJJr}ImMA>UI?+H3oViY28_@+dcZ!sxQ@}pK31UevDowW zl^&$zPON=&^6(`n;CL-e*Ezz*tyrpN?(Ojbvb{tdg*>KpE2yK>vULNPDUR{y4YFDV zvcg;U!*laA^jww&N9LvlVF8QkGO71avoNxshZ4r#1RKQlu~UrSLS_tWenPs)s$>?5 z9aI11fOQxw_AYv@{4-**UqMK_bTP&NlOU9>;RJFp%vFQQuJUB^PsY9Auy0=Yj|@s4LINf)L7 z2QfuC8<>ur`0ABTp==2!A(W-4bv+wqTaNV!u?6OFRkiyDEEYiifEM*ayb;Ofa}qdo zibZz->THW4#SLA?u?OGlsF9$PVLzuyFzN=Nsi21A@VV2Crgj?0N5ZbYf0m1B{1JT^rCUXsd`Q?P5?UDJM(f8f6Ma4M;; zZe<0^*1m>fH&L~9eDzrHTE-0mk0A*Zatf|O)Zw+gO|=-wOqk9dINks4yGKgj32h#63fC9>bSE(fh z(!J4my6_~iehc38N3!7k{c#YmFZn87b@c*It#k|j9WLMLIC z4T+w~;msVL?+K#oPL$}O_CzwhWi1eyc8eRK-X!06};yUBe`k8jVik+1u7zzk1N`5$v68(|I;Dr=y$)+lxq zHr+U52}azU*Y?JMn}0;*Pa^7`O|KHb_+~pS++z-SmP7PhMQi4H$pL)A>YGlA!O zj1a{|RUfP?7M_(()F2rGx>FH#G|c5$8slhTf2GfJ}0K(vpf z@_jHajgaZ*C>@a2155il_F^x6T5ma^D#%>mce&?vEW~uUNEnKO0(;rY8Gf%a-|WDR z#{jPSENZr3`Y3})IFfJU>Kpiy*~NVe{bwi?1qo23_!EL9ftTZk4`DU452tYR8<$oR$a-oLV!_6s2VPFrusu|DSom znf}-!^QqLbmfIvpC)e6UJx2`8lb*$s_=8*-cNSIa^=iAf^-q3e}+zZf)vh1Ex$`wx@$y{{l_Dg>KYudbk{PcTS-iSrdRcyc%JWm zEMe~zNNOcpjkIuMFJHa}`^NS0!oEjgt05$=x)R@CgUbdxZr3}8opkLIH#K~27Or|+ zgUT&Isap3lPW9L6-rwNv_Ngn}%=wD3P~_&FQB_VaekiGnBpN_we=XT@a1_WZ&F(gM!T1&(q&0=Qn0gW=hjms_6}5aOP?f$pjE8 z=|XP(b=0~MKYBhkr_x6w0CpFy)iroxLtM?Y5_WMdznkm00GrkZ8`)!|71AkO`Fw8c zCLCnd&wBQ~96p1d;Iqm)q2C=Rat}jkTMu`Ki8-uu6;7# zLW5%rM=by5h@_=~i)Flu@o2*`mY1VD9b2k6jxXZ;zc-jJ;(|dn+k}0GTHnG1Kijmm z(qF@ktp8x)o4QIHET?l!^Q@bOV?80h0^dD&f%U2fbDDzKzzV7k3kqyqGLt^@;cZoe zqt`{$wrU`5e?{d(iv*n9Qyqs05H_V5B$4hfywxU((v2+~l&w`01ltyQGzOa%8=leSnSm3Cdds!&)d*+~@>|?@XnIJX; zoA!B-YGXf?6_j(zhTT;u+~f1?+vRU7r0DR%fjLGq_dqa-F`2UO1YjLK9A=eG>t@np zEZeY~ihFnNwihPOD`>aR3crbx{jyrDjY7=|mF-vtWs7t0b{9`9RDYB-y|jEOE^!02 zqMS~iO@7wS{42>~PEG~YzLLmw9!!Kl%`LZh!i|I6~ z9ba}#)+tt2(A#WC?DtmQrL;o0)>^(MrQN1rys$6-Vp3B02(8u)If;$c-xkVcg6ezx*b<`t(mx5uF{cOoJAHFzuSA@~V z_$a@pv?AGQBwul-KXEznkQmQc7nQJ}Gx9GHU34F6cgx;zO&o%c+4gzT58gv+#U!YG zc8RK0wjiTG9%|iG-$2AB_$naCPJA<~!z13RkfK{g89ihJC9@(nkYXL1fK@UD)qmgE zPdp^dgJ*}(1@N(F$O9n``#4Etw_d;|7ULT$M_LiV*y?5=)aR?|57Uo@2zI7xo@?Tu z!_wr_x60tl8PJAX?S~wv63aWQJO_7^(kUF~+`GN5tmW+}tJ&;Q&=lFh4fe4^?b?Cq zB=jHQ_y$i_Nb9RBYzE{4E(zT`m;b7%+U$5dD6%V}|5hKjF@@Bxi;`gyb9W5i7dAXi zK{;+UX*QrhR-UXYFPql(F#YI5{*_G4JXI13S<}AqQob2j3c|PV!R;#E3 zPAQv5cZ{;jt#|03ikMTfT$p_)l~+!G`1JzHxf?guu2eQBp){#wa@_5d-Sn( zPU2_g?-E|AB(H%{1`rqnPY8MpGU#1cR`9OuVbJ3y6AX9?1P3v+v$FW%(CCq9DD+q6 z{4G|7Lysl;w^=dc9_<>2mH&k#hh~LH62w1@B=K|+#7@X2;x{UCXC+a{AmI~9LOn8^ zBJ(?7ff(LlqDbI*IHN$v`tY}R&CmnVVI|pk9)EHauD5U| zA;81bu^m$=x;JaQHQY-h~4z?kx?2 zo^l2tGxX$Lk;9-z^Lk*#%N#w>FbpdN5C-70-vC132+jC<1!ti1?wXa~WUw{!5(_gZdE$#|FpMc`w$?ynSF>6-m*etb_4n{~LjX6?3B)A$#GVXT86^F` zr9}D=Pc~8Z2SWlg=f)s`|5t9(U|*O8UPm5UmeND;gE^9ym=6r8;wjUEP>4w<5pj@k zNZc)60-P%M8PdfdW{Ig`E6@H%dHVV!(60S>Sli)9!iPmSkqyFw$S2YFr)V(w=5L1u zGkB00*y|W<|FB>a{};?vV&>rcAwwD=w%V=sY~eA87(?#y6mOhN;axsvJ{Sg{%`&$) z!qo-*&X6u?{0vA==I`83e`%<*2ALMA*TIRYv9Av666o2F*pkjP9$+t96gj+GD2s>H z>@ZP5k4c%*Po@Z_RE~l+9cTH_RC>YEoaHIDgg2!UK5!5~G0-g?(tXxq zKOM#*h^%)Gt=g>)^nQB((5khBt~@n`odXTcU>_+t2RWaiPP3hoF_|+Aq!dc>^NK1nue(^M_Rf+YsKRqgNBZa z&lF@oawUA4YDbI`O6~QV|1gwO0(nnIU)G?We#YiO^I(i&O#?K3W=g8$hkuiGw2yf`51U80tX=`?;p$=`(O}8@?g+ghJi4U#r_I^n?abq^8bPe zQygYQ43ZE_>AwWof0u|6N;dQuy$1|}{Nvw6A^+iQuwMVJ{hIpa|Ap`WT_PIy45k_W z{dXb$CCL7}M40+i-`WOSJRwFFJ(-`+w{%krWr+VY>mugq{~r+p=qJ-}mU>ezM&85d^J{69&HO$w&@z)Vp8 zgaIQnCz%S$j0>}9J~EP)+Hz3&0RJ>&!!(?akO7Xy9T5ihOxZAt=Objmgs0VI#)fIE z91#Q1zb99wS;$m3W_fHx3^2t%%b^!k``M?n&tyDLH!d3jLe*5Dkw89 z%%b^!k``-&ruo23Q2&GhX3^Y~hLJhIG*Fsx@vk``%Hrv1uPK#g@qUC1$bXtGGd9ek z@d!yj1ALRIU)w2e@m`t*g5g|F&8C;e^L6oQja>Uxdn3<&pG{qEc<@|b&bjU diff --git a/build-config/resources/icon.png b/build-config/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d57a9445d74ad70f8d8904d5108790e2d4df4c5 GIT binary patch literal 3779 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/.post(payload); quoteId = createdNewQuote.id; io:println(createdNewQuote); - + + // Add a batch of quotes + quotes:SimplePublicObjectInputForCreate ob1 = { + associations: [], + properties: { + "hs_title": "Quote 1", + "hs_expiration_date": "2025-02-28" + } + }; + + quotes:SimplePublicObjectInputForCreate ob2 = { + associations: [], + properties: { + "hs_title": "Quote 2", + "hs_expiration_date": "2025-04-30" + } + }; + + quotes:BatchInputSimplePublicObjectInputForCreate batch_create_payload = { + inputs: [ob1, ob2] + }; + + // Call the Quotes API to create a new quote + quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors createdQuotes = check storeClient->/batch/create.post(batch_create_payload); + io:println(createdQuotes.results); // Get all existing sales quotes quotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging allExistingQuotes = check storeClient->/.get(); @@ -44,6 +68,21 @@ public function main() returns error? { quotes:SimplePublicObjectWithAssociations quote = check storeClient->/[quoteId].get(); io:println(quote); + // Get a batch of quotes + quotes:SimplePublicObjectId ob0 = { + id: quoteId + }; + + quotes:BatchReadInputSimplePublicObjectId batch_get_payload = { + properties: [], + propertiesWithHistory: [], + inputs: [ob0] + }; + + quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors retrievedQuotes = check storeClient->/batch/read.post(batch_get_payload); + + io:println(retrievedQuotes.results); + // Update one sales quote by ID quotes:SimplePublicObjectInput modifyPayload = { properties: { @@ -55,8 +94,38 @@ public function main() returns error? { quotes:SimplePublicObject modifiedQuote = check storeClient->/[quoteId].patch(modifyPayload); io:println(modifiedQuote); + // Update a batch of quotes + quotes:SimplePublicObjectBatchInput ob3 = { + id: quoteId, + properties: { + "hs_title": "Test Quote 3", + "hs_expiration_date": "2025-04-30" + } + }; + + quotes:BatchInputSimplePublicObjectBatchInput batch_update_payload = { + inputs: [ob3] + }; + + // Call the Quotes API to create a new quote + quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors modifiedQuotes = check storeClient->/batch/update.post(batch_update_payload); + io:println(modifiedQuotes.results); + // Archive one sales quote by ID - http:Response response = check storeClient->/[quoteId].delete(); - io:println(response); + http:Response archive_response = check storeClient->/[quoteId].delete(); + io:println(archive_response); + + // Archive a batch of quotes + quotes:SimplePublicObjectId id0 = {id:"0"}; + + quotes:BatchInputSimplePublicObjectId batch_archive_payload = { + inputs:[ + id0 + ] + }; + + http:Response batch_archive_response = check storeClient->/batch/archive.post(batch_archive_payload); + + io:println(batch_archive_response); } From 8eb156b2381c5fabe2a24f960e248fcf90e8129e Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 11:11:52 +0530 Subject: [PATCH 10/30] README.md, Package.md, Module.md image paths changed. --- README.md | 25 +++++++++++++------------ ballerina/Module.md | 24 ++++++++++++------------ ballerina/Package.md | 6 +++--- build-config/resources/Ballerina.toml | 2 +- examples/sales_analytics/Ballerina.toml | 2 +- 5 files changed, 30 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 92ffd73..c4cf841 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,12 @@ [HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. -The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). + ## Setup guide -To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. +To use the HubSpot CRM Quotes connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. ### Step 1: Create/Login to a HubSpot Developer Account @@ -26,25 +27,25 @@ If you don't have a HubSpot Developer Account you can sign up to a free account Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. -**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** +>**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. 1. Go to Test Account section from the left sidebar. - + 2. Click Create developer test account. - Hubspot developer testacc2 + Hubspot developer testacc2 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + Hubspot developer testacc3 ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 2. Provide the necessary details, including the app name and description. @@ -52,7 +53,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + Hubspot app creation 2 testacc3 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. @@ -62,17 +63,17 @@ Within app developer accounts, you can create developer test accounts to test ap `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 6: Setup Authentication Flow @@ -90,7 +91,7 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 3. A code will be displayed in the browser. Copy the code. diff --git a/ballerina/Module.md b/ballerina/Module.md index 7c5b05c..9e77575 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -2,12 +2,12 @@ [HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. -The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). ## Setup guide -To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. +To use the HubSpot CRM Quotes connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. ### Step 1: Create/Login to a HubSpot Developer Account @@ -19,25 +19,25 @@ If you don't have a HubSpot Developer Account you can sign up to a free account Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. -**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** +>**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. 1. Go to Test Account section from the left sidebar. - + 2. Click Create developer test account. - Hubspot developer testacc2 + Hubspot developer testacc2 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + Hubspot developer testacc3 ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 2. Provide the necessary details, including the app name and description. @@ -45,7 +45,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + Hubspot app creation 2 testacc3 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. @@ -55,17 +55,17 @@ Within app developer accounts, you can create developer test accounts to test ap `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 6: Setup Authentication Flow @@ -83,7 +83,7 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 3. A code will be displayed in the browser. Copy the code. diff --git a/ballerina/Package.md b/ballerina/Package.md index 7c5b05c..107db9c 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -2,12 +2,12 @@ [HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. -The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes API v3 OpenAPI spec](https://github.com/HubSpot/HubSpot-public-api-spec-collection/blob/main/PublicApiSpecs/CRM/Quotes/Rollouts/424/v3/quotes.json). +The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). ## Setup guide -To use the HubSpot CRM Lists connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. +To use the HubSpot CRM Quotes connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. ### Step 1: Create/Login to a HubSpot Developer Account @@ -19,7 +19,7 @@ If you don't have a HubSpot Developer Account you can sign up to a free account Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data. -**_These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts._** +>**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. 1. Go to Test Account section from the left sidebar. diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index bbe78a8..f1b36a0 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -2,7 +2,7 @@ distribution = "2201.10.0" org = "ballerinax" name = "hubspot.crm.commerce.quotes" -version = "1.0.0" +version = "@toml.version@" license = ["Apache-2.0"] authors = ["Ballerina"] keywords = ["hubspot", "commerce", "quotes"] diff --git a/examples/sales_analytics/Ballerina.toml b/examples/sales_analytics/Ballerina.toml index 1ac52a0..9515f61 100644 --- a/examples/sales_analytics/Ballerina.toml +++ b/examples/sales_analytics/Ballerina.toml @@ -1,5 +1,5 @@ [package] -org = "harith" +org = "wso2" name = "sales_analytics" version = "0.1.0" distribution = "2201.10.3" From 39543baeb6435c9c2baae9e653b1642c3f1fb660 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 12:13:26 +0530 Subject: [PATCH 11/30] Example docs done --- .gitignore | 5 ++++ ballerina/Package.md | 18 +++++++------- examples/README.md | 15 ++++++++--- examples/sales_analytics/.gitignore | 11 -------- examples/sales_analytics/Dependencies.toml | 4 +-- examples/sales_analytics/README.md | 29 ++++++++++++++++++++++ 6 files changed, 56 insertions(+), 26 deletions(-) delete mode 100644 examples/sales_analytics/.gitignore create mode 100644 examples/sales_analytics/README.md diff --git a/.gitignore b/.gitignore index 2163ca8..00ed947 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,8 @@ build # Ignore Docker env file docker.env + +#Examples +examples/sales_analytics/target +examples/sales_analytics/generated +examples/sales_analytics/Config.toml \ No newline at end of file diff --git a/ballerina/Package.md b/ballerina/Package.md index 107db9c..9e77575 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -23,21 +23,21 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Go to Test Account section from the left sidebar. - + 2. Click Create developer test account. - Hubspot developer testacc2 + Hubspot developer testacc2 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + Hubspot developer testacc3 ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 2. Provide the necessary details, including the app name and description. @@ -45,7 +45,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + Hubspot app creation 2 testacc3 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. @@ -55,17 +55,17 @@ Within app developer accounts, you can create developer test accounts to test ap `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 ### Step 6: Setup Authentication Flow @@ -83,7 +83,7 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + Hubspot app creation 1 testacc3 3. A code will be displayed in the browser. Copy the code. diff --git a/examples/README.md b/examples/README.md index 7a6cbf9..64b4168 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,13 +2,20 @@ The `ballerinax/hubspot.crm.commerce.quotes` connector provides practical examples illustrating usage in various scenarios. -[//]: # (TODO: Add examples) -1. -2. +1. [Sales Analytics System](./sales_analytics/) - A store can insert their quotes to the system, and system record and analyses the details on the quotes. ## Prerequisites -[//]: # (TODO: Add prerequisites) +1. Generate HubSpot credentials to authenticate the connector as described in the [Setup guide](https://central.ballerina.io/ballerinax/twitter/latest#setup-guide). + +2. For each example, create a `Config.toml` file with the related configuration. Below is an example of how your `Config.toml` file should be structured: + + ```toml + [auth] + clientId = "" + clientSecret = "" + refreshToken = "" + credentialBearer = "POST_BODY_BEARER" ## Running an example diff --git a/examples/sales_analytics/.gitignore b/examples/sales_analytics/.gitignore deleted file mode 100644 index 2d54267..0000000 --- a/examples/sales_analytics/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# Ballerina generates this directory during the compilation of a package. -# It contains compiler-generated artifacts and the final executable if this is an application package. -target/ - -# Ballerina maintains the compiler-generated source code here. -# Remove this if you want to commit generated sources. -generated/ - -# Contains configuration values used during development time. -# See https://ballerina.io/learn/provide-values-to-configurable-variables/ for more details. -Config.toml diff --git a/examples/sales_analytics/Dependencies.toml b/examples/sales_analytics/Dependencies.toml index d5de7f6..0dc7c04 100644 --- a/examples/sales_analytics/Dependencies.toml +++ b/examples/sales_analytics/Dependencies.toml @@ -305,7 +305,7 @@ modules = [ ] [[package]] -org = "harith" +org = "wso2" name = "sales_analytics" version = "0.1.0" dependencies = [ @@ -316,6 +316,6 @@ dependencies = [ {org = "ballerinax", name = "hubspot.crm.commerce.quotes"} ] modules = [ - {org = "harith", packageName = "sales_analytics", moduleName = "sales_analytics"} + {org = "wso2", packageName = "sales_analytics", moduleName = "sales_analytics"} ] diff --git a/examples/sales_analytics/README.md b/examples/sales_analytics/README.md new file mode 100644 index 0000000..2fdee04 --- /dev/null +++ b/examples/sales_analytics/README.md @@ -0,0 +1,29 @@ +## Sales Analytics System + +A store can insert, update and delete their daily quotes in the system. +System records and analyses the data on the quotes, and user can get recorded data and analitics. + +## Prerequisites + +### 1. Setup Hubspot developer account + +Refer to the [Setup guide](../../ballerina/Package.md#setup-guide) to obtain necessary credentials (client Id, client secret, refresh tokens). + +### 2. Configuration + +Create a `Config.toml` file in the example's root directory and, provide your Hubspot account related configurations as follows: + +```toml +clientId = "" +clientSecret = "" +refreshToken = "" +credentialBearer = "POST_BODY_BEARER" +``` + +## Run the example + +Execute the following command to run the example: + +```bash +bal run +``` \ No newline at end of file From 905765e16cd0f3fbfd1f8ab331fad97426fa4904 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 14:13:07 +0530 Subject: [PATCH 12/30] All reviews corrected. --- ballerina/client.bal | 5 +---- ballerina/tests/mock_service.bal | 16 ++++++++++++++++ ballerina/tests/mock_test.bal | 16 ++++++++++++++++ ballerina/tests/test.bal | 16 ++++++++++++++++ ballerina/types.bal | 9 +++------ ballerina/utils.bal | 5 +---- docs/license.txt | 2 +- examples/sales_analytics/main.bal | 21 +++++++++++++++++---- 8 files changed, 71 insertions(+), 19 deletions(-) diff --git a/ballerina/client.bal b/ballerina/client.bal index 9c8442f..d63aa47 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -1,7 +1,4 @@ -// AUTO-GENERATED FILE. DO NOT MODIFY. -// This file is auto-generated by the Ballerina OpenAPI tool. - -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal index d3b7c71..584fbf3 100644 --- a/ballerina/tests/mock_service.bal +++ b/ballerina/tests/mock_service.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/http; import ballerina/log; diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index cf3890f..3151c55 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/http; import ballerina/oauth2; import ballerina/test; diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 0f0368e..8560505 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/http; import ballerina/oauth2; import ballerina/test; diff --git a/ballerina/types.bal b/ballerina/types.bal index a2269ca..51c75b8 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -1,15 +1,12 @@ -// AUTO-GENERATED FILE. DO NOT MODIFY. -// This file is auto-generated by the Ballerina OpenAPI tool. +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except // in compliance with the License. // You may obtain a copy of the License at -// + // http://www.apache.org/licenses/LICENSE-2.0 -// + // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY diff --git a/ballerina/utils.bal b/ballerina/utils.bal index 13d33ab..b2aff1f 100644 --- a/ballerina/utils.bal +++ b/ballerina/utils.bal @@ -1,7 +1,4 @@ -// AUTO-GENERATED FILE. DO NOT MODIFY. -// This file is auto-generated by the Ballerina OpenAPI tool. - -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/docs/license.txt b/docs/license.txt index 921a7a1..adfc413 100644 --- a/docs/license.txt +++ b/docs/license.txt @@ -1,7 +1,7 @@ // AUTO-GENERATED FILE. DO NOT MODIFY. // This file is auto-generated by the Ballerina OpenAPI tool. -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index cd038e8..1d3f02d 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/http; import ballerina/io; import ballerina/oauth2; @@ -16,9 +32,7 @@ public function main() returns error? { credentialBearer: oauth2:POST_BODY_BEARER }; - final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; - - final quotes:Client storeClient = check new quotes:Client(config = {auth}, serviceUrl = serviceUrl); + final quotes:Client storeClient = check new (config = {auth}); string quoteId = "0"; @@ -127,5 +141,4 @@ public function main() returns error? { http:Response batch_archive_response = check storeClient->/batch/archive.post(batch_archive_payload); io:println(batch_archive_response); - } From 1205d1f93385f43419a2e028e2f17ed7a041e153 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 15:06:52 +0530 Subject: [PATCH 13/30] Docs image url editing --- .gitignore | 2 +- README.md | 28 +++++++++++++--------------- ballerina/tests/mock_test.bal | 18 ++++++++---------- ballerina/tests/test.bal | 4 +--- 4 files changed, 23 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index 00ed947..81ec529 100644 --- a/.gitignore +++ b/.gitignore @@ -60,4 +60,4 @@ docker.env #Examples examples/sales_analytics/target examples/sales_analytics/generated -examples/sales_analytics/Config.toml \ No newline at end of file +examples/sales_analytics/Config.toml diff --git a/README.md b/README.md index c4cf841..c8da116 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Go to Test Account section from the left sidebar. - + ![Hubspot developer testacc2](https://raw.githubusercontent.com/harithmaduranga/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/resources/create_developer_account_1.png) 2. Click Create developer test account. @@ -58,9 +58,7 @@ Within app developer accounts, you can create developer test accounts to test ap 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. `crm.lists.read` - `crm.lists.write` - `cms.membership.access_groups.write` Hubspot app creation 1 testacc3 @@ -85,8 +83,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= ``` - Replace the ``, `` and `` with your specific value. - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. @@ -141,8 +137,8 @@ To use the `HubSpot CRM Quotes` connector in your Ballerina application, update Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. ```ballerina -import ballerinax/hubspot.crm.commerce.quotes as crmquotes; import ballerina/oauth2; +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; ``` ### Step 2: Instantiate a new connector @@ -169,9 +165,7 @@ import ballerina/oauth2; credentialBearer: oauth2:POST_BODY_BEARER }; - final string serviceUrl = "https://api.hubapi.com"; - - final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + final crmlists:Client crmListClient = check new (config = {auth}); ``` @@ -182,12 +176,16 @@ Now, utilize the available connector operations. A sample usecase is shown below #### Create a CRM List ```ballerina + +OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + public function main() returns error? { - http:Client hubspotClient = check new ("https://api.hubapi.com", { - headers: { - "Authorization": "Bearer " - } - }); + final Client hubspotClient = check new (config = {auth}); // Define the payload for creating a quote json payload = { @@ -201,7 +199,7 @@ public function main() returns error? { }; // Send the request to create a quote - http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + http:Response response = check hubspotClient->/crm/v3/objects/quotes.post(payload); // Print the response io:println("Response: ", response.getJsonPayload()); diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index 3151c55..c88185a 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -18,14 +18,12 @@ import ballerina/http; import ballerina/oauth2; import ballerina/test; -final string mockServiceUrl = "http://localhost:9090/crm/v3/objects/quotes"; - -final Client mockClient = check new Client(config = {auth: { +final Client quotesClient = check new Client(config = {auth: { clientId, clientSecret, refreshToken, credentialBearer: oauth2:POST_BODY_BEARER -}}, serviceUrl = mockServiceUrl); +}}); // Test function for creating a quote @test:Config{} @@ -38,7 +36,7 @@ function testCreateAQuote() returns error? { } }; - SimplePublicObject response = check mockClient->/.post(payload); + SimplePublicObject response = check quotesClient->/.post(payload); test:assertEquals(response.properties, payload.properties, "New quote creation failed."); } @@ -46,7 +44,7 @@ function testCreateAQuote() returns error? { // Test function to get a quote bu ID @test:Config{} function testGetAQuoteById() returns error? { - SimplePublicObjectWithAssociations response = check mockClient->/["0"].get(); + SimplePublicObjectWithAssociations response = check quotesClient->/["0"].get(); test:assertEquals(response, { id: "0", @@ -63,7 +61,7 @@ function testGetAQuoteById() returns error? { @test:Config{} function testArchiveAQuoteById() returns error?{ - http:Response response = check mockClient->/["0"].delete(); + http:Response response = check quotesClient->/["0"].delete(); test:assertTrue(response.statusCode == 204); } @@ -79,7 +77,7 @@ function testUpdateAQuoteById() returns error? { }; // Call the Quotes API to update the quote - SimplePublicObject response = check mockClient->/["1"].patch(payload); + SimplePublicObject response = check quotesClient->/["1"].patch(payload); test:assertEquals(response, { id: "1", @@ -114,7 +112,7 @@ function testUpsertAQuote() returns error? { ] }; - BatchResponseSimplePublicUpsertObject response = check mockClient->/batch/upsert.post(payload = payload); + BatchResponseSimplePublicUpsertObject response = check quotesClient->/batch/upsert.post(payload = payload); test:assertEquals(response, { completedAt: "2025-01-10", @@ -168,7 +166,7 @@ function testSearchAQuote() returns error? { properties: ["hs_title", "hs_expiration_date"] }; - CollectionResponseWithTotalSimplePublicObjectForwardPaging response = check mockClient->/search.post(payload = payload); + CollectionResponseWithTotalSimplePublicObjectForwardPaging response = check quotesClient->/search.post(payload = payload); SimplePublicObject ob1 = { id: "1", diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 8560505..3427547 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -29,9 +29,7 @@ OAuth2RefreshTokenGrantConfig auth = { credentialBearer: oauth2:POST_BODY_BEARER }; -final string serviceUrl = "https://api.hubapi.com/crm/v3/objects/quotes"; - -final Client hubspotClient = check new Client(config = {auth}, serviceUrl = serviceUrl); +final Client hubspotClient = check new (config = {auth}); string testQuoteId = ""; From e508596121e7a44f0efd365193926a4f4e280a06 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 15:32:53 +0530 Subject: [PATCH 14/30] Docs editing --- README.md | 8 ++------ docs/{ => setup}/resources/authentication_1.png | Bin docs/{ => setup}/resources/authentication_2.png | Bin docs/{ => setup}/resources/authentication_3.png | Bin .../{ => setup}/resources/clientId_clientSecret.png | Bin docs/{ => setup}/resources/create_app.png | Bin .../resources/create_developer_account_1.png | Bin .../resources/create_developer_account_2.png | Bin .../resources/create_developer_account_3.png | Bin docs/{ => setup}/resources/setup_auth_flow.png | Bin 10 files changed, 2 insertions(+), 6 deletions(-) rename docs/{ => setup}/resources/authentication_1.png (100%) rename docs/{ => setup}/resources/authentication_2.png (100%) rename docs/{ => setup}/resources/authentication_3.png (100%) rename docs/{ => setup}/resources/clientId_clientSecret.png (100%) rename docs/{ => setup}/resources/create_app.png (100%) rename docs/{ => setup}/resources/create_developer_account_1.png (100%) rename docs/{ => setup}/resources/create_developer_account_2.png (100%) rename docs/{ => setup}/resources/create_developer_account_3.png (100%) rename docs/{ => setup}/resources/setup_auth_flow.png (100%) diff --git a/README.md b/README.md index c8da116..5e8db66 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,9 @@ Within app developer accounts, you can create developer test accounts to test ap >**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. -1. Go to Test Account section from the left sidebar. +1. Go to Test Account section from the left sidebar. - ![Hubspot developer testacc2](https://raw.githubusercontent.com/harithmaduranga/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/resources/create_developer_account_1.png) + ![Hubspot developer testacc2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/resources/create_developer_account_1.png) 2. Click Create developer test account. @@ -91,10 +91,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 3. A code will be displayed in the browser. Copy the code. - ``` - Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx - ``` - 4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. - Linux/macOS diff --git a/docs/resources/authentication_1.png b/docs/setup/resources/authentication_1.png similarity index 100% rename from docs/resources/authentication_1.png rename to docs/setup/resources/authentication_1.png diff --git a/docs/resources/authentication_2.png b/docs/setup/resources/authentication_2.png similarity index 100% rename from docs/resources/authentication_2.png rename to docs/setup/resources/authentication_2.png diff --git a/docs/resources/authentication_3.png b/docs/setup/resources/authentication_3.png similarity index 100% rename from docs/resources/authentication_3.png rename to docs/setup/resources/authentication_3.png diff --git a/docs/resources/clientId_clientSecret.png b/docs/setup/resources/clientId_clientSecret.png similarity index 100% rename from docs/resources/clientId_clientSecret.png rename to docs/setup/resources/clientId_clientSecret.png diff --git a/docs/resources/create_app.png b/docs/setup/resources/create_app.png similarity index 100% rename from docs/resources/create_app.png rename to docs/setup/resources/create_app.png diff --git a/docs/resources/create_developer_account_1.png b/docs/setup/resources/create_developer_account_1.png similarity index 100% rename from docs/resources/create_developer_account_1.png rename to docs/setup/resources/create_developer_account_1.png diff --git a/docs/resources/create_developer_account_2.png b/docs/setup/resources/create_developer_account_2.png similarity index 100% rename from docs/resources/create_developer_account_2.png rename to docs/setup/resources/create_developer_account_2.png diff --git a/docs/resources/create_developer_account_3.png b/docs/setup/resources/create_developer_account_3.png similarity index 100% rename from docs/resources/create_developer_account_3.png rename to docs/setup/resources/create_developer_account_3.png diff --git a/docs/resources/setup_auth_flow.png b/docs/setup/resources/setup_auth_flow.png similarity index 100% rename from docs/resources/setup_auth_flow.png rename to docs/setup/resources/setup_auth_flow.png From 0ddce46e5b61232225f775f5bed6650b1749b7af Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 10 Jan 2025 16:30:30 +0530 Subject: [PATCH 15/30] Docs issues resolved. --- README.md | 18 +++++++-------- ballerina/Module.md | 53 ++++++++++++++++++-------------------------- ballerina/Package.md | 53 ++++++++++++++++++-------------------------- 3 files changed, 53 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 5e8db66..b145705 100644 --- a/README.md +++ b/README.md @@ -31,21 +31,21 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Go to Test Account section from the left sidebar. - ![Hubspot developer testacc2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/resources/create_developer_account_1.png) + ![Hubspot developer testacc1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_1.png) 2. Click Create developer test account. - Hubspot developer testacc2 + ![Hubspot developer testacc2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_2.png) 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + ![Hubspot developer testacc3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_3.png) ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + ![Create account](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_app.png) 2. Provide the necessary details, including the app name and description. @@ -53,7 +53,7 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + ![Authentication 1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_1.png) 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. @@ -61,17 +61,17 @@ Within app developer accounts, you can create developer test accounts to test ap `crm.lists.write` `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + ![Authentication 2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_2.png) 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + ![Authentication 3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_3.png) ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + ![Client Id_& Client Secret](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/clientId_clientSecret.png) ### Step 6: Setup Authentication Flow @@ -87,7 +87,7 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + ![Setup auth flow](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/setup_auth_flow.png) 3. A code will be displayed in the browser. Copy the code. diff --git a/ballerina/Module.md b/ballerina/Module.md index 9e77575..cace1f6 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -4,7 +4,6 @@ The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). - ## Setup guide To use the HubSpot CRM Quotes connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. @@ -21,23 +20,23 @@ Within app developer accounts, you can create developer test accounts to test ap >**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. -1. Go to Test Account section from the left sidebar. +1. Go to Test Account section from the left sidebar. - + ![Hubspot developer testacc1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_1.png) 2. Click Create developer test account. - Hubspot developer testacc2 + ![Hubspot developer testacc2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_2.png) 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + ![Hubspot developer testacc3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_3.png) ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + ![Create account](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_app.png) 2. Provide the necessary details, including the app name and description. @@ -45,27 +44,25 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + ![Authentication 1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_1.png) 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. `crm.lists.read` - `crm.lists.write` - `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + ![Authentication 2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_2.png) 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + ![Authentication 3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_3.png) ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + ![Client Id_& Client Secret](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/clientId_clientSecret.png) ### Step 6: Setup Authentication Flow @@ -77,20 +74,14 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= ``` - Replace the ``, `` and `` with your specific value. - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + ![Setup auth flow](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/setup_auth_flow.png) 3. A code will be displayed in the browser. Copy the code. - ``` - Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx - ``` - 4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. - Linux/macOS @@ -124,8 +115,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 5. Store the access token securely for use in your application. - - ## Quickstart To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: @@ -135,8 +124,8 @@ To use the `HubSpot CRM Quotes` connector in your Ballerina application, update Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. ```ballerina -import ballerinax/hubspot.crm.commerce.quotes as crmquotes; import ballerina/oauth2; +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; ``` ### Step 2: Instantiate a new connector @@ -163,9 +152,7 @@ import ballerina/oauth2; credentialBearer: oauth2:POST_BODY_BEARER }; - final string serviceUrl = "https://api.hubapi.com"; - - final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + final crmlists:Client crmListClient = check new (config = {auth}); ``` @@ -176,12 +163,16 @@ Now, utilize the available connector operations. A sample usecase is shown below #### Create a CRM List ```ballerina + +OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + public function main() returns error? { - http:Client hubspotClient = check new ("https://api.hubapi.com", { - headers: { - "Authorization": "Bearer " - } - }); + final Client hubspotClient = check new (config = {auth}); // Define the payload for creating a quote json payload = { @@ -195,7 +186,7 @@ public function main() returns error? { }; // Send the request to create a quote - http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + http:Response response = check hubspotClient->/crm/v3/objects/quotes.post(payload); // Print the response io:println("Response: ", response.getJsonPayload()); diff --git a/ballerina/Package.md b/ballerina/Package.md index 9e77575..cace1f6 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -4,7 +4,6 @@ The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). - ## Setup guide To use the HubSpot CRM Quotes connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore you need to register for a developer account at HubSpot if you don't have one already. @@ -21,23 +20,23 @@ Within app developer accounts, you can create developer test accounts to test ap >**Note:** These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts. -1. Go to Test Account section from the left sidebar. +1. Go to Test Account section from the left sidebar. - + ![Hubspot developer testacc1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_1.png) 2. Click Create developer test account. - Hubspot developer testacc2 + ![Hubspot developer testacc2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_2.png) 3. In the dialogue box, give a name to your test account and click create. - Hubspot developer testacc3 + ![Hubspot developer testacc3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_developer_account_3.png) ### Step 3: Create a HubSpot App under your account. 1. In your developer account, navigate to the "Apps" section. Click on "Create App" - Hubspot app creation 1 testacc3 + ![Create account](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/create_app.png) 2. Provide the necessary details, including the app name and description. @@ -45,27 +44,25 @@ Within app developer accounts, you can create developer test accounts to test ap 1. Move to the Auth Tab. - Hubspot app creation 2 testacc3 + ![Authentication 1](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_1.png) 2. In the Scopes section, add the following scopes for your app using the "Add new scope" button. `crm.lists.read` - `crm.lists.write` - `cms.membership.access_groups.write` - Hubspot app creation 1 testacc3 + ![Authentication 2](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_2.png) 4. Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App. - Hubspot app creation 1 testacc3 + ![Authentication 3](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/authentication_3.png) ### Step 5: Get your Client ID and Client Secret - Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret. - Hubspot app creation 1 testacc3 + ![Client Id_& Client Secret](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/clientId_clientSecret.png) ### Step 6: Setup Authentication Flow @@ -77,20 +74,14 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= ``` - Replace the ``, `` and `` with your specific value. - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. - Hubspot app creation 1 testacc3 + ![Setup auth flow](https://raw.githubusercontent.com/ballerina-platform/module-ballerinax-hubspot.crm.commerce.quotes/blob/main/docs/setup/resources/setup_auth_flow.png) 3. A code will be displayed in the browser. Copy the code. - ``` - Received code: na1-129d-860c-xxxx-xxxx-xxxxxxxxxxxx - ``` - 4. Run the following curl command. Replace the ``, ` and `` with your specific value. Use the code you received in the above step 3 as the ``. - Linux/macOS @@ -124,8 +115,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 5. Store the access token securely for use in your application. - - ## Quickstart To use the `HubSpot CRM Quotes` connector in your Ballerina application, update the `.bal` file as follows: @@ -135,8 +124,8 @@ To use the `HubSpot CRM Quotes` connector in your Ballerina application, update Import the `hubspot.crm.commerce.quotes` module and `oauth2` module. ```ballerina -import ballerinax/hubspot.crm.commerce.quotes as crmquotes; import ballerina/oauth2; +import ballerinax/hubspot.crm.commerce.quotes as crmquotes; ``` ### Step 2: Instantiate a new connector @@ -163,9 +152,7 @@ import ballerina/oauth2; credentialBearer: oauth2:POST_BODY_BEARER }; - final string serviceUrl = "https://api.hubapi.com"; - - final crmlists:Client crmListClient = check new Client(config = {auth}, serviceUrl = serviceUrl); + final crmlists:Client crmListClient = check new (config = {auth}); ``` @@ -176,12 +163,16 @@ Now, utilize the available connector operations. A sample usecase is shown below #### Create a CRM List ```ballerina + +OAuth2RefreshTokenGrantConfig auth = { + clientId, + clientSecret, + refreshToken, + credentialBearer: oauth2:POST_BODY_BEARER +}; + public function main() returns error? { - http:Client hubspotClient = check new ("https://api.hubapi.com", { - headers: { - "Authorization": "Bearer " - } - }); + final Client hubspotClient = check new (config = {auth}); // Define the payload for creating a quote json payload = { @@ -195,7 +186,7 @@ public function main() returns error? { }; // Send the request to create a quote - http:Response response = check hubspotClient->post("/crm/v3/objects/quotes", payload); + http:Response response = check hubspotClient->/crm/v3/objects/quotes.post(payload); // Print the response io:println("Response: ", response.getJsonPayload()); From af806e0e5d920d86ebdbac2a0484f4db7bb88cbf Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 16 Jan 2025 10:11:05 +0530 Subject: [PATCH 16/30] Docs modified --- README.md | 4 ---- ballerina/Module.md | 4 ---- ballerina/Package.md | 18 ++++++------------ ballerina/tests/mock_service.bal | 4 +--- ballerina/tests/mock_test.bal | 2 +- examples/sales_analytics/main.bal | 1 + 6 files changed, 9 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b145705..961bda6 100644 --- a/README.md +++ b/README.md @@ -79,10 +79,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 1. Create an authorization URL using the following format: - ``` - https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= - ``` - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. diff --git a/ballerina/Module.md b/ballerina/Module.md index cace1f6..7221e5d 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -70,10 +70,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 1. Create an authorization URL using the following format: - ``` - https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= - ``` - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. diff --git a/ballerina/Package.md b/ballerina/Package.md index cace1f6..1f0a36e 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -70,10 +70,6 @@ Before proceeding with the Quickstart, ensure you have obtained the Access Token 1. Create an authorization URL using the following format: - ``` - https://app.hubspot.com/oauth/authorize?client_id=&scope=&redirect_uri= - ``` - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** 2. Paste it in the browser and select your developer test account to intall the app when prompted. @@ -175,14 +171,12 @@ public function main() returns error? { final Client hubspotClient = check new (config = {auth}); // Define the payload for creating a quote - json payload = { - "name": "Test Quote", - "hs_expiration_date": "2025-12-31", - "hs_status": "DRAFT", - "hs_owner_id": "", - "hs_currency": "USD", - "hs_total_amount": 1500, - "hs_associated_deal_id": "" + SimplePublicObjectInputForCreate payload = { + associations:[], + properties:{ + "hs_title": "Test Quote", + "hs_expiration_date": "2025-01-31" + } }; // Send the request to create a quote diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal index 584fbf3..9f74344 100644 --- a/ballerina/tests/mock_service.bal +++ b/ballerina/tests/mock_service.bal @@ -17,9 +17,7 @@ import ballerina/http; import ballerina/log; -listener http:Listener httpListener = new(9090); - -http:Service mockService = service object { +service on new http:Listener(9090) { // Archive resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:Response|error { diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index c88185a..3a14984 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -18,7 +18,7 @@ import ballerina/http; import ballerina/oauth2; import ballerina/test; -final Client quotesClient = check new Client(config = {auth: { +final Client quotesClient = check new(config = {auth: { clientId, clientSecret, refreshToken, diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index 1d3f02d..4d346c9 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -142,3 +142,4 @@ public function main() returns error? { io:println(batch_archive_response); } + From cf6df4492feb876f36a5c53c43a1706413236273 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 16 Jan 2025 10:13:32 +0530 Subject: [PATCH 17/30] Unnecessary file removed. --- ballerina/quotes.json | 1688 ----------------------------------------- 1 file changed, 1688 deletions(-) delete mode 100644 ballerina/quotes.json diff --git a/ballerina/quotes.json b/ballerina/quotes.json deleted file mode 100644 index 24db5bf..0000000 --- a/ballerina/quotes.json +++ /dev/null @@ -1,1688 +0,0 @@ -{ - "openapi" : "3.0.1", - "info" : { - "title" : "Quotes", - "description" : "", - "version" : "v3", - "x-hubspot-product-tier-requirements" : { - "marketing" : "FREE", - "sales" : "FREE", - "service" : "FREE", - "cms" : "FREE" - }, - "x-hubspot-documentation-banner" : "NONE", - "x-hubspot-api-use-case" : "Create a contract proposal for a customer who is interested in signing up for one of your annual SEO auditing service packages.", - "x-hubspot-related-documentation" : [ { - "name" : "Quotes guide", - "url" : "https://developers.hubspot.com/beta-docs/guides/api/crm/commerce/quotes" - } ], - "x-hubspot-introduction" : "Use the quotes API to create and manage sales quotes for sharing pricing information with potential buyers." - }, - "servers" : [ { - "url" : "https://api.hubapi.com" - } ], - "tags" : [ { - "name" : "Batch" - }, { - "name" : "Basic" - }, { - "name" : "Search" - } ], - "paths" : { - "/crm/v3/objects/quotes/batch/read" : { - "post" : { - "tags" : [ "Batch" ], - "summary" : "Read a batch of quotes by internal ID, or unique property values", - "operationId" : "post-/crm/v3/objects/quotes/batch/read_read", - "parameters" : [ { - "name" : "archived", - "in" : "query", - "description" : "Whether to return only results that have been archived.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "boolean", - "default" : false - } - } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchReadInputSimplePublicObjectId" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" - } - } - } - }, - "207" : { - "description" : "multiple statuses", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.read" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.read" ] - } ] - } - }, - "/crm/v3/objects/quotes/{quoteId}" : { - "get" : { - "tags" : [ "Basic" ], - "summary" : "Read", - "description" : "Read an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param.", - "operationId" : "get-/crm/v3/objects/quotes/{quoteId}_getById", - "parameters" : [ { - "name" : "quoteId", - "in" : "path", - "required" : true, - "style" : "simple", - "explode" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "properties", - "in" : "query", - "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "propertiesWithHistory", - "in" : "query", - "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "associations", - "in" : "query", - "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "archived", - "in" : "query", - "description" : "Whether to return only results that have been archived.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "boolean", - "default" : false - } - }, { - "name" : "idProperty", - "in" : "query", - "description" : "The name of a property whose values are unique for this object type", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.read" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.read" ] - } ] - }, - "delete" : { - "tags" : [ "Basic" ], - "summary" : "Archive", - "description" : "Move an Object identified by `{quoteId}` to the recycling bin.", - "operationId" : "delete-/crm/v3/objects/quotes/{quoteId}_archive", - "parameters" : [ { - "name" : "quoteId", - "in" : "path", - "required" : true, - "style" : "simple", - "explode" : false, - "schema" : { - "type" : "string" - } - } ], - "responses" : { - "204" : { - "description" : "No content", - "content" : { } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - }, - "patch" : { - "tags" : [ "Basic" ], - "summary" : "Update", - "description" : "Perform a partial update of an Object identified by `{quoteId}`. `{quoteId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Provided property values will be overwritten. Read-only and non-existent properties will be ignored. Properties values can be cleared by passing an empty string.", - "operationId" : "patch-/crm/v3/objects/quotes/{quoteId}_update", - "parameters" : [ { - "name" : "quoteId", - "in" : "path", - "required" : true, - "style" : "simple", - "explode" : false, - "schema" : { - "type" : "string" - } - }, { - "name" : "idProperty", - "in" : "query", - "description" : "The name of a property whose values are unique for this object type", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "string" - } - } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SimplePublicObjectInput" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SimplePublicObject" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes/batch/archive" : { - "post" : { - "tags" : [ "Batch" ], - "summary" : "Archive a batch of quotes by ID", - "operationId" : "post-/crm/v3/objects/quotes/batch/archive_archive", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchInputSimplePublicObjectId" - } - } - }, - "required" : true - }, - "responses" : { - "204" : { - "description" : "No content", - "content" : { } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes/batch/create" : { - "post" : { - "tags" : [ "Batch" ], - "summary" : "Create a batch of quotes", - "operationId" : "post-/crm/v3/objects/quotes/batch/create_create", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchInputSimplePublicObjectInputForCreate" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" - } - } - } - }, - "207" : { - "description" : "multiple statuses", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes/batch/update" : { - "post" : { - "tags" : [ "Batch" ], - "summary" : "Update a batch of quotes by internal ID, or unique property values", - "operationId" : "post-/crm/v3/objects/quotes/batch/update_update", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInput" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObject" - } - } - } - }, - "207" : { - "description" : "multiple statuses", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicObjectWithErrors" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes" : { - "get" : { - "tags" : [ "Basic" ], - "summary" : "List", - "description" : "Read a page of quotes. Control what is returned via the `properties` query param.", - "operationId" : "get-/crm/v3/objects/quotes_getPage", - "parameters" : [ { - "name" : "limit", - "in" : "query", - "description" : "The maximum number of results to display per page.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "integer", - "format" : "int32", - "default" : 10 - } - }, { - "name" : "after", - "in" : "query", - "description" : "The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "string" - } - }, { - "name" : "properties", - "in" : "query", - "description" : "A comma separated list of the properties to be returned in the response. If any of the specified properties are not present on the requested object(s), they will be ignored.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "propertiesWithHistory", - "in" : "query", - "description" : "A comma separated list of the properties to be returned along with their history of previous values. If any of the specified properties are not present on the requested object(s), they will be ignored. Usage of this parameter will reduce the maximum number of objects that can be read by a single request.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "associations", - "in" : "query", - "description" : "A comma separated list of object types to retrieve associated IDs for. If any of the specified associations do not exist, they will be ignored.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, { - "name" : "archived", - "in" : "query", - "description" : "Whether to return only results that have been archived.", - "required" : false, - "style" : "form", - "explode" : true, - "schema" : { - "type" : "boolean", - "default" : false - } - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.read" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.read" ] - } ] - }, - "post" : { - "tags" : [ "Basic" ], - "summary" : "Create", - "description" : "Create a quote with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard quotes is provided.", - "operationId" : "post-/crm/v3/objects/quotes_create", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" - } - } - }, - "required" : true - }, - "responses" : { - "201" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/SimplePublicObject" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes/batch/upsert" : { - "post" : { - "tags" : [ "Batch" ], - "summary" : "Create or update a batch of quotes by unique property values", - "description" : "Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object.", - "operationId" : "post-/crm/v3/objects/quotes/batch/upsert_upsert", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchInputSimplePublicObjectBatchInputUpsert" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObject" - } - } - } - }, - "207" : { - "description" : "multiple statuses", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/BatchResponseSimplePublicUpsertObjectWithErrors" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.write" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.write" ] - } ] - } - }, - "/crm/v3/objects/quotes/search" : { - "post" : { - "tags" : [ "Search" ], - "operationId" : "post-/crm/v3/objects/quotes/search_doSearch", - "parameters" : [ ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/PublicObjectSearchRequest" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "description" : "successful operation", - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/CollectionResponseWithTotalSimplePublicObjectForwardPaging" - } - } - } - }, - "default" : { - "$ref" : "#/components/responses/Error" - } - }, - "security" : [ { - "oauth2_legacy" : [ "e-commerce" ] - }, { - "oauth2" : [ "crm.objects.quotes.read" ] - }, { - "private_apps_legacy" : [ "e-commerce" ] - }, { - "private_apps" : [ "crm.objects.quotes.read" ] - } ], - "x-hubspot-rate-limit-exemptions" : [ "ten-secondly" ] - } - } - }, - "components" : { - "schemas" : { - "StandardError" : { - "required" : [ "category", "context", "errors", "links", "message", "status" ], - "type" : "object", - "properties" : { - "subCategory" : { - "type" : "object", - "properties" : { } - }, - "context" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "id" : { - "type" : "string" - }, - "category" : { - "type" : "string" - }, - "message" : { - "type" : "string" - }, - "errors" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ErrorDetail" - } - }, - "status" : { - "type" : "string" - } - } - }, - "CollectionResponseAssociatedId" : { - "required" : [ "results" ], - "type" : "object", - "properties" : { - "paging" : { - "$ref" : "#/components/schemas/Paging" - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/AssociatedId" - } - } - } - }, - "PublicAssociationsForObject" : { - "required" : [ "to", "types" ], - "type" : "object", - "properties" : { - "types" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/AssociationSpec" - } - }, - "to" : { - "$ref" : "#/components/schemas/PublicObjectId" - } - } - }, - "BatchResponseSimplePublicObject" : { - "required" : [ "completedAt", "results", "startedAt", "status" ], - "type" : "object", - "properties" : { - "completedAt" : { - "type" : "string", - "format" : "date-time" - }, - "requestedAt" : { - "type" : "string", - "format" : "date-time" - }, - "startedAt" : { - "type" : "string", - "format" : "date-time" - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObject" - } - }, - "status" : { - "type" : "string", - "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] - } - } - }, - "FilterGroup" : { - "required" : [ "filters" ], - "type" : "object", - "properties" : { - "filters" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/Filter" - } - } - } - }, - "ErrorDetail" : { - "required" : [ "message" ], - "type" : "object", - "properties" : { - "subCategory" : { - "type" : "string", - "description" : "A specific category that contains more specific detail about the error" - }, - "code" : { - "type" : "string", - "description" : "The status code associated with the error detail" - }, - "in" : { - "type" : "string", - "description" : "The name of the field or parameter in which the error was found." - }, - "context" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "description" : "Context about the error condition", - "example" : { - "missingScopes" : [ "scope1", "scope2" ] - } - }, - "message" : { - "type" : "string", - "description" : "A human readable message describing the error along with remediation steps where appropriate" - } - } - }, - "ForwardPaging" : { - "type" : "object", - "properties" : { - "next" : { - "$ref" : "#/components/schemas/NextPage" - } - } - }, - "SimplePublicObjectId" : { - "required" : [ "id" ], - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - } - } - }, - "BatchResponseSimplePublicUpsertObjectWithErrors" : { - "required" : [ "completedAt", "results", "startedAt", "status" ], - "type" : "object", - "properties" : { - "completedAt" : { - "type" : "string", - "format" : "date-time" - }, - "numErrors" : { - "type" : "integer", - "format" : "int32" - }, - "requestedAt" : { - "type" : "string", - "format" : "date-time" - }, - "startedAt" : { - "type" : "string", - "format" : "date-time" - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicUpsertObject" - } - }, - "errors" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/StandardError" - } - }, - "status" : { - "type" : "string", - "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] - } - } - }, - "BatchReadInputSimplePublicObjectId" : { - "required" : [ "inputs", "properties", "propertiesWithHistory" ], - "type" : "object", - "properties" : { - "propertiesWithHistory" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "idProperty" : { - "type" : "string" - }, - "inputs" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectId" - } - }, - "properties" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - } - }, - "BatchResponseSimplePublicUpsertObject" : { - "required" : [ "completedAt", "results", "startedAt", "status" ], - "type" : "object", - "properties" : { - "completedAt" : { - "type" : "string", - "format" : "date-time" - }, - "requestedAt" : { - "type" : "string", - "format" : "date-time" - }, - "startedAt" : { - "type" : "string", - "format" : "date-time" - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicUpsertObject" - } - }, - "status" : { - "type" : "string", - "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] - } - } - }, - "BatchInputSimplePublicObjectId" : { - "required" : [ "inputs" ], - "type" : "object", - "properties" : { - "inputs" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectId" - } - } - } - }, - "ValueWithTimestamp" : { - "required" : [ "sourceType", "timestamp", "value" ], - "type" : "object", - "properties" : { - "sourceId" : { - "type" : "string" - }, - "sourceType" : { - "type" : "string" - }, - "sourceLabel" : { - "type" : "string" - }, - "updatedByUserId" : { - "type" : "integer", - "format" : "int32" - }, - "value" : { - "type" : "string" - }, - "timestamp" : { - "type" : "string", - "format" : "date-time" - } - } - }, - "BatchInputSimplePublicObjectBatchInputUpsert" : { - "required" : [ "inputs" ], - "type" : "object", - "properties" : { - "inputs" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectBatchInputUpsert" - } - } - } - }, - "CollectionResponseWithTotalSimplePublicObjectForwardPaging" : { - "required" : [ "results", "total" ], - "type" : "object", - "properties" : { - "total" : { - "type" : "integer", - "format" : "int32" - }, - "paging" : { - "$ref" : "#/components/schemas/ForwardPaging" - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObject" - } - } - } - }, - "SimplePublicObject" : { - "required" : [ "createdAt", "id", "properties", "updatedAt" ], - "type" : "object", - "properties" : { - "createdAt" : { - "type" : "string", - "format" : "date-time" - }, - "archived" : { - "type" : "boolean", - "example" : false - }, - "archivedAt" : { - "type" : "string", - "format" : "date-time" - }, - "propertiesWithHistory" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ValueWithTimestamp" - } - } - }, - "id" : { - "type" : "string", - "example" : "512" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string", - "nullable" : true - }, - "example" : { - "property_date" : "1572480000000", - "property_radio" : "option_1", - "property_number" : "17", - "property_string" : "value", - "property_checkbox" : "false", - "property_dropdown" : "choice_b", - "property_multiple_checkboxes" : "chocolate;strawberry" - } - }, - "updatedAt" : { - "type" : "string", - "format" : "date-time" - } - }, - "example" : { - "id" : "512", - "properties" : { - "hs_createdate" : "2019-10-30T03:30:17.883Z", - "hs_expiration_date" : "2020-09-06T02:43:14.491Z", - "hs_quote_amount" : "3000.00", - "hs_quote_number" : "20200916-092813983", - "hs_status" : "PENDING_APPROVAL", - "hs_terms" : "discount provided, two year term with customer", - "hs_title" : "Services Proposal", - "hubspot_owner_id" : "910901" - }, - "createdAt" : "2019-10-30T03:30:17.883Z", - "updatedAt" : "2019-12-07T16:50:06.678Z", - "archived" : false - } - }, - "PublicObjectId" : { - "required" : [ "id" ], - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - } - } - }, - "Paging" : { - "type" : "object", - "properties" : { - "next" : { - "$ref" : "#/components/schemas/NextPage" - }, - "prev" : { - "$ref" : "#/components/schemas/PreviousPage" - } - } - }, - "PublicObjectSearchRequest" : { - "type" : "object", - "properties" : { - "query" : { - "type" : "string" - }, - "limit" : { - "type" : "integer", - "format" : "int32" - }, - "after" : { - "type" : "string" - }, - "sorts" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "properties" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "filterGroups" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/FilterGroup" - } - } - } - }, - "Error" : { - "required" : [ "category", "correlationId", "message" ], - "type" : "object", - "properties" : { - "subCategory" : { - "type" : "string", - "description" : "A specific category that contains more specific detail about the error" - }, - "context" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "description" : "Context about the error condition", - "example" : { - "missingScopes" : [ "scope1", "scope2" ], - "invalidPropertyName" : [ "propertyValue" ] - } - }, - "correlationId" : { - "type" : "string", - "description" : "A unique identifier for the request. Include this value with any error reports or support tickets", - "format" : "uuid", - "example" : "aeb5f871-7f07-4993-9211-075dc63e7cbf" - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - }, - "description" : "A map of link names to associated URIs containing documentation about the error or recommended remediation steps", - "example" : { - "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" - } - }, - "message" : { - "type" : "string", - "description" : "A human readable message describing the error along with remediation steps where appropriate", - "example" : "Invalid input (details will vary based on the error)" - }, - "category" : { - "type" : "string", - "description" : "The error category", - "example" : "VALIDATION_ERROR" - }, - "errors" : { - "type" : "array", - "description" : "further information about the error", - "items" : { - "$ref" : "#/components/schemas/ErrorDetail" - } - } - }, - "example" : { - "message" : "Invalid input (details will vary based on the error)", - "correlationId" : "aeb5f871-7f07-4993-9211-075dc63e7cbf", - "category" : "VALIDATION_ERROR", - "links" : { - "knowledge-base" : "https://www.hubspot.com/products/service/knowledge-base" - } - } - }, - "SimplePublicObjectBatchInputUpsert" : { - "required" : [ "id", "properties" ], - "type" : "object", - "properties" : { - "idProperty" : { - "type" : "string" - }, - "objectWriteTraceId" : { - "type" : "string" - }, - "id" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - } - }, - "BatchResponseSimplePublicObjectWithErrors" : { - "required" : [ "completedAt", "results", "startedAt", "status" ], - "type" : "object", - "properties" : { - "completedAt" : { - "type" : "string", - "format" : "date-time" - }, - "numErrors" : { - "type" : "integer", - "format" : "int32" - }, - "requestedAt" : { - "type" : "string", - "format" : "date-time" - }, - "startedAt" : { - "type" : "string", - "format" : "date-time" - }, - "links" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObject" - } - }, - "errors" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/StandardError" - } - }, - "status" : { - "type" : "string", - "enum" : [ "PENDING", "PROCESSING", "CANCELED", "COMPLETE" ] - } - } - }, - "SimplePublicObjectInput" : { - "required" : [ "properties" ], - "type" : "object", - "properties" : { - "objectWriteTraceId" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - }, - "example" : { - "property_date" : "1572480000000", - "property_radio" : "option_1", - "property_number" : "17", - "property_string" : "value", - "property_checkbox" : "false", - "property_dropdown" : "choice_b", - "property_multiple_checkboxes" : "chocolate;strawberry" - } - } - }, - "example" : { - "properties" : { - "hs_title" : "Pawnee Paper Deal", - "hs_status" : "PENDING_APPROVAL" - }, - "associations" : [ { - "to" : { - "id" : "101" - }, - "types" : [ { - "associationCategory" : "HUBSPOT_DEFINED", - "associationTypeId" : 2 - } ] - } ] - } - }, - "CollectionResponseSimplePublicObjectWithAssociationsForwardPaging" : { - "required" : [ "results" ], - "type" : "object", - "properties" : { - "paging" : { - "$ref" : "#/components/schemas/ForwardPaging" - }, - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectWithAssociations" - } - } - } - }, - "AssociationSpec" : { - "required" : [ "associationCategory", "associationTypeId" ], - "type" : "object", - "properties" : { - "associationCategory" : { - "type" : "string", - "enum" : [ "HUBSPOT_DEFINED", "USER_DEFINED", "INTEGRATOR_DEFINED" ] - }, - "associationTypeId" : { - "type" : "integer", - "format" : "int32" - } - } - }, - "SimplePublicObjectWithAssociations" : { - "required" : [ "createdAt", "id", "properties", "updatedAt" ], - "type" : "object", - "properties" : { - "associations" : { - "type" : "object", - "additionalProperties" : { - "$ref" : "#/components/schemas/CollectionResponseAssociatedId" - } - }, - "createdAt" : { - "type" : "string", - "format" : "date-time" - }, - "archived" : { - "type" : "boolean" - }, - "archivedAt" : { - "type" : "string", - "format" : "date-time" - }, - "propertiesWithHistory" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ValueWithTimestamp" - } - } - }, - "id" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string", - "nullable" : true - } - }, - "updatedAt" : { - "type" : "string", - "format" : "date-time" - } - }, - "example" : { - "properties" : { - "hs_createdate" : "2019-10-30T03:30:17.883Z", - "hs_expiration_date" : "2020-09-06T02:43:14.491Z", - "hs_quote_amount" : "3000.00", - "hs_quote_number" : "20200916-092813983", - "hs_status" : "PENDING_APPROVAL", - "hs_terms" : "discount provided, two year term with customer", - "hs_title" : "Services Proposal", - "hubspot_owner_id" : "910901" - } - } - }, - "Filter" : { - "required" : [ "operator", "propertyName" ], - "type" : "object", - "properties" : { - "highValue" : { - "type" : "string" - }, - "propertyName" : { - "type" : "string" - }, - "values" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "value" : { - "type" : "string" - }, - "operator" : { - "type" : "string", - "description" : "null", - "enum" : [ "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN" ] - } - } - }, - "BatchInputSimplePublicObjectBatchInput" : { - "required" : [ "inputs" ], - "type" : "object", - "properties" : { - "inputs" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectBatchInput" - } - } - } - }, - "BatchInputSimplePublicObjectInputForCreate" : { - "required" : [ "inputs" ], - "type" : "object", - "properties" : { - "inputs" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/SimplePublicObjectInputForCreate" - } - } - } - }, - "PreviousPage" : { - "required" : [ "before" ], - "type" : "object", - "properties" : { - "before" : { - "type" : "string" - }, - "link" : { - "type" : "string" - } - } - }, - "SimplePublicUpsertObject" : { - "required" : [ "createdAt", "id", "new", "properties", "updatedAt" ], - "type" : "object", - "properties" : { - "createdAt" : { - "type" : "string", - "format" : "date-time" - }, - "archived" : { - "type" : "boolean" - }, - "archivedAt" : { - "type" : "string", - "format" : "date-time" - }, - "new" : { - "type" : "boolean" - }, - "propertiesWithHistory" : { - "type" : "object", - "additionalProperties" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/ValueWithTimestamp" - } - } - }, - "id" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - }, - "updatedAt" : { - "type" : "string", - "format" : "date-time" - } - } - }, - "SimplePublicObjectBatchInput" : { - "required" : [ "id", "properties" ], - "type" : "object", - "properties" : { - "idProperty" : { - "type" : "string", - "example" : "my_unique_property_name" - }, - "objectWriteTraceId" : { - "type" : "string" - }, - "id" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - }, - "example" : { - "id" : "1", - "properties" : { - "hs_title" : "Pawnee Paper Deal", - "hs_status" : "PENDING_APPROVAL" - } - } - }, - "AssociatedId" : { - "required" : [ "id", "type" ], - "type" : "object", - "properties" : { - "id" : { - "type" : "string" - }, - "type" : { - "type" : "string" - } - } - }, - "NextPage" : { - "required" : [ "after" ], - "type" : "object", - "properties" : { - "link" : { - "type" : "string", - "example" : "?after=NTI1Cg%3D%3D" - }, - "after" : { - "type" : "string", - "example" : "NTI1Cg%3D%3D" - } - }, - "example" : { - "after" : "NTI1Cg%3D%3D", - "link" : "?after=NTI1Cg%3D%3D" - } - }, - "SimplePublicObjectInputForCreate" : { - "required" : [ "associations", "properties" ], - "type" : "object", - "properties" : { - "associations" : { - "type" : "array", - "items" : { - "$ref" : "#/components/schemas/PublicAssociationsForObject" - } - }, - "objectWriteTraceId" : { - "type" : "string" - }, - "properties" : { - "type" : "object", - "additionalProperties" : { - "type" : "string" - } - } - }, - "example" : { - "properties" : { - "hs_title" : "Pawnee Paper Deal", - "hs_status" : "PENDING_APPROVAL" - }, - "associations" : [ { - "to" : { - "id" : "101" - }, - "types" : [ { - "associationCategory" : "HUBSPOT_DEFINED", - "associationTypeId" : 2 - } ] - } ] - } - } - }, - "responses" : { - "Error" : { - "description" : "An error occurred.", - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/Error" - } - } - } - } - }, - "securitySchemes" : { - "oauth2_legacy" : { - "type" : "oauth2", - "flows" : { - "authorizationCode" : { - "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", - "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", - "scopes" : { - "crm.objects.goals.read" : "Read goals", - "tickets" : "Read and write tickets", - "crm.objects.custom.read" : "View custom object records", - "e-commerce" : "e-commerce", - "crm.objects.custom.write" : "Change custom object records", - "media_bridge.read" : "Read media and media events" - } - } - } - }, - "oauth2" : { - "type" : "oauth2", - "flows" : { - "authorizationCode" : { - "authorizationUrl" : "https://app.hubspot.com/oauth/authorize", - "tokenUrl" : "https://api.hubapi.com/oauth/v1/token", - "scopes" : { - "crm.objects.companies.write" : " ", - "crm.objects.contacts.write" : " ", - "crm.objects.users.write" : "Write User CRM objects", - "crm.objects.commercepayments.read" : "Read the COMMERCE_PAYMENT object.", - "crm.objects.leads.write" : "Modify lead objects", - "crm.objects.subscriptions.read" : "Read Commerce Subscriptions", - "crm.objects.carts.read" : "Read carts", - "crm.objects.orders.write" : "Write orders", - "crm.objects.quotes.read" : "Quotes", - "crm.objects.services.read" : "Read services", - "crm.objects.orders.read" : "Read Orders", - "crm.objects.contacts.read" : " ", - "crm.objects.listings.read" : "Read listings", - "crm.objects.carts.write" : "Write cart", - "crm.objects.courses.write" : "Write courses", - "crm.objects.quotes.write" : "Quotes", - "crm.objects.users.read" : "Read User CRM objects", - "crm.objects.companies.read" : " ", - "crm.objects.appointments.read" : "Read appointments", - "crm.objects.partner-clients.write" : "Modify Partner Client CRM objects", - "crm.objects.leads.read" : "Read lead objects", - "crm.objects.appointments.write" : "Write appointments", - "crm.objects.services.write" : "Write services", - "crm.objects.line_items.read" : "Line Items", - "crm.objects.courses.read" : "Read courses", - "crm.objects.deals.read" : " ", - "crm.objects.invoices.read" : "Read invoices objects", - "crm.objects.partner-clients.read" : "View Partner Client CRM objects", - "crm.objects.deals.write" : " ", - "crm.objects.line_items.write" : "Line Items", - "crm.objects.listings.write" : "Write listings" - } - } - } - }, - "private_apps_legacy" : { - "type" : "apiKey", - "name" : "private-app-legacy", - "in" : "header" - }, - "private_apps" : { - "type" : "apiKey", - "name" : "private-app", - "in" : "header" - } - } - }, - "x-hubspot-available-client-libraries" : [ "PHP", "Node", "Ruby", "Python" ], - "x-hubspot-product-tier-requirements" : { - "marketing" : "FREE", - "sales" : "FREE", - "service" : "FREE", - "cms" : "FREE" - }, - "x-hubspot-documentation-banner" : "NONE" -} \ No newline at end of file From e42932f6671ac71feb3ba896275c8f4d8cf3f2f0 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 16 Jan 2025 10:20:54 +0530 Subject: [PATCH 18/30] File modified --- ballerina/tests/mock_service.bal | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal index 9f74344..c6063c3 100644 --- a/ballerina/tests/mock_service.bal +++ b/ballerina/tests/mock_service.bal @@ -20,7 +20,7 @@ import ballerina/log; service on new http:Listener(9090) { // Archive - resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:Response|error { + resource function delete crm/v3/objects/quotes/[string quoteId]() returns http:Response { http:Response response = new(); response.statusCode = http:STATUS_NO_CONTENT; response.setPayload("Successfully deleted"); @@ -121,9 +121,3 @@ service on new http:Listener(9090) { }; } }; - -function init() returns error?{ - log:printInfo("Initializing mock service"); - check httpListener.attach(mockService, "/"); - check httpListener.'start(); -} \ No newline at end of file From ba8b8076fea2787f5305845fd7aee57b41f12e86 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Thu, 16 Jan 2025 10:23:30 +0530 Subject: [PATCH 19/30] [Automated] Update the toml files --- ballerina/Dependencies.toml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 4ddbb45..0fb117c 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -212,9 +212,6 @@ dependencies = [ {org = "ballerina", name = "lang.value"}, {org = "ballerina", name = "observe"} ] -modules = [ - {org = "ballerina", packageName = "log", moduleName = "log"} -] [[package]] org = "ballerina" @@ -320,7 +317,6 @@ name = "hubspot.crm.commerce.quotes" version = "1.0.0" dependencies = [ {org = "ballerina", name = "http"}, - {org = "ballerina", name = "log"}, {org = "ballerina", name = "oauth2"}, {org = "ballerina", name = "test"}, {org = "ballerina", name = "url"}, From ad4cbdf259f665156479d64dd749badfb4774003 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 10:09:44 +0530 Subject: [PATCH 20/30] All tests passing --- ballerina/tests/mock_service.bal | 4 ++-- ballerina/tests/mock_test.bal | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/ballerina/tests/mock_service.bal b/ballerina/tests/mock_service.bal index c6063c3..e5ec554 100644 --- a/ballerina/tests/mock_service.bal +++ b/ballerina/tests/mock_service.bal @@ -15,7 +15,6 @@ // under the License. import ballerina/http; -import ballerina/log; service on new http:Listener(9090) { @@ -96,7 +95,8 @@ service on new http:Listener(9090) { }; } - resource isolated function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload, map headers = {}) returns CollectionResponseWithTotalSimplePublicObjectForwardPaging|error { + resource isolated function post crm/v3/objects/quotes/search(@http:Payload PublicObjectSearchRequest payload, map headers = {}) + returns CollectionResponseWithTotalSimplePublicObjectForwardPaging|error { SimplePublicObject ob1 = { id: "1", properties: { diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index 3a14984..31e27cf 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -15,15 +15,12 @@ // under the License. import ballerina/http; -import ballerina/oauth2; import ballerina/test; -final Client quotesClient = check new(config = {auth: { - clientId, - clientSecret, - refreshToken, - credentialBearer: oauth2:POST_BODY_BEARER -}}); +final Client quotesClient = check new(config = {auth:{ + token: "test-token" +}}, serviceUrl="http://localhost:9090/crm/v3/objects/quotes" +); // Test function for creating a quote @test:Config{} @@ -38,7 +35,7 @@ function testCreateAQuote() returns error? { SimplePublicObject response = check quotesClient->/.post(payload); - test:assertEquals(response.properties, payload.properties, "New quote creation failed."); + test:assertEquals(response.properties["hs_title"], payload.properties["hs_title"], "New quote creation failed."); } // Test function to get a quote bu ID From 21e0dbdb0f98c990b559700a476b670be9adca32 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 11:27:37 +0530 Subject: [PATCH 21/30] Example issues resolved. --- examples/sales_analytics/main.bal | 56 +++++++++++++++---------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index 4d346c9..eced7a2 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -17,27 +17,25 @@ import ballerina/http; import ballerina/io; import ballerina/oauth2; -import ballerinax/hubspot.crm.commerce.quotes as quotes; +import ballerinax/hubspot.crm.commerce.quotes as hsQuotes; -configurable string & readonly clientId = ?; -configurable string & readonly clientSecret = ?; -configurable string & readonly refreshToken = ?; +configurable string clientId = ?; +configurable string clientSecret = ?; +configurable string refreshToken = ?; public function main() returns error? { - quotes:OAuth2RefreshTokenGrantConfig auth = { + hsQuotes:OAuth2RefreshTokenGrantConfig auth = { clientId, clientSecret, refreshToken, credentialBearer: oauth2:POST_BODY_BEARER }; - final quotes:Client storeClient = check new (config = {auth}); - - string quoteId = "0"; + final hsQuotes:Client storeClient = check new ({auth}); // Add new sales quote - quotes:SimplePublicObjectInputForCreate payload = { + hsQuotes:SimplePublicObjectInputForCreate payload = { associations: [], properties: { "hs_title": "Premium Subscription Quote", @@ -46,11 +44,11 @@ public function main() returns error? { } }; var createdNewQuote = check storeClient->/.post(payload); - quoteId = createdNewQuote.id; + string quoteId = createdNewQuote.id; io:println(createdNewQuote); // Add a batch of quotes - quotes:SimplePublicObjectInputForCreate ob1 = { + hsQuotes:SimplePublicObjectInputForCreate batchInput1 = { associations: [], properties: { "hs_title": "Quote 1", @@ -58,7 +56,7 @@ public function main() returns error? { } }; - quotes:SimplePublicObjectInputForCreate ob2 = { + hsQuotes:SimplePublicObjectInputForCreate batchInput2 = { associations: [], properties: { "hs_title": "Quote 2", @@ -66,50 +64,50 @@ public function main() returns error? { } }; - quotes:BatchInputSimplePublicObjectInputForCreate batch_create_payload = { - inputs: [ob1, ob2] + hsQuotes:BatchInputSimplePublicObjectInputForCreate batchCreatePayload = { + inputs: [batchInput1, batchInput2] }; // Call the Quotes API to create a new quote - quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors createdQuotes = check storeClient->/batch/create.post(batch_create_payload); + hsQuotes:BatchResponseSimplePublicObject|hsQuotes:BatchResponseSimplePublicObjectWithErrors createdQuotes = check storeClient->/batch/create.post(batchCreatePayload); io:println(createdQuotes.results); // Get all existing sales quotes - quotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging allExistingQuotes = check storeClient->/.get(); + hsQuotes:CollectionResponseSimplePublicObjectWithAssociationsForwardPaging allExistingQuotes = check storeClient->/.get(); io:println(allExistingQuotes); // Get one sales quote by ID - quotes:SimplePublicObjectWithAssociations quote = check storeClient->/[quoteId].get(); + hsQuotes:SimplePublicObjectWithAssociations quote = check storeClient->/[quoteId].get(); io:println(quote); // Get a batch of quotes - quotes:SimplePublicObjectId ob0 = { + hsQuotes:SimplePublicObjectId ob0 = { id: quoteId }; - quotes:BatchReadInputSimplePublicObjectId batch_get_payload = { + hsQuotes:BatchReadInputSimplePublicObjectId batchGetPayload = { properties: [], propertiesWithHistory: [], inputs: [ob0] }; - quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors retrievedQuotes = check storeClient->/batch/read.post(batch_get_payload); + hsQuotes:BatchResponseSimplePublicObject|hsQuotes:BatchResponseSimplePublicObjectWithErrors retrievedQuotes = check storeClient->/batch/read.post(batchGetPayload); io:println(retrievedQuotes.results); // Update one sales quote by ID - quotes:SimplePublicObjectInput modifyPayload = { + hsQuotes:SimplePublicObjectInput modifyPayload = { properties: { "hs_title": "Premium Subscription Quote", "hs_expiration_date": "2025-03-31", "hs_currency": "USD" } }; - quotes:SimplePublicObject modifiedQuote = check storeClient->/[quoteId].patch(modifyPayload); + hsQuotes:SimplePublicObject modifiedQuote = check storeClient->/[quoteId].patch(modifyPayload); io:println(modifiedQuote); // Update a batch of quotes - quotes:SimplePublicObjectBatchInput ob3 = { + hsQuotes:SimplePublicObjectBatchInput batchInput3 = { id: quoteId, properties: { "hs_title": "Test Quote 3", @@ -117,12 +115,12 @@ public function main() returns error? { } }; - quotes:BatchInputSimplePublicObjectBatchInput batch_update_payload = { - inputs: [ob3] + hsQuotes:BatchInputSimplePublicObjectBatchInput batchUpdatePayload = { + inputs: [batchInput3] }; // Call the Quotes API to create a new quote - quotes:BatchResponseSimplePublicObject|quotes:BatchResponseSimplePublicObjectWithErrors modifiedQuotes = check storeClient->/batch/update.post(batch_update_payload); + hsQuotes:BatchResponseSimplePublicObject|hsQuotes:BatchResponseSimplePublicObjectWithErrors modifiedQuotes = check storeClient->/batch/update.post(batchUpdatePayload); io:println(modifiedQuotes.results); // Archive one sales quote by ID @@ -130,15 +128,15 @@ public function main() returns error? { io:println(archive_response); // Archive a batch of quotes - quotes:SimplePublicObjectId id0 = {id:"0"}; + hsQuotes:SimplePublicObjectId id0 = {id:"0"}; - quotes:BatchInputSimplePublicObjectId batch_archive_payload = { + hsQuotes:BatchInputSimplePublicObjectId batchArchivePayload = { inputs:[ id0 ] }; - http:Response batch_archive_response = check storeClient->/batch/archive.post(batch_archive_payload); + http:Response batch_archive_response = check storeClient->/batch/archive.post(batchArchivePayload); io:println(batch_archive_response); } From 1517ba98492bdaee41e1423e186c418090e093c9 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 11:36:04 +0530 Subject: [PATCH 22/30] Review on mock_test resolved. --- ballerina/tests/mock_test.bal | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index 31e27cf..a021918 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -43,7 +43,7 @@ function testCreateAQuote() returns error? { function testGetAQuoteById() returns error? { SimplePublicObjectWithAssociations response = check quotesClient->/["0"].get(); - test:assertEquals(response, { + SimplePublicObjectWithAssociations expectedQuote = { id: "0", properties: { "hs_title": "Test Quote 0", @@ -51,7 +51,9 @@ function testGetAQuoteById() returns error? { }, createdAt: "2025-01-08", updatedAt: "2025-01-15" - }, "Reading this quote is failed."); + }; + + test:assertEquals(response, expectedQuote, "Reading this quote is failed."); } // Test function to archive a quote by ID @@ -76,7 +78,7 @@ function testUpdateAQuoteById() returns error? { // Call the Quotes API to update the quote SimplePublicObject response = check quotesClient->/["1"].patch(payload); - test:assertEquals(response, { + SimplePublicObject updatedQuote = { id: "1", properties: { "hs_title": "Test Quote 1", @@ -84,7 +86,9 @@ function testUpdateAQuoteById() returns error? { }, createdAt: "2025-01-08", updatedAt: "2025-01-15" - }, "Quote update failed."); + }; + + test:assertEquals(response, updatedQuote, "Quote update failed."); } // Test function to upsert a quote @@ -111,7 +115,7 @@ function testUpsertAQuote() returns error? { BatchResponseSimplePublicUpsertObject response = check quotesClient->/batch/upsert.post(payload = payload); - test:assertEquals(response, { + BatchResponseSimplePublicUpsertObject expectedBatch = { completedAt: "2025-01-10", startedAt: "2025-01-08", requestedAt: "2025-01-08", @@ -138,7 +142,9 @@ function testUpsertAQuote() returns error? { } ], status: "COMPLETE" - }, "Quote upsert failed."); + }; + + test:assertEquals(response, expectedBatch, "Quote upsert failed."); } // Test function to upsert a quote @@ -165,7 +171,7 @@ function testSearchAQuote() returns error? { CollectionResponseWithTotalSimplePublicObjectForwardPaging response = check quotesClient->/search.post(payload = payload); - SimplePublicObject ob1 = { + SimplePublicObject batchOutput1 = { id: "1", properties: { "hs_title": "Test Quote 1", @@ -174,7 +180,7 @@ function testSearchAQuote() returns error? { createdAt: "2025-01-08", updatedAt: "2025-01-15" }; - SimplePublicObject ob2 = { + SimplePublicObject batchOutput2 = { id: "2", properties: { "hs_title": "Test Quote 2", @@ -186,7 +192,7 @@ function testSearchAQuote() returns error? { test:assertEquals(response, { total: 1500, - results: [ob1, ob2] + results: [batchOutput1, batchOutput2] }, "Quote search failed."); } From 194064dcbf55dd107d4619807b897ae0b0801505 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 11:51:41 +0530 Subject: [PATCH 23/30] Unnecessary notes removed from md docs. --- README.md | 4 +--- ballerina/Module.md | 4 +--- ballerina/Package.md | 4 +--- examples/sales_analytics/main.bal | 1 - 4 files changed, 3 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 961bda6..70a6c77 100644 --- a/README.md +++ b/README.md @@ -77,9 +77,7 @@ Within app developer accounts, you can create developer test accounts to test ap Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: -1. Create an authorization URL using the following format: - - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** +1. Create an authorization URL using the following format. 2. Paste it in the browser and select your developer test account to intall the app when prompted. diff --git a/ballerina/Module.md b/ballerina/Module.md index 7221e5d..509e68b 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -68,9 +68,7 @@ Within app developer accounts, you can create developer test accounts to test ap Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: -1. Create an authorization URL using the following format: - - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** +1. Create an authorization URL using the following format. 2. Paste it in the browser and select your developer test account to intall the app when prompted. diff --git a/ballerina/Package.md b/ballerina/Package.md index 1f0a36e..cabc505 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -68,9 +68,7 @@ Within app developer accounts, you can create developer test accounts to test ap Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps: -1. Create an authorization URL using the following format: - - **_NOTE: If you are using a localhost redirect url, make sure to have a listner running at the relevant port before executing the next step. You can use [this gist](https://gist.github.com/lnash94/0af47bfcb7cc1e3d59e06364b3c86b59) and run it using `bal run`. Alternatively, you can use any other method to bind a listner to the port._** +1. Create an authorization URL using the following format. 2. Paste it in the browser and select your developer test account to intall the app when prompted. diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index eced7a2..ef71046 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -140,4 +140,3 @@ public function main() returns error? { io:println(batch_archive_response); } - From 26305d95811c5f06e9ce254052473249d9d8a4d7 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 11:57:25 +0530 Subject: [PATCH 24/30] Batch input variable names modified in tests --- ballerina/tests/test.bal | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index 3427547..ee3861d 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -62,7 +62,7 @@ function testCreateNewQuote() returns error? { @test:Config{} function testCreateNewBatchOfQuotes() returns error? { - SimplePublicObjectInputForCreate ob1 = { + SimplePublicObjectInputForCreate batchInput1 = { associations: [], properties: { "hs_title": "Test Quote 1", @@ -70,7 +70,7 @@ function testCreateNewBatchOfQuotes() returns error? { } }; - SimplePublicObjectInputForCreate ob2 = { + SimplePublicObjectInputForCreate batchInput2 = { associations: [], properties: { "hs_title": "Test Quote 2", @@ -79,7 +79,7 @@ function testCreateNewBatchOfQuotes() returns error? { }; BatchInputSimplePublicObjectInputForCreate payload = { - inputs: [ob1, ob2] + inputs: [batchInput1, batchInput2] }; // Call the Quotes API to create a new quote @@ -114,14 +114,14 @@ function testGetOneQuote() returns error? { @test:Config{} function testGetBatchOfQuotes() returns error? { - SimplePublicObjectId ob0 = { + SimplePublicObjectId batchInput0 = { id: testQuoteId }; BatchReadInputSimplePublicObjectId payload = { properties: [], propertiesWithHistory: [], - inputs: [ob0] + inputs: [batchInput0] }; BatchResponseSimplePublicObject|BatchResponseSimplePublicObjectWithErrors response = check hubspotClient->/batch/read.post(payload); @@ -179,7 +179,7 @@ function testUpdateOneQuote() returns error? { @test:Config{} function testUpdateBatchOfQuotes() returns error? { - SimplePublicObjectBatchInput ob3 = { + SimplePublicObjectBatchInput batchInput3 = { id: testQuoteId, properties: { "hs_title": "Test Quote 3", @@ -188,7 +188,7 @@ function testUpdateBatchOfQuotes() returns error? { }; BatchInputSimplePublicObjectBatchInput payload = { - inputs: [ob3] + inputs: [batchInput3] }; // Call the Quotes API to create a new quote From 499ded3063c274605c09aedcdbacf4a10f6d6927 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 11:58:42 +0530 Subject: [PATCH 25/30] Unnecessary comments removed in mock_test. --- ballerina/tests/mock_test.bal | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index a021918..108d786 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -150,10 +150,7 @@ function testUpsertAQuote() returns error? { // Test function to upsert a quote @test:Config{} function testSearchAQuote() returns error? { - // PublicObjectSearchRequest payload = { - // properties: ["hs_title", "hs_expiration_date"] - // }; - + PublicObjectSearchRequest payload = { filterGroups: [ { From ea4a95c788972cb5459038c99bd031125d28d316 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 13:21:39 +0530 Subject: [PATCH 26/30] Some reviews resolved. --- ballerina/tests/mock_test.bal | 1 - examples/sales_analytics/main.bal | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ballerina/tests/mock_test.bal b/ballerina/tests/mock_test.bal index 108d786..fdad6b0 100644 --- a/ballerina/tests/mock_test.bal +++ b/ballerina/tests/mock_test.bal @@ -192,4 +192,3 @@ function testSearchAQuote() returns error? { results: [batchOutput1, batchOutput2] }, "Quote search failed."); } - diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index ef71046..d3906e0 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -136,7 +136,6 @@ public function main() returns error? { ] }; - http:Response batch_archive_response = check storeClient->/batch/archive.post(batchArchivePayload); - - io:println(batch_archive_response); + http:Response batchArchiveResponse = check storeClient->/batch/archive.post(batchArchivePayload); + io:println(batchArchiveResponse); } From b9ac251b8a368141bd4c1565a08d1452262e819c Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 13:24:51 +0530 Subject: [PATCH 27/30] Empty lines problems solved in sales_analytics/main.bal. --- examples/sales_analytics/main.bal | 5 ----- 1 file changed, 5 deletions(-) diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index d3906e0..742053d 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -63,7 +63,6 @@ public function main() returns error? { "hs_expiration_date": "2025-04-30" } }; - hsQuotes:BatchInputSimplePublicObjectInputForCreate batchCreatePayload = { inputs: [batchInput1, batchInput2] }; @@ -90,9 +89,7 @@ public function main() returns error? { propertiesWithHistory: [], inputs: [ob0] }; - hsQuotes:BatchResponseSimplePublicObject|hsQuotes:BatchResponseSimplePublicObjectWithErrors retrievedQuotes = check storeClient->/batch/read.post(batchGetPayload); - io:println(retrievedQuotes.results); // Update one sales quote by ID @@ -114,7 +111,6 @@ public function main() returns error? { "hs_expiration_date": "2025-04-30" } }; - hsQuotes:BatchInputSimplePublicObjectBatchInput batchUpdatePayload = { inputs: [batchInput3] }; @@ -135,7 +131,6 @@ public function main() returns error? { id0 ] }; - http:Response batchArchiveResponse = check storeClient->/batch/archive.post(batchArchivePayload); io:println(batchArchiveResponse); } From b3a3cc497fd72c47913b113e9d847687b61b8837 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 13:27:54 +0530 Subject: [PATCH 28/30] Empty lines problem resolved. --- examples/sales_analytics/main.bal | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/sales_analytics/main.bal b/examples/sales_analytics/main.bal index 742053d..84ee1c9 100644 --- a/examples/sales_analytics/main.bal +++ b/examples/sales_analytics/main.bal @@ -55,7 +55,6 @@ public function main() returns error? { "hs_expiration_date": "2025-02-28" } }; - hsQuotes:SimplePublicObjectInputForCreate batchInput2 = { associations: [], properties: { @@ -83,7 +82,6 @@ public function main() returns error? { hsQuotes:SimplePublicObjectId ob0 = { id: quoteId }; - hsQuotes:BatchReadInputSimplePublicObjectId batchGetPayload = { properties: [], propertiesWithHistory: [], @@ -125,7 +123,6 @@ public function main() returns error? { // Archive a batch of quotes hsQuotes:SimplePublicObjectId id0 = {id:"0"}; - hsQuotes:BatchInputSimplePublicObjectId batchArchivePayload = { inputs:[ id0 From f219c9547c1eae02bebb9bab5f324bc9ca5f093c Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 15:14:42 +0530 Subject: [PATCH 29/30] Docs corrected. --- README.md | 2 +- ballerina/Module.md | 2 +- ballerina/Package.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70a6c77..2253d4a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Overview -[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. +[HubSpot](https://www.hubspot.com) is an AI-powered customer relationship management (CRM) platform. The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). diff --git a/ballerina/Module.md b/ballerina/Module.md index 509e68b..617df60 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -1,6 +1,6 @@ ## Overview -[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. +[HubSpot](https://www.hubspot.com) is an AI-powered customer relationship management (CRM) platform. The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). diff --git a/ballerina/Package.md b/ballerina/Package.md index cabc505..d1702c6 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -1,6 +1,6 @@ ## Overview -[HubSpot](https://www.hubspot.com/) is an customer platform with all the software, integrations, and resources users need to connect thier marketing, sales, and customer service. +[HubSpot](https://www.hubspot.com) is an AI-powered customer relationship management (CRM) platform. The `ballerinax/hubspot.crm.commerce.quotes` package offers APIs to connect and interact with [HubSpot API for CRM Quotes](https://developers.hubspot.com/docs/reference/api/crm/commerce/quotes) endpoints, specifically based on [HubSpot CRM Quotes REST API](https://developers.hubspot.com/docs/reference/api). From 3dd64705be013416081669bc48e946e7bccb56f7 Mon Sep 17 00:00:00 2001 From: harithmaduranga Date: Fri, 17 Jan 2025 15:24:32 +0530 Subject: [PATCH 30/30] Live tests disabled running. --- ballerina/tests/test.bal | 50 +++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/ballerina/tests/test.bal b/ballerina/tests/test.bal index ee3861d..35bb3c3 100644 --- a/ballerina/tests/test.bal +++ b/ballerina/tests/test.bal @@ -29,13 +29,17 @@ OAuth2RefreshTokenGrantConfig auth = { credentialBearer: oauth2:POST_BODY_BEARER }; -final Client hubspotClient = check new (config = {auth}); +final Client hubspotClient = check new ({auth}); -string testQuoteId = ""; +string testQuoteId = ""; +boolean enableLiveServerTest = false; // Test function for creating a quote -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testCreateNewQuote() returns error? { SimplePublicObjectInputForCreate payload = { associations: [], @@ -59,7 +63,10 @@ function testCreateNewQuote() returns error? { // Test function for creating a batch of quotes -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testCreateNewBatchOfQuotes() returns error? { SimplePublicObjectInputForCreate batchInput1 = { @@ -93,7 +100,10 @@ function testCreateNewBatchOfQuotes() returns error? { // Test for retrieving all quotes -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testGetAllQuotes() returns error? { CollectionResponseSimplePublicObjectWithAssociationsForwardPaging response = check hubspotClient->/.get(); @@ -103,7 +113,10 @@ function testGetAllQuotes() returns error? { } // Test function for retrieving a quote -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testGetOneQuote() returns error? { SimplePublicObjectWithAssociations response = check hubspotClient->/[testQuoteId].get(); @@ -111,7 +124,10 @@ function testGetOneQuote() returns error? { } // Test function for retrieving a batch of quotes -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testGetBatchOfQuotes() returns error? { SimplePublicObjectId batchInput0 = { @@ -132,7 +148,10 @@ function testGetBatchOfQuotes() returns error? { // Archive a quote by ID -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testArchiveOneQuote() returns error?{ http:Response response = check hubspotClient->/["0"].delete(); @@ -141,7 +160,10 @@ function testArchiveOneQuote() returns error?{ } // Archive batch of quotes by ID -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testArchiveBatchOfQuoteById() returns error?{ SimplePublicObjectId id0 = {id:"0"}; @@ -159,7 +181,10 @@ function testArchiveBatchOfQuoteById() returns error?{ // Test function for updating a quote -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testUpdateOneQuote() returns error? { SimplePublicObjectInput payload = { properties: { @@ -176,7 +201,10 @@ function testUpdateOneQuote() returns error? { } // Test function for updating a batch of quotes -@test:Config{} +@test:Config{ + groups: ["live_tests"], + enable: enableLiveServerTest +} function testUpdateBatchOfQuotes() returns error? { SimplePublicObjectBatchInput batchInput3 = {