diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index a34deafc5..2b0774128 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -58,8 +58,8 @@ sources: - main platform-source: sourceNamespace: platform-source - sourceRevisionDigest: sha256:9d1b7d84cf409ce52032d4c8b3e484355297cdc001d4d9169d5df5301efecabc - sourceBlobDigest: sha256:e1e3f4c3ed16022322bc656bb0e4ef28c04fff8c92c271cc859c6e2b32af5613 + sourceRevisionDigest: sha256:79f704c98bf458bc595e6607b6bf1fc95a6ba5da522953eedbba8fc9cce25e21 + sourceBlobDigest: sha256:e4fb24c2ca300a5005adef27857ad9afba70f056e51a84fb38368609c61cafc8 tags: - latest - main @@ -156,8 +156,8 @@ targets: platform-library: source: platform-source sourceNamespace: platform-source - sourceRevisionDigest: sha256:9d1b7d84cf409ce52032d4c8b3e484355297cdc001d4d9169d5df5301efecabc - sourceBlobDigest: sha256:e1e3f4c3ed16022322bc656bb0e4ef28c04fff8c92c271cc859c6e2b32af5613 + sourceRevisionDigest: sha256:79f704c98bf458bc595e6607b6bf1fc95a6ba5da522953eedbba8fc9cce25e21 + sourceBlobDigest: sha256:e4fb24c2ca300a5005adef27857ad9afba70f056e51a84fb38368609c61cafc8 sync-for-commerce-library: source: sync-for-commerce-source sourceNamespace: sync-for-commerce-source diff --git a/platform/.speakeasy/gen.lock b/platform/.speakeasy/gen.lock index 4920cdf3d..a9ad9aead 100755 --- a/platform/.speakeasy/gen.lock +++ b/platform/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: f309bed8-ee34-4982-948d-d0a2535e6a36 management: - docChecksum: ef83be90b9eb0e15a21f5dbf01fbe486 + docChecksum: 1b72366d9ec3e09f6de64e940eaeb62b docVersion: 3.0.0 - speakeasyVersion: 1.396.7 - generationVersion: 2.415.6 - releaseVersion: 3.4.0 - configChecksum: 9ef3ead80748b32c53c78ccaba23225c + speakeasyVersion: 1.423.1 + generationVersion: 2.442.11 + releaseVersion: 4.0.0 + configChecksum: fce5cbaed45fc091d0739e45e354e9c1 repoURL: https://github.com/codatio/client-sdk-go.git repoSubDirectory: platform installationURL: https://github.com/codatio/client-sdk-go/platform @@ -15,7 +15,7 @@ features: go: additionalDependencies: 0.1.0 constsAndDefaults: 0.1.6 - core: 3.5.8 + core: 3.5.14 defaultEnabledRetries: 0.2.0 deprecations: 2.81.1 envVarSecurityUsage: 0.3.1 @@ -33,16 +33,16 @@ features: retries: 2.83.0 sdkHooks: 0.1.0 serverEventsSentinels: 0.1.0 + tests: 0.6.0 webhooks: 1.0.0 generatedFiles: - .gitattributes - - /pkg/models/operations/addcompanytogroup.go + - /pkg/models/operations/addproduct.go - /pkg/models/operations/configurecustomdatatype.go - /pkg/models/operations/configuresupplementaldata.go - /pkg/models/operations/createapikey.go - /pkg/models/operations/createcompany.go - /pkg/models/operations/createconnection.go - - /pkg/models/operations/creategroup.go - /pkg/models/operations/createrule.go - /pkg/models/operations/createwebhookconsumer.go - /pkg/models/operations/deleteapikey.go @@ -69,7 +69,6 @@ generatedFiles: - /pkg/models/operations/listcompanies.go - /pkg/models/operations/listconnections.go - /pkg/models/operations/listcustomdatatyperecords.go - - /pkg/models/operations/listgroups.go - /pkg/models/operations/listintegrations.go - /pkg/models/operations/listpulloperations.go - /pkg/models/operations/listrules.go @@ -77,7 +76,7 @@ generatedFiles: - /pkg/models/operations/refreshcompanydata.go - /pkg/models/operations/refreshcustomdatatype.go - /pkg/models/operations/refreshdatatype.go - - /pkg/models/operations/removecompanyfromgroup.go + - /pkg/models/operations/removeproduct.go - /pkg/models/operations/setconnectionmanagementcorssettings.go - /pkg/models/operations/unlinkconnection.go - /pkg/models/operations/updatecompany.go @@ -100,7 +99,6 @@ generatedFiles: - /pkg/models/shared/companies.go - /pkg/models/shared/company.go - /pkg/models/shared/companydetails.go - - /pkg/models/shared/companygroupassignment.go - /pkg/models/shared/companyreference.go - /pkg/models/shared/companyrequestbody.go - /pkg/models/shared/companywebhook.go @@ -110,6 +108,8 @@ generatedFiles: - /pkg/models/shared/connections.go - /pkg/models/shared/connectionstatuschangedwebhook.go - /pkg/models/shared/connectionstatuschangedwebhookdata.go + - /pkg/models/shared/connectionwebhook.go + - /pkg/models/shared/connectionwebhookpayload.go - /pkg/models/shared/createapikey.go - /pkg/models/shared/createrule.go - /pkg/models/shared/customdatatypeconfiguration.go @@ -129,14 +129,11 @@ generatedFiles: - /pkg/models/shared/datatypewritewebhook.go - /pkg/models/shared/datatypewritewebhookpayload.go - /pkg/models/shared/datatypewritewebhookrecord.go + - /pkg/models/shared/errormessage.go - /pkg/models/shared/errorvalidation.go - /pkg/models/shared/errorvalidationitem.go - /pkg/models/shared/featurestate.go - /pkg/models/shared/featuretype.go - - /pkg/models/shared/group.go - - /pkg/models/shared/groupprototype.go - - /pkg/models/shared/groupref.go - - /pkg/models/shared/groups.go - /pkg/models/shared/halref.go - /pkg/models/shared/imagereference.go - /pkg/models/shared/integration.go @@ -162,6 +159,8 @@ generatedFiles: - /pkg/models/shared/pushoptionproperty.go - /pkg/models/shared/pushoptiontype.go - /pkg/models/shared/pushvalidationinfo.go + - /pkg/models/shared/readcompletedwebhook.go + - /pkg/models/shared/readcompletedwebhookpayload.go - /pkg/models/shared/schemadatatype.go - /pkg/models/shared/security.go - /pkg/models/shared/sourcetype.go @@ -186,6 +185,12 @@ generatedFiles: - /pkg/models/webhooks/companycreated.go - /pkg/models/webhooks/companydataconnectionstatuschanged.go - /pkg/models/webhooks/companydeleted.go + - /pkg/models/webhooks/connectionconnected.go + - /pkg/models/webhooks/connectioncreated.go + - /pkg/models/webhooks/connectiondeleted.go + - /pkg/models/webhooks/connectiondisconnected.go + - /pkg/models/webhooks/connectionfailed.go + - /pkg/models/webhooks/connectionreconnected.go - /pkg/models/webhooks/datasetdatachanged.go - /pkg/models/webhooks/datasetstatushaschangedtoanerrorstate.go - /pkg/models/webhooks/datasynccompleted.go @@ -194,6 +199,8 @@ generatedFiles: - /pkg/models/webhooks/newcompanysynchronized.go - /pkg/models/webhooks/pushoperationhastimedout.go - /pkg/models/webhooks/pushoperationstatushaschanged.go + - /pkg/models/webhooks/readcompleted.go + - /pkg/models/webhooks/readcompletedinitial.go - CONTRIBUTING.md - USAGE.md - codatplatform.go @@ -202,8 +209,8 @@ generatedFiles: - connections.go - corssettings.go - customdatatype.go - - docs/pkg/models/operations/addcompanytogrouprequest.md - - docs/pkg/models/operations/addcompanytogroupresponse.md + - docs/pkg/models/operations/addproductrequest.md + - docs/pkg/models/operations/addproductresponse.md - docs/pkg/models/operations/configurecustomdatatyperequest.md - docs/pkg/models/operations/configurecustomdatatyperesponse.md - docs/pkg/models/operations/configuresupplementaldatarequest.md @@ -213,7 +220,6 @@ generatedFiles: - docs/pkg/models/operations/createconnectionrequest.md - docs/pkg/models/operations/createconnectionrequestbody.md - docs/pkg/models/operations/createconnectionresponse.md - - docs/pkg/models/operations/creategroupresponse.md - docs/pkg/models/operations/createruleresponse.md - docs/pkg/models/operations/createwebhookconsumerresponse.md - docs/pkg/models/operations/datatype.md @@ -261,7 +267,6 @@ generatedFiles: - docs/pkg/models/operations/listconnectionsresponse.md - docs/pkg/models/operations/listcustomdatatyperecordsrequest.md - docs/pkg/models/operations/listcustomdatatyperecordsresponse.md - - docs/pkg/models/operations/listgroupsresponse.md - docs/pkg/models/operations/listintegrationsrequest.md - docs/pkg/models/operations/listintegrationsresponse.md - docs/pkg/models/operations/listpulloperationsrequest.md @@ -277,8 +282,8 @@ generatedFiles: - docs/pkg/models/operations/refreshcustomdatatyperesponse.md - docs/pkg/models/operations/refreshdatatyperequest.md - docs/pkg/models/operations/refreshdatatyperesponse.md - - docs/pkg/models/operations/removecompanyfromgrouprequest.md - - docs/pkg/models/operations/removecompanyfromgroupresponse.md + - docs/pkg/models/operations/removeproductrequest.md + - docs/pkg/models/operations/removeproductresponse.md - docs/pkg/models/operations/setconnectionmanagementcorssettingsresponse.md - docs/pkg/models/operations/unlinkconnectionrequest.md - docs/pkg/models/operations/unlinkconnectionresponse.md @@ -305,10 +310,9 @@ generatedFiles: - docs/pkg/models/shared/companies.md - docs/pkg/models/shared/company.md - docs/pkg/models/shared/companydetails.md - - docs/pkg/models/shared/companygroupassignment.md - docs/pkg/models/shared/companyreference.md + - docs/pkg/models/shared/companyreferencelinks.md - docs/pkg/models/shared/companyrequestbody.md - - docs/pkg/models/shared/companytags.md - docs/pkg/models/shared/companywebhook.md - docs/pkg/models/shared/connection.md - docs/pkg/models/shared/connectionmanagementaccesstoken.md @@ -316,6 +320,8 @@ generatedFiles: - docs/pkg/models/shared/connections.md - docs/pkg/models/shared/connectionstatuschangedwebhook.md - docs/pkg/models/shared/connectionstatuschangedwebhookdata.md + - docs/pkg/models/shared/connectionwebhook.md + - docs/pkg/models/shared/connectionwebhookpayload.md - docs/pkg/models/shared/content.md - docs/pkg/models/shared/createapikey.md - docs/pkg/models/shared/createrule.md @@ -330,6 +336,7 @@ generatedFiles: - docs/pkg/models/shared/datasetstatuschangederrorwebhook.md - docs/pkg/models/shared/datasetstatuschangederrorwebhookdata.md - docs/pkg/models/shared/datastatus.md + - docs/pkg/models/shared/datastatusdatatypes.md - docs/pkg/models/shared/datastatuses.md - docs/pkg/models/shared/datasynccompletedwebhook.md - docs/pkg/models/shared/datasynccompletedwebhookdata.md @@ -339,15 +346,12 @@ generatedFiles: - docs/pkg/models/shared/datatypewritewebhook.md - docs/pkg/models/shared/datatypewritewebhookpayload.md - docs/pkg/models/shared/datatypewritewebhookrecord.md + - docs/pkg/models/shared/errormessage.md - docs/pkg/models/shared/errorstatus.md - docs/pkg/models/shared/errorvalidation.md - docs/pkg/models/shared/errorvalidationitem.md - docs/pkg/models/shared/featurestate.md - docs/pkg/models/shared/featuretype.md - - docs/pkg/models/shared/group.md - - docs/pkg/models/shared/groupprototype.md - - docs/pkg/models/shared/groupref.md - - docs/pkg/models/shared/groups.md - docs/pkg/models/shared/halref.md - docs/pkg/models/shared/imagereference.md - docs/pkg/models/shared/integration.md @@ -374,6 +378,8 @@ generatedFiles: - docs/pkg/models/shared/pushoptionproperty.md - docs/pkg/models/shared/pushoptiontype.md - docs/pkg/models/shared/pushvalidationinfo.md + - docs/pkg/models/shared/readcompletedwebhook.md + - docs/pkg/models/shared/readcompletedwebhookpayload.md - docs/pkg/models/shared/schemadatatype.md - docs/pkg/models/shared/security.md - docs/pkg/models/shared/sourcetype.md @@ -383,7 +389,6 @@ generatedFiles: - docs/pkg/models/shared/supportedfeature.md - docs/pkg/models/shared/syncsetting.md - docs/pkg/models/shared/syncsettings.md - - docs/pkg/models/shared/tags.md - docs/pkg/models/shared/updateconnectionstatus.md - docs/pkg/models/shared/validation.md - docs/pkg/models/shared/validationitem.md @@ -402,6 +407,12 @@ generatedFiles: - docs/pkg/models/webhooks/companycreatedresponse.md - docs/pkg/models/webhooks/companydataconnectionstatuschangedresponse.md - docs/pkg/models/webhooks/companydeletedresponse.md + - docs/pkg/models/webhooks/connectionconnectedresponse.md + - docs/pkg/models/webhooks/connectioncreatedresponse.md + - docs/pkg/models/webhooks/connectiondeletedresponse.md + - docs/pkg/models/webhooks/connectiondisconnectedresponse.md + - docs/pkg/models/webhooks/connectionfailedresponse.md + - docs/pkg/models/webhooks/connectionreconnectedresponse.md - docs/pkg/models/webhooks/datasetdatachangedresponse.md - docs/pkg/models/webhooks/datasetstatushaschangedtoanerrorstateresponse.md - docs/pkg/models/webhooks/datasynccompletedresponse.md @@ -410,13 +421,14 @@ generatedFiles: - docs/pkg/models/webhooks/newcompanysynchronizedresponse.md - docs/pkg/models/webhooks/pushoperationhastimedoutresponse.md - docs/pkg/models/webhooks/pushoperationstatushaschangedresponse.md + - docs/pkg/models/webhooks/readcompletedinitialresponse.md + - docs/pkg/models/webhooks/readcompletedresponse.md - docs/sdks/codatplatform/README.md - docs/sdks/companies/README.md - docs/sdks/connectionmanagement/README.md - docs/sdks/connections/README.md - docs/sdks/corssettings/README.md - docs/sdks/customdatatype/README.md - - docs/sdks/groups/README.md - docs/sdks/integrations/README.md - docs/sdks/pushdata/README.md - docs/sdks/refreshdata/README.md @@ -424,7 +436,6 @@ generatedFiles: - docs/sdks/supplementaldata/README.md - docs/sdks/webhooks/README.md - go.mod - - groups.go - integrations.go - internal/hooks/hooks.go - pkg/models/operations/options.go @@ -527,14 +538,14 @@ examples: create-company: With no description: requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "groups": [], "name": "Technicalium"} + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Technicalium"} responses: "200": application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0"} "400": {} With a description: requestBody: - application/json: {"description": "Technology services, including web and app design and development", "groups": [], "name": "Technicalium"} + application/json: {"description": "Technology services, including web and app design and development", "name": "Technicalium"} responses: "200": application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "Technology services, including web and app design and development", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0"} @@ -548,10 +559,16 @@ examples: "400": {} Malformed query: requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "groups": [], "name": "Bank of Dave"} + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + With a tag: + requestBody: + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} + responses: + "200": + application/json: {"created": "2022-11-10T10:45:18.1950523Z", "createdByUserName": "Dan Tzabar", "dataConnections": [], "description": "", "id": "ab12c58d-a678-4ebf-a159-ae99e1807bd0", "lastSync": "2022-10-23T00:00:00Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/ab12c58d-a678-4ebf-a159-ae99e1807bd0", "tags": {"region": "us"}} delete-company: Unauthorized: parameters: @@ -603,7 +620,7 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "/companies?page=1&pageSize=100"}, "self": {"href": "/companies"}}, "pageNumber": 1, "pageSize": 100, "results": [{"created": "2022-01-01T11:30:00Z", "createdByUserName": "Mike Smith", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [], "id": "51baa045-4836-4317-a42e-3542e991e581", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/3fa85f64-5717-4562-b3fc-2c963f66afa6/connections/51baa045-4836-4317-a42e-3542e991e581/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "My Test Company make testing software", "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "lastSync": "2022-01-01T12:30:00.000Z", "name": "My Test Company", "redirect": "https://link.codat.io/company/3fa85f64-5717-4562-b3fc-2c963f66afa6"}], "totalResults": 1} + application/json: {"_links": {"current": {"href": "/companies?page=1&pageSize=100"}, "self": {"href": "/companies"}}, "pageNumber": 1, "pageSize": 100, "results": [{"created": "2022-01-01T11:30:00Z", "createdByUserName": "Mike Smith", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [{"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}], "id": "51baa045-4836-4317-a42e-3542e991e581", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/3fa85f64-5717-4562-b3fc-2c963f66afa6/connections/51baa045-4836-4317-a42e-3542e991e581/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "My Test Company make testing software", "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "lastSync": "2022-01-01T12:30:00.000Z", "name": "My Test Company", "redirect": "https://link.codat.io/company/3fa85f64-5717-4562-b3fc-2c963f66afa6"}], "totalResults": 1} List of Companies: parameters: query: @@ -613,7 +630,7 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "/companies?page=1&pageSize=100"}, "self": {"href": "/companies"}}, "pageNumber": 1, "pageSize": 100, "results": [{"created": "2022-01-01T11:30:00Z", "createdByUserName": "Joe Bloggs", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [], "id": "51baa045-4836-4317-a42e-3542e991e581", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/d1568dde-adf6-11ed-afa1-0242ac120002/connections/51baa045-4836-4317-a42e-3542e991e581/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "Technology services, including web and app design and development", "id": "d1568dde-adf6-11ed-afa1-0242ac120002", "lastSync": "2022-01-01T12:30:00.000Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/d1568dde-adf6-11ed-afa1-0242ac120002"}, {"created": "2022-01-01T11:30:00Z", "createdByUserName": "Mike Smith", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [], "id": "a70bc148-dc21-46b2-a257-d9c58ac15cbb", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/096db70b-78de-4ff0-aa98-299cb5fe17a0/connections/a70bc148-dc21-46b2-a257-d9c58ac15cbb/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "A new digital agency with a passion for creating amazing digital experiences", "id": "096db70b-78de-4ff0-aa98-299cb5fe17a0", "lastSync": "2022-01-01T12:30:00.000Z", "name": "Godata", "redirect": "https://link.codat.io/company/096db70b-78de-4ff0-aa98-299cb5fe17a0"}], "totalResults": 2} + application/json: {"_links": {"current": {"href": "/companies?page=1&pageSize=100"}, "self": {"href": "/companies"}}, "pageNumber": 1, "pageSize": 100, "results": [{"created": "2022-01-01T11:30:00Z", "createdByUserName": "Joe Bloggs", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [{"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}], "id": "51baa045-4836-4317-a42e-3542e991e581", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/d1568dde-adf6-11ed-afa1-0242ac120002/connections/51baa045-4836-4317-a42e-3542e991e581/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "Technology services, including web and app design and development", "id": "d1568dde-adf6-11ed-afa1-0242ac120002", "lastSync": "2022-01-01T12:30:00.000Z", "name": "Technicalium", "redirect": "https://link.codat.io/company/d1568dde-adf6-11ed-afa1-0242ac120002"}, {"created": "2022-01-01T11:30:00Z", "createdByUserName": "Mike Smith", "dataConnections": [{"created": "2022-01-01T11:30:00Z", "dataConnectionErrors": [{"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}], "id": "a70bc148-dc21-46b2-a257-d9c58ac15cbb", "integrationId": "1c312d69-e638-46d4-ad31-72e6c3ba8390", "integrationKey": "vjms", "lastSync": "2022-01-01T12:30:00.000Z", "linkUrl": "https://link-api.codat.io/companies/096db70b-78de-4ff0-aa98-299cb5fe17a0/connections/a70bc148-dc21-46b2-a257-d9c58ac15cbb/start", "platformName": "Pandle", "sourceId": "396c3158-5dd7-481b-a7c4-a795ca31792b", "sourceType": "Accounting", "status": "Linked"}], "description": "A new digital agency with a passion for creating amazing digital experiences", "id": "096db70b-78de-4ff0-aa98-299cb5fe17a0", "lastSync": "2022-01-01T12:30:00.000Z", "name": "Godata", "redirect": "https://link.codat.io/company/096db70b-78de-4ff0-aa98-299cb5fe17a0"}], "totalResults": 2} Malformed query: parameters: query: @@ -640,27 +657,27 @@ examples: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "groups": [], "name": "New Name"} + application/json: {"description": "Requested early access to the new financing scheme.", "name": "New Name"} responses: "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739"} + application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [{"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} "401": {} Update description: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" requestBody: - application/json: {"description": "Additional documents required", "groups": [], "name": "Same name"} + application/json: {"description": "Additional documents required", "name": "Same name"} responses: "200": - application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739"} + application/json: {"created": "2022-01-01T12:00:00.000Z", "createdByUserName": "string", "dataConnections": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "description": "Requested early access to the new financing scheme.", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "lastSync": "2022-01-01T12:00:00.000Z", "name": "string", "redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739", "tags": {"region": "us", "uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"}} "401": {} Unauthorized: parameters: path: companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" requestBody: - application/json: {"description": "Requested early access to the new financing scheme.", "groups": [], "name": "Bank of Dave"} + application/json: {"description": "Requested early access to the new financing scheme.", "name": "Bank of Dave"} responses: "401": application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} @@ -772,7 +789,7 @@ examples: orderBy: "-modifiedDate" responses: "200": - application/json: {"_links": {"current": {"href": "string"}, "next": {"href": "string"}, "previous": {"href": "string"}, "self": {"href": "string"}}, "pageNumber": 0, "pageSize": 0, "results": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "totalResults": 0} + application/json: {"_links": {"current": {"href": "string"}, "next": {"href": "string"}, "previous": {"href": "string"}, "self": {"href": "string"}}, "pageNumber": 0, "pageSize": 0, "results": [{"created": "2022-10-27T09:53:29Z", "dataConnectionErrors": [{"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}, {"erroredOnUtc": "2022-10-23T00:00:00Z", "resolvedOnUtc": "2022-10-23T00:00:00Z"}], "id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c", "integrationKey": "dfxm", "lastSync": "2022-10-27T10:22:43.6464237Z", "linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start", "platformName": "Basiq", "sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee", "sourceType": "Banking", "status": "Linked"}], "totalResults": 0} Malformed query: parameters: path: @@ -1420,8 +1437,26 @@ examples: Webhook consumers: responses: "200": - application/json: {"results": [{"companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "disabled": false, "eventTypes": ["DataSyncCompleted"], "id": "12571faf-0898-47e7-afdd-0fe9eb0a9bf5", "url": "https://example.com/webhoook-consumers/sync-complete"}, {"companyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "disabled": true, "eventTypes": ["DatasetDataChanged"], "id": "ca3cac86-7925-4759-abc2-96405780fdfa", "url": "https://example.com/webhoook-consumers/dataset-changed"}]} + application/json: {"results": [{"disabled": false, "eventTypes": ["DataSyncCompleted"], "id": "12571faf-0898-47e7-afdd-0fe9eb0a9bf5", "url": "https://example.com/webhoook-consumers/sync-complete"}, {"disabled": true, "eventTypes": ["DatasetDataChanged"], "id": "ca3cac86-7925-4759-abc2-96405780fdfa", "url": "https://example.com/webhoook-consumers/dataset-changed"}]} Malformed query: responses: "400": application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400} + add-product: + Unauthorized: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + productIdentifier: "lending" + responses: + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} + remove-product: + Unauthorized: + parameters: + path: + companyId: "8a210b68-6988-11ed-a1eb-0242ac120002" + productIdentifier: "expenses" + responses: + "401": + application/json: {"canBeRetried": "Unknown", "correlationId": "7eb40d6b415d7bcd99ce658268284056", "detailedErrorCode": 0, "error": "Unauthorized", "service": "PublicApi", "statusCode": 401} diff --git a/platform/.speakeasy/gen.yaml b/platform/.speakeasy/gen.yaml index 1f5b9908b..d67c440cd 100644 --- a/platform/.speakeasy/gen.yaml +++ b/platform/.speakeasy/gen.yaml @@ -11,7 +11,7 @@ generation: oAuth2ClientCredentialsEnabled: false telemetryEnabled: true go: - version: 3.4.0 + version: 4.0.0 additionalDependencies: {} allowUnknownFieldsInWeakUnions: false clientServerStatusCodesAsErrors: true diff --git a/platform/README.md b/platform/README.md index 8688c4acf..0de1ee653 100644 --- a/platform/README.md +++ b/platform/README.md @@ -24,7 +24,6 @@ These end points cover creating and managing your companies, data connections, a | Companies | Create and manage your SMB users' companies. | | Connections | Create new and manage existing data connections for a company. | | Connection management | Configure connection management UI and retrieve access tokens for authentication. | -| Groups | Define and manage sets of companies based on a chosen characteristic. | | Webhooks | Create and manage webhooks that listen to Codat's events. | | Integrations | Get a list of integrations supported by Codat and their logos. | | Refresh data | Initiate data refreshes, view pull status and history. | @@ -46,7 +45,6 @@ These end points cover creating and managing your companies, data connections, a * [Server Selection](#server-selection) * [Custom HTTP Client](#custom-http-client) * [Authentication](#authentication) -* [Special Types](#special-types) @@ -69,8 +67,8 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) @@ -105,10 +103,12 @@ func main() { ### [Companies](docs/sdks/companies/README.md) +* [AddProduct](docs/sdks/companies/README.md#addproduct) - Add product * [Create](docs/sdks/companies/README.md#create) - Create company * [Delete](docs/sdks/companies/README.md#delete) - Delete a company * [Get](docs/sdks/companies/README.md#get) - Get company * [List](docs/sdks/companies/README.md#list) - List companies +* [RemoveProduct](docs/sdks/companies/README.md#removeproduct) - Remove product * [Update](docs/sdks/companies/README.md#update) - Update company ### [ConnectionManagement](docs/sdks/connectionmanagement/README.md) @@ -136,13 +136,6 @@ func main() { * [List](docs/sdks/customdatatype/README.md#list) - List custom data type records * [Refresh](docs/sdks/customdatatype/README.md#refresh) - Refresh custom data type -### [Groups](docs/sdks/groups/README.md) - -* [AddCompany](docs/sdks/groups/README.md#addcompany) - Add company -* [Create](docs/sdks/groups/README.md#create) - Create group -* [List](docs/sdks/groups/README.md#list) - List groups -* [RemoveCompany](docs/sdks/groups/README.md#removecompany) - Remove company - ### [Integrations](docs/sdks/integrations/README.md) * [Get](docs/sdks/integrations/README.md#get) - Get integration @@ -180,11 +173,11 @@ func main() { ### [Webhooks](docs/sdks/webhooks/README.md) -* [~~Create~~](docs/sdks/webhooks/README.md#create) - Create webhook :warning: **Deprecated** +* [~~Create~~](docs/sdks/webhooks/README.md#create) - Create webhook (legacy) :warning: **Deprecated** * [CreateConsumer](docs/sdks/webhooks/README.md#createconsumer) - Create webhook consumer * [DeleteConsumer](docs/sdks/webhooks/README.md#deleteconsumer) - Delete webhook consumer -* [~~Get~~](docs/sdks/webhooks/README.md#get) - Get webhook :warning: **Deprecated** -* [~~List~~](docs/sdks/webhooks/README.md#list) - List webhooks :warning: **Deprecated** +* [~~Get~~](docs/sdks/webhooks/README.md#get) - Get webhook (legacy) :warning: **Deprecated** +* [~~List~~](docs/sdks/webhooks/README.md#list) - List webhooks (legacy) :warning: **Deprecated** * [ListConsumers](docs/sdks/webhooks/README.md#listconsumers) - List webhook consumers @@ -194,12 +187,6 @@ func main() { - -## Special Types - - - - ## Retries @@ -211,9 +198,9 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" "log" "pkg/models/operations" ) @@ -255,9 +242,9 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" "log" ) @@ -297,12 +284,16 @@ func main() { ## Error Handling -Handling errors in this SDK should largely match your expectations. All operations return a response object or an error, they will never return both. When specified by the OpenAPI spec document, the SDK will return the appropriate subclass. +Handling errors in this SDK should largely match your expectations. All operations return a response object or an error, they will never return both. + +By Default, an API error will return `sdkerrors.SDKError`. When custom error responses are specified for an operation, the SDK may also return their associated error. You can refer to respective *Errors* tables in SDK docs for more details on possible error types for each operation. + +For example, the `CreateAPIKey` function may return the following errors: -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,409,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 409, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ### Example @@ -312,9 +303,9 @@ package main import ( "context" "errors" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) @@ -366,8 +357,8 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) @@ -402,8 +393,8 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) @@ -476,8 +467,8 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) diff --git a/platform/RELEASES.md b/platform/RELEASES.md index ef56c2caf..0bc9da13e 100644 --- a/platform/RELEASES.md +++ b/platform/RELEASES.md @@ -118,4 +118,14 @@ Based on: ### Generated - [go v3.4.0] platform ### Releases -- [Go v3.4.0] https://github.com/codatio/client-sdk-go/releases/tag/platform/v3.4.0 - platform \ No newline at end of file +- [Go v3.4.0] https://github.com/codatio/client-sdk-go/releases/tag/platform/v3.4.0 - platform + +## 2024-10-29 19:31:45 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.423.1 (2.442.11) https://github.com/speakeasy-api/speakeasy +### Generated +- [go v4.0.0] platform +### Releases +- [Go v4.0.0] https://github.com/codatio/client-sdk-go/releases/tag/platform/v4.0.0 - platform \ No newline at end of file diff --git a/platform/USAGE.md b/platform/USAGE.md index 82cfcf6ac..883ae6340 100644 --- a/platform/USAGE.md +++ b/platform/USAGE.md @@ -4,8 +4,8 @@ package main import ( "context" - platform "github.com/codatio/client-sdk-go/platform/v3" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "log" ) diff --git a/platform/codatplatform.go b/platform/codatplatform.go index fcb252c07..c35d54ac8 100644 --- a/platform/codatplatform.go +++ b/platform/codatplatform.go @@ -5,10 +5,10 @@ package platform import ( "context" "fmt" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "time" ) @@ -84,7 +84,6 @@ func (c *sdkConfiguration) GetServerDetails() (string, map[string]string) { // | Companies | Create and manage your SMB users' companies. | // | Connections | Create new and manage existing data connections for a company. | // | Connection management | Configure connection management UI and retrieve access tokens for authentication. | -// | Groups | Define and manage sets of companies based on a chosen characteristic. | // | Webhooks | Create and manage webhooks that listen to Codat's events. | // | Integrations | Get a list of integrations supported by Codat and their logos. | // | Refresh data | Initiate data refreshes, view pull status and history. | @@ -108,8 +107,6 @@ type CodatPlatform struct { PushData *PushData // Initiate data refreshes, view pull status and history. RefreshData *RefreshData - // Define and manage sets of companies based on a chosen characteristic. - Groups *Groups // Get a list of integrations supported by Codat and their logos. Integrations *Integrations // Configure and pull additional data you can include in Codat's standard data types. @@ -193,9 +190,9 @@ func New(opts ...SDKOption) *CodatPlatform { sdkConfiguration: sdkConfiguration{ Language: "go", OpenAPIDocVersion: "3.0.0", - SDKVersion: "3.4.0", - GenVersion: "2.415.6", - UserAgent: "speakeasy-sdk/go 3.4.0 2.415.6 3.0.0 github.com/codatio/client-sdk-go/platform", + SDKVersion: "4.0.0", + GenVersion: "2.442.11", + UserAgent: "speakeasy-sdk/go 4.0.0 2.442.11 3.0.0 github.com/codatio/client-sdk-go/platform", Hooks: hooks.New(), }, } @@ -229,8 +226,6 @@ func New(opts ...SDKOption) *CodatPlatform { sdk.RefreshData = newRefreshData(sdk.sdkConfiguration) - sdk.Groups = newGroups(sdk.sdkConfiguration) - sdk.Integrations = newIntegrations(sdk.sdkConfiguration) sdk.SupplementalData = newSupplementalData(sdk.sdkConfiguration) diff --git a/platform/companies.go b/platform/companies.go index 612341df3..d5b6ac01f 100644 --- a/platform/companies.go +++ b/platform/companies.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "net/url" ) @@ -29,6 +28,212 @@ func newCompanies(sdkConfig sdkConfiguration) *Companies { } } +// AddProduct - Add product +// Use the *Add product* endpoint to enable a product for the company specified by `companyId`. +// +// > Note: This feature is currently in alpha and available only to participants in the development program. +func (s *Companies) AddProduct(ctx context.Context, request operations.AddProductRequest, opts ...operations.Option) (*operations.AddProductResponse, error) { + hookCtx := hooks.HookContext{ + Context: ctx, + OperationID: "add-product", + OAuth2Scopes: []string{}, + SecuritySource: s.sdkConfiguration.Security, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + opURL, err := utils.GenerateURL(ctx, baseURL, "/companies/{companyId}/products/{productIdentifier}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "PUT", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } else { + retryConfig = &retry.Config{ + Strategy: "backoff", Backoff: &retry.BackoffStrategy{ + InitialInterval: 500, + MaxInterval: 60000, + Exponent: 1.5, + MaxElapsedTime: 3600000, + }, + RetryConnectionErrors: true, + } + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "408", + "429", + "5XX", + }, + }, func() (*http.Response, error) { + if req.Body != nil { + copyBody, err := req.GetBody() + if err != nil { + return nil, err + } + req.Body = copyBody + } + + req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, backoff.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"401", "402", "403", "404", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.AddProductResponse{ + StatusCode: httpRes.StatusCode, + ContentType: httpRes.Header.Get("Content-Type"), + RawResponse: httpRes, + } + + switch { + case httpRes.StatusCode == 204: + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 402: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 429: + fallthrough + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out sdkerrors.ErrorMessage + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + fallthrough + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + // Create company // Use the *Create company* endpoint to create a new [company](https://docs.codat.io/platform-api#/schemas/Company) that represents your customer in Codat. // @@ -189,21 +394,11 @@ func (s *Companies) Create(ctx context.Context, request *shared.CompanyRequestBo RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -215,11 +410,10 @@ func (s *Companies) Create(ctx context.Context, request *shared.CompanyRequestBo res.Company = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -237,7 +431,7 @@ func (s *Companies) Create(ctx context.Context, request *shared.CompanyRequestBo case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -249,28 +443,25 @@ func (s *Companies) Create(ctx context.Context, request *shared.CompanyRequestBo return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -430,16 +621,6 @@ func (s *Companies) Delete(ctx context.Context, request operations.DeleteCompany RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 204: case httpRes.StatusCode == 401: @@ -457,7 +638,7 @@ func (s *Companies) Delete(ctx context.Context, request operations.DeleteCompany case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -469,28 +650,25 @@ func (s *Companies) Delete(ctx context.Context, request operations.DeleteCompany return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -650,21 +828,11 @@ func (s *Companies) Get(ctx context.Context, request operations.GetCompanyReques RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -676,11 +844,10 @@ func (s *Companies) Get(ctx context.Context, request operations.GetCompanyReques res.Company = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -698,7 +865,7 @@ func (s *Companies) Get(ctx context.Context, request operations.GetCompanyReques case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -710,28 +877,25 @@ func (s *Companies) Get(ctx context.Context, request operations.GetCompanyReques return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -895,21 +1059,11 @@ func (s *Companies) List(ctx context.Context, request operations.ListCompaniesRe RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -921,11 +1075,10 @@ func (s *Companies) List(ctx context.Context, request operations.ListCompaniesRe res.Companies = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -945,7 +1098,7 @@ func (s *Companies) List(ctx context.Context, request operations.ListCompaniesRe case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -957,28 +1110,231 @@ func (s *Companies) List(ctx context.Context, request operations.ListCompaniesRe return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } + return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) + } + + return res, nil + +} + +// RemoveProduct - Remove product +// Use the *Remove product* endpoint to disable a product for the company specified by `companyId`. +// +// > Note: This feature is currently in alpha and available only to participants in the development program. +func (s *Companies) RemoveProduct(ctx context.Context, request operations.RemoveProductRequest, opts ...operations.Option) (*operations.RemoveProductResponse, error) { + hookCtx := hooks.HookContext{ + Context: ctx, + OperationID: "remove-product", + OAuth2Scopes: []string{}, + SecuritySource: s.sdkConfiguration.Security, + } + + o := operations.Options{} + supportedOptions := []string{ + operations.SupportedOptionRetries, + operations.SupportedOptionTimeout, + } + + for _, opt := range opts { + if err := opt(&o, supportedOptions...); err != nil { + return nil, fmt.Errorf("error applying option: %w", err) + } + } + + baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) + opURL, err := utils.GenerateURL(ctx, baseURL, "/companies/{companyId}/products/{productIdentifier}", request, nil) + if err != nil { + return nil, fmt.Errorf("error generating URL: %w", err) + } + timeout := o.Timeout + if timeout == nil { + timeout = s.sdkConfiguration.Timeout + } + + if timeout != nil { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, *timeout) + defer cancel() + } + + req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil) + if err != nil { + return nil, fmt.Errorf("error creating request: %w", err) + } + req.Header.Set("Accept", "application/json") + req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) + + if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { + return nil, err + } + + globalRetryConfig := s.sdkConfiguration.RetryConfig + retryConfig := o.Retries + if retryConfig == nil { + if globalRetryConfig != nil { + retryConfig = globalRetryConfig + } else { + retryConfig = &retry.Config{ + Strategy: "backoff", Backoff: &retry.BackoffStrategy{ + InitialInterval: 500, + MaxInterval: 60000, + Exponent: 1.5, + MaxElapsedTime: 3600000, + }, + RetryConnectionErrors: true, + } + } + } + + var httpRes *http.Response + if retryConfig != nil { + httpRes, err = utils.Retry(ctx, utils.Retries{ + Config: retryConfig, + StatusCodes: []string{ + "408", + "429", + "5XX", + }, + }, func() (*http.Response, error) { + if req.Body != nil { + copyBody, err := req.GetBody() + if err != nil { + return nil, err + } + req.Body = copyBody + } + + req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, backoff.Permanent(err) + } + + httpRes, err := s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + } + return httpRes, err + }) + + if err != nil { + return nil, err + } else { + httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } else { + req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) + if err != nil { + return nil, err + } + + httpRes, err = s.sdkConfiguration.Client.Do(req) + if err != nil || httpRes == nil { + if err != nil { + err = fmt.Errorf("error sending request: %w", err) + } else { + err = fmt.Errorf("error sending request: no response") + } + + _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) + return nil, err + } else if utils.MatchStatusCodes([]string{"401", "402", "403", "404", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { + _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) + if err != nil { + return nil, err + } else if _httpRes != nil { + httpRes = _httpRes + } + } else { + httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) + if err != nil { + return nil, err + } + } + } + + res := &operations.RemoveProductResponse{ + StatusCode: httpRes.StatusCode, + ContentType: httpRes.Header.Get("Content-Type"), + RawResponse: httpRes, + } + + switch { + case httpRes.StatusCode == 204: + case httpRes.StatusCode == 401: + fallthrough + case httpRes.StatusCode == 402: + fallthrough + case httpRes.StatusCode == 403: + fallthrough + case httpRes.StatusCode == 404: + fallthrough + case httpRes.StatusCode == 429: + fallthrough + case httpRes.StatusCode == 500: + fallthrough + case httpRes.StatusCode == 503: + switch { + case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + + var out sdkerrors.ErrorMessage + if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { + return nil, err + } + + return nil, &out + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) + } + case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: + fallthrough + case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } + return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) + default: + rawBody, err := utils.ConsumeRawBody(httpRes) + if err != nil { + return nil, err + } return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -988,7 +1344,6 @@ func (s *Companies) List(ctx context.Context, request operations.ListCompaniesRe // Update company // Use the *Update company* endpoint to update both the name and description of the company. -// If you use [groups](https://docs.codat.io/platform-api#/schemas/Group) to manage a set of companies, use the [Add company](https://docs.codat.io/platform-api#/operations/add-company-to-group) or [Remove company](https://docs.codat.io/platform-api#/operations/remove-company-from-group) endpoints to add or remove a company from a group. // // A [company](https://docs.codat.io/platform-api#/schemas/Company) represents a business sharing access to their data. // Each company can have multiple [connections](https://docs.codat.io/platform-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data. @@ -1145,21 +1500,11 @@ func (s *Companies) Update(ctx context.Context, request operations.UpdateCompany RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1171,11 +1516,10 @@ func (s *Companies) Update(ctx context.Context, request operations.UpdateCompany res.Company = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -1193,7 +1537,7 @@ func (s *Companies) Update(ctx context.Context, request operations.UpdateCompany case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1205,28 +1549,25 @@ func (s *Companies) Update(ctx context.Context, request operations.UpdateCompany return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/connectionmanagement.go b/platform/connectionmanagement.go index 1c9f9de14..d16810405 100644 --- a/platform/connectionmanagement.go +++ b/platform/connectionmanagement.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -182,21 +181,11 @@ func (s *ConnectionManagement) GetAccessToken(ctx context.Context, request opera RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -208,11 +197,10 @@ func (s *ConnectionManagement) GetAccessToken(ctx context.Context, request opera res.ConnectionManagementAccessToken = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -230,7 +218,7 @@ func (s *ConnectionManagement) GetAccessToken(ctx context.Context, request opera case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -242,28 +230,25 @@ func (s *ConnectionManagement) GetAccessToken(ctx context.Context, request opera return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/connections.go b/platform/connections.go index b37f2b943..de1f59494 100644 --- a/platform/connections.go +++ b/platform/connections.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -185,21 +184,11 @@ func (s *Connections) Create(ctx context.Context, request operations.CreateConne RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -211,11 +200,10 @@ func (s *Connections) Create(ctx context.Context, request operations.CreateConne res.Connection = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -233,7 +221,7 @@ func (s *Connections) Create(ctx context.Context, request operations.CreateConne case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -245,28 +233,25 @@ func (s *Connections) Create(ctx context.Context, request operations.CreateConne return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -424,16 +409,6 @@ func (s *Connections) Delete(ctx context.Context, request operations.DeleteConne RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: case httpRes.StatusCode == 401: @@ -451,7 +426,7 @@ func (s *Connections) Delete(ctx context.Context, request operations.DeleteConne case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -463,28 +438,25 @@ func (s *Connections) Delete(ctx context.Context, request operations.DeleteConne return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -641,21 +613,11 @@ func (s *Connections) Get(ctx context.Context, request operations.GetConnectionR RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -667,11 +629,10 @@ func (s *Connections) Get(ctx context.Context, request operations.GetConnectionR res.Connection = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -689,7 +650,7 @@ func (s *Connections) Get(ctx context.Context, request operations.GetConnectionR case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -701,28 +662,25 @@ func (s *Connections) Get(ctx context.Context, request operations.GetConnectionR return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -883,21 +841,11 @@ func (s *Connections) List(ctx context.Context, request operations.ListConnectio RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -909,11 +857,10 @@ func (s *Connections) List(ctx context.Context, request operations.ListConnectio res.Connections = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -933,7 +880,7 @@ func (s *Connections) List(ctx context.Context, request operations.ListConnectio case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -945,28 +892,25 @@ func (s *Connections) List(ctx context.Context, request operations.ListConnectio return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1129,21 +1073,11 @@ func (s *Connections) Unlink(ctx context.Context, request operations.UnlinkConne RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1155,11 +1089,10 @@ func (s *Connections) Unlink(ctx context.Context, request operations.UnlinkConne res.Connection = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -1177,7 +1110,7 @@ func (s *Connections) Unlink(ctx context.Context, request operations.UnlinkConne case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1189,28 +1122,25 @@ func (s *Connections) Unlink(ctx context.Context, request operations.UnlinkConne return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1373,21 +1303,11 @@ func (s *Connections) UpdateAuthorization(ctx context.Context, request operation RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1399,11 +1319,10 @@ func (s *Connections) UpdateAuthorization(ctx context.Context, request operation res.Connection = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -1421,7 +1340,7 @@ func (s *Connections) UpdateAuthorization(ctx context.Context, request operation case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1433,28 +1352,25 @@ func (s *Connections) UpdateAuthorization(ctx context.Context, request operation return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/corssettings.go b/platform/corssettings.go index 7d955f1de..368c48223 100644 --- a/platform/corssettings.go +++ b/platform/corssettings.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "net/url" ) @@ -181,21 +180,11 @@ func (s *CorsSettings) Get(ctx context.Context, opts ...operations.Option) (*ope RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -207,11 +196,10 @@ func (s *CorsSettings) Get(ctx context.Context, opts ...operations.Option) (*ope res.ConnectionManagementAllowedOrigins = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -229,7 +217,7 @@ func (s *CorsSettings) Get(ctx context.Context, opts ...operations.Option) (*ope case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -241,28 +229,25 @@ func (s *CorsSettings) Get(ctx context.Context, opts ...operations.Option) (*ope return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -429,21 +414,11 @@ func (s *CorsSettings) Set(ctx context.Context, request *shared.ConnectionManage RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -455,11 +430,10 @@ func (s *CorsSettings) Set(ctx context.Context, request *shared.ConnectionManage res.ConnectionManagementAllowedOrigins = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -477,7 +451,7 @@ func (s *CorsSettings) Set(ctx context.Context, request *shared.ConnectionManage case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -489,28 +463,25 @@ func (s *CorsSettings) Set(ctx context.Context, request *shared.ConnectionManage return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/customdatatype.go b/platform/customdatatype.go index f16310514..85a5ddc83 100644 --- a/platform/customdatatype.go +++ b/platform/customdatatype.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -193,21 +192,11 @@ func (s *CustomDataType) Configure(ctx context.Context, request operations.Confi RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -219,11 +208,10 @@ func (s *CustomDataType) Configure(ctx context.Context, request operations.Confi res.CustomDataTypeConfiguration = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -241,7 +229,7 @@ func (s *CustomDataType) Configure(ctx context.Context, request operations.Confi case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -253,28 +241,25 @@ func (s *CustomDataType) Configure(ctx context.Context, request operations.Confi return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -433,21 +418,11 @@ func (s *CustomDataType) GetConfiguration(ctx context.Context, request operation RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -459,11 +434,10 @@ func (s *CustomDataType) GetConfiguration(ctx context.Context, request operation res.CustomDataTypeRecords = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -481,7 +455,7 @@ func (s *CustomDataType) GetConfiguration(ctx context.Context, request operation case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -493,28 +467,25 @@ func (s *CustomDataType) GetConfiguration(ctx context.Context, request operation return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -677,21 +648,11 @@ func (s *CustomDataType) List(ctx context.Context, request operations.ListCustom RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -703,11 +664,10 @@ func (s *CustomDataType) List(ctx context.Context, request operations.ListCustom res.CustomDataTypeRecords = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -729,7 +689,7 @@ func (s *CustomDataType) List(ctx context.Context, request operations.ListCustom case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -741,28 +701,25 @@ func (s *CustomDataType) List(ctx context.Context, request operations.ListCustom return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -919,21 +876,11 @@ func (s *CustomDataType) Refresh(ctx context.Context, request operations.Refresh RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -945,11 +892,10 @@ func (s *CustomDataType) Refresh(ctx context.Context, request operations.Refresh res.PullOperation = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -969,7 +915,7 @@ func (s *CustomDataType) Refresh(ctx context.Context, request operations.Refresh case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -981,28 +927,25 @@ func (s *CustomDataType) Refresh(ctx context.Context, request operations.Refresh return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/docs/pkg/models/operations/addcompanytogrouprequest.md b/platform/docs/pkg/models/operations/addcompanytogrouprequest.md deleted file mode 100644 index ed5c4a3f5..000000000 --- a/platform/docs/pkg/models/operations/addcompanytogrouprequest.md +++ /dev/null @@ -1,9 +0,0 @@ -# AddCompanyToGroupRequest - - -## Fields - -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `CompanyGroupAssignment` | [*shared.CompanyGroupAssignment](../../../pkg/models/shared/companygroupassignment.md) | :heavy_minus_sign: | N/A | | -| `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/addproductrequest.md b/platform/docs/pkg/models/operations/addproductrequest.md new file mode 100644 index 000000000..56bc7e14e --- /dev/null +++ b/platform/docs/pkg/models/operations/addproductrequest.md @@ -0,0 +1,9 @@ +# AddProductRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | +| `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ProductIdentifier` | *string* | :heavy_check_mark: | Human-readable product identifier for a product. | bank-feeds | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/removecompanyfromgroupresponse.md b/platform/docs/pkg/models/operations/addproductresponse.md similarity index 97% rename from platform/docs/pkg/models/operations/removecompanyfromgroupresponse.md rename to platform/docs/pkg/models/operations/addproductresponse.md index 855ac90c1..b2c155aff 100644 --- a/platform/docs/pkg/models/operations/removecompanyfromgroupresponse.md +++ b/platform/docs/pkg/models/operations/addproductresponse.md @@ -1,4 +1,4 @@ -# RemoveCompanyFromGroupResponse +# AddProductResponse ## Fields diff --git a/platform/docs/pkg/models/operations/deleteapikeyresponse.md b/platform/docs/pkg/models/operations/deleteapikeyresponse.md index 6c9263776..095adae9e 100644 --- a/platform/docs/pkg/models/operations/deleteapikeyresponse.md +++ b/platform/docs/pkg/models/operations/deleteapikeyresponse.md @@ -6,6 +6,6 @@ | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | -| `ErrorMessage` | **sdkerrors.ErrorMessage* | :heavy_minus_sign: | Too many requests were made in a given amount of time. Wait a short period and then try again. | +| `ErrorMessage` | [*shared.ErrorMessage](../../../pkg/models/shared/errormessage.md) | :heavy_minus_sign: | Too many requests were made in a given amount of time. Wait a short period and then try again. | | `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/getcreateupdatemodeloptionsbydatatyperequest.md b/platform/docs/pkg/models/operations/getcreateupdatemodeloptionsbydatatyperequest.md index e742b1b30..9343015c8 100644 --- a/platform/docs/pkg/models/operations/getcreateupdatemodeloptionsbydatatyperequest.md +++ b/platform/docs/pkg/models/operations/getcreateupdatemodeloptionsbydatatyperequest.md @@ -7,4 +7,4 @@ | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | | `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `ConnectionID` | *string* | :heavy_check_mark: | Unique identifier for a connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | -| `DataType` | [shared.SchemaDataType](../../../pkg/models/shared/schemadatatype.md) | :heavy_check_mark: | The key of a Codat data type | invoices | \ No newline at end of file +| `DataType` | [shared.SchemaDataType](../../../pkg/models/shared/schemadatatype.md) | :heavy_check_mark: | The key of a Codat data type. | invoices | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/refreshdatatyperequest.md b/platform/docs/pkg/models/operations/refreshdatatyperequest.md index beaf79aa9..de1e012c3 100644 --- a/platform/docs/pkg/models/operations/refreshdatatyperequest.md +++ b/platform/docs/pkg/models/operations/refreshdatatyperequest.md @@ -7,4 +7,4 @@ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `ConnectionID` | **string* | :heavy_minus_sign: | Optionally, provide a data connection id to only queue pull operations on that connection. | | -| `DataType` | [shared.SchemaDataType](../../../pkg/models/shared/schemadatatype.md) | :heavy_check_mark: | The key of a Codat data type | invoices | \ No newline at end of file +| `DataType` | [shared.SchemaDataType](../../../pkg/models/shared/schemadatatype.md) | :heavy_check_mark: | The key of a Codat data type. | invoices | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/removecompanyfromgrouprequest.md b/platform/docs/pkg/models/operations/removecompanyfromgrouprequest.md deleted file mode 100644 index 37c3fa6b2..000000000 --- a/platform/docs/pkg/models/operations/removecompanyfromgrouprequest.md +++ /dev/null @@ -1,9 +0,0 @@ -# RemoveCompanyFromGroupRequest - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `GroupID` | *string* | :heavy_check_mark: | Unique identifier for the group. | 60d2fa12-8a04-11ee-b9d1-0242ac120002 | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/removeproductrequest.md b/platform/docs/pkg/models/operations/removeproductrequest.md new file mode 100644 index 000000000..2385c8332 --- /dev/null +++ b/platform/docs/pkg/models/operations/removeproductrequest.md @@ -0,0 +1,9 @@ +# RemoveProductRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | +| `CompanyID` | *string* | :heavy_check_mark: | Unique identifier for a company. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `ProductIdentifier` | *string* | :heavy_check_mark: | Human-readable product identifier for a product. | bank-feeds | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/creategroupresponse.md b/platform/docs/pkg/models/operations/removeproductresponse.md similarity index 82% rename from platform/docs/pkg/models/operations/creategroupresponse.md rename to platform/docs/pkg/models/operations/removeproductresponse.md index a2c4cef01..dcd389905 100644 --- a/platform/docs/pkg/models/operations/creategroupresponse.md +++ b/platform/docs/pkg/models/operations/removeproductresponse.md @@ -1,4 +1,4 @@ -# CreateGroupResponse +# RemoveProductResponse ## Fields @@ -6,6 +6,5 @@ | Field | Type | Required | Description | | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | -| `Group` | [*shared.Group](../../../pkg/models/shared/group.md) | :heavy_minus_sign: | Success | | `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/sdkerrors/errormessage.md b/platform/docs/pkg/models/sdkerrors/errormessage.md index a204d665a..f95c4e2f6 100644 --- a/platform/docs/pkg/models/sdkerrors/errormessage.md +++ b/platform/docs/pkg/models/sdkerrors/errormessage.md @@ -1,6 +1,6 @@ # ErrorMessage -Bad Request +Your API request was not properly authorized. ## Fields diff --git a/platform/docs/pkg/models/shared/company.md b/platform/docs/pkg/models/shared/company.md index 378573680..e54e352c8 100644 --- a/platform/docs/pkg/models/shared/company.md +++ b/platform/docs/pkg/models/shared/company.md @@ -18,5 +18,6 @@ When you create a company, you can specify a `name` and we will automatically ge | `ID` | *string* | :heavy_check_mark: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `LastSync` | **string* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | | `Name` | *string* | :heavy_check_mark: | The name of the company | Codat Ltd. | +| `Products` | []*string* | :heavy_minus_sign: | An array of products that are currently enabled for the company. | | | `Redirect` | *string* | :heavy_check_mark: | The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company. | https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739 | -| `Tags` | [*shared.CompanyTags](../../../pkg/models/shared/companytags.md) | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file +| `Tags` | map[string]*string* | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companydetails.md b/platform/docs/pkg/models/shared/companydetails.md index 4a9642098..a89dd17c9 100644 --- a/platform/docs/pkg/models/shared/companydetails.md +++ b/platform/docs/pkg/models/shared/companydetails.md @@ -11,5 +11,6 @@ | `ID` | *string* | :heavy_check_mark: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | | `LastSync` | **string* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | | `Name` | *string* | :heavy_check_mark: | The name of the company | Codat Ltd. | +| `Products` | []*string* | :heavy_minus_sign: | An array of products that are currently enabled for the company. | | | `Redirect` | *string* | :heavy_check_mark: | The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company. | https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739 | -| `Tags` | [*shared.Tags](../../../pkg/models/shared/tags.md) | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file +| `Tags` | map[string]*string* | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companygroupassignment.md b/platform/docs/pkg/models/shared/companygroupassignment.md deleted file mode 100644 index 9c65380f3..000000000 --- a/platform/docs/pkg/models/shared/companygroupassignment.md +++ /dev/null @@ -1,8 +0,0 @@ -# CompanyGroupAssignment - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `GroupID` | **string* | :heavy_minus_sign: | N/A | 60d2fa12-8a04-11ee-b9d1-0242ac120002 | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companyreference.md b/platform/docs/pkg/models/shared/companyreference.md index a9c3e1a09..846191395 100644 --- a/platform/docs/pkg/models/shared/companyreference.md +++ b/platform/docs/pkg/models/shared/companyreference.md @@ -7,4 +7,6 @@ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | `Description` | **string* | :heavy_minus_sign: | Additional information about the company. This can be used to store foreign IDs, references, etc. | Requested early access to the new financing scheme. | | `ID` | **string* | :heavy_minus_sign: | Unique identifier for your SMB in Codat. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `Name` | **string* | :heavy_minus_sign: | The name of the company | Codat Ltd. | \ No newline at end of file +| `Links` | [*shared.CompanyReferenceLinks](../../../pkg/models/shared/companyreferencelinks.md) | :heavy_minus_sign: | A collection of links for the company. | | +| `Name` | **string* | :heavy_minus_sign: | The name of the company | Codat Ltd. | +| `Tags` | map[string]*string* | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companyreferencelinks.md b/platform/docs/pkg/models/shared/companyreferencelinks.md new file mode 100644 index 000000000..18ebbd889 --- /dev/null +++ b/platform/docs/pkg/models/shared/companyreferencelinks.md @@ -0,0 +1,10 @@ +# CompanyReferenceLinks + +A collection of links for the company. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- | +| `Portal` | **string* | :heavy_minus_sign: | Link to the company page in the portal. | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companyrequestbody.md b/platform/docs/pkg/models/shared/companyrequestbody.md index 2a142a13e..1112f18df 100644 --- a/platform/docs/pkg/models/shared/companyrequestbody.md +++ b/platform/docs/pkg/models/shared/companyrequestbody.md @@ -6,5 +6,5 @@ | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | `Description` | **string* | :heavy_minus_sign: | Additional information about the company. This can be used to store foreign IDs, references, etc. | Requested early access to the new financing scheme. | -| `Groups` | [][shared.GroupRef](../../../pkg/models/shared/groupref.md) | :heavy_minus_sign: | Reference to the groups that the company is assigned to. | | -| `Name` | *string* | :heavy_check_mark: | Name of company being connected. | Bank of Dave | \ No newline at end of file +| `Name` | *string* | :heavy_check_mark: | Name of company being connected. | Bank of Dave | +| `Tags` | map[string]*string* | :heavy_minus_sign: | A collection of user-defined key-value pairs that store custom metadata against the company. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/companytags.md b/platform/docs/pkg/models/shared/companytags.md deleted file mode 100644 index cbbb3f90f..000000000 --- a/platform/docs/pkg/models/shared/companytags.md +++ /dev/null @@ -1,9 +0,0 @@ -# CompanyTags - -A collection of user-defined key-value pairs that store custom metadata against the company. - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/connection.md b/platform/docs/pkg/models/shared/connection.md index c0825639c..d6057383c 100644 --- a/platform/docs/pkg/models/shared/connection.md +++ b/platform/docs/pkg/models/shared/connection.md @@ -16,7 +16,6 @@ Before you can use a data connection to pull or push data, the company must gran | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `AdditionalProperties` | *any* | :heavy_minus_sign: | N/A | | | `ConnectionInfo` | map[string]*string* | :heavy_minus_sign: | N/A | | | `Created` | *string* | :heavy_check_mark: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | | `DataConnectionErrors` | [][shared.DataConnectionError](../../../pkg/models/shared/dataconnectionerror.md) | :heavy_minus_sign: | N/A | | diff --git a/platform/docs/pkg/models/shared/connectionmanagementallowedorigins.md b/platform/docs/pkg/models/shared/connectionmanagementallowedorigins.md index 95b4d4e9b..e95883ade 100644 --- a/platform/docs/pkg/models/shared/connectionmanagementallowedorigins.md +++ b/platform/docs/pkg/models/shared/connectionmanagementallowedorigins.md @@ -1,5 +1,7 @@ # ConnectionManagementAllowedOrigins +Success + ## Fields diff --git a/platform/docs/pkg/models/operations/addcompanytogroupresponse.md b/platform/docs/pkg/models/shared/connectionwebhook.md similarity index 83% rename from platform/docs/pkg/models/operations/addcompanytogroupresponse.md rename to platform/docs/pkg/models/shared/connectionwebhook.md index e0932a80c..67ab18649 100644 --- a/platform/docs/pkg/models/operations/addcompanytogroupresponse.md +++ b/platform/docs/pkg/models/shared/connectionwebhook.md @@ -1,11 +1,11 @@ -# AddCompanyToGroupResponse +# ConnectionWebhook ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Company` | [*shared.Company](../../../pkg/models/shared/company.md) | :heavy_minus_sign: | Success | {
"id": "0498e921-9b53-4396-a412-4f2f5983b0a2",
"name": "string",
"redirect": "https://link.codat.io/company/27628208-459c-46a2-a705-5641ce25f739",
"lastSync": "2022-01-01T12:00:00.000Z",
"created": "2022-01-01T12:00:00.000Z",
"createdByUserName": "string",
"tags": {
"region": "us",
"uid": "f6b0c253-16c7-4da1-a0c5-9c871e9c9d6c"
},
"dataConnections": [
{
"id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd",
"integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c",
"integrationKey": "dfxm",
"sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee",
"platformName": "Basiq",
"linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start",
"status": "Linked",
"lastSync": "2022-10-27T10:22:43.6464237Z",
"created": "2022-10-27T09:53:29Z",
"sourceType": "Banking"
}
]
} | -| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | -| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | | -| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `EventType` | **string* | :heavy_minus_sign: | The type of event. | connection.created | +| `GeneratedDate` | **string* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | +| `ID` | **string* | :heavy_minus_sign: | Unique identifier of the event. | ba29118f-5406-4e59-b05c-ba307ca38d01 | +| `Payload` | [*shared.ConnectionWebhookPayload](../../../pkg/models/shared/connectionwebhookpayload.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/connectionwebhookpayload.md b/platform/docs/pkg/models/shared/connectionwebhookpayload.md new file mode 100644 index 000000000..0c7788229 --- /dev/null +++ b/platform/docs/pkg/models/shared/connectionwebhookpayload.md @@ -0,0 +1,9 @@ +# ConnectionWebhookPayload + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `Connection` | [*shared.Connection](../../../pkg/models/shared/connection.md) | :heavy_minus_sign: | A connection represents a [company's](https://docs.codat.io/platform-api#/schemas/Company) connection to a data source and allows you to synchronize data (pull and/or push) with that source.

A company can have multiple data connections depending on the type of data source it is connecting to. For example, a single company can link to:

- [Accounting data](https://docs.codat.io/accounting-api/overview) - 1 active connection.
- [Banking data](https://docs.codat.io/banking-api/overview) - Multiple active connections.
- [Commerce data](https://docs.codat.io/commerce-api/overview) - Multiple active connections.
Any combination of accounting, banking, and commerce data connections is allowed.

Before you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview). | {
"id": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd",
"integrationId": "bf083d72-62c7-493e-aec9-81b4dbba7e2c",
"integrationKey": "dfxm",
"sourceId": "bdd831ce-eebd-4896-89a7-20e5ee8989ee",
"platformName": "Basiq",
"linkUrl": "https://link-api.codat.io/companies/86bd88cb-44ab-4dfb-b32f-87b19b14287f/connections/ee2eb431-c0fa-4dc9-93fa-d29781c12bcd/start",
"status": "Linked",
"lastSync": "2022-10-27T10:22:43.6464237Z",
"created": "2022-10-27T09:53:29Z",
"sourceType": "Banking"
} | +| `ReferenceCompany` | [*shared.CompanyReference](../../../pkg/models/shared/companyreference.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/datastatus.md b/platform/docs/pkg/models/shared/datastatus.md index 08183a434..0b10781b8 100644 --- a/platform/docs/pkg/models/shared/datastatus.md +++ b/platform/docs/pkg/models/shared/datastatus.md @@ -8,7 +8,7 @@ Describes the state of data in the Codat cache for a company and data type | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CurrentStatus` | [shared.Status](../../../pkg/models/shared/status.md) | :heavy_check_mark: | The current status of the dataset. | | -| `DataType` | [shared.DataTypes](../../../pkg/models/shared/datatypes.md) | :heavy_check_mark: | Available data types | invoices | +| `DataType` | [shared.DataStatusDataTypes](../../../pkg/models/shared/datastatusdatatypes.md) | :heavy_check_mark: | Available data types | invoices | | `LastSuccessfulSync` | *string* | :heavy_check_mark: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | | `LatestSuccessfulSyncID` | **string* | :heavy_minus_sign: | Unique identifier for the most recent successful sync of data type. | 8220fc90-55b6-47bc-9417-48ac6ea93101 | | `LatestSyncID` | **string* | :heavy_minus_sign: | Unique identifier for most recent sync of data type. | ad474a37-2003-478e-baee-9af9f1ec2fe3 | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/datastatusdatatypes.md b/platform/docs/pkg/models/shared/datastatusdatatypes.md new file mode 100644 index 000000000..a810312b0 --- /dev/null +++ b/platform/docs/pkg/models/shared/datastatusdatatypes.md @@ -0,0 +1,52 @@ +# DataStatusDataTypes + +Available data types + + +## Values + +| Name | Value | +| ------------------------------------------------- | ------------------------------------------------- | +| `DataStatusDataTypesAccountTransactions` | accountTransactions | +| `DataStatusDataTypesBalanceSheet` | balanceSheet | +| `DataStatusDataTypesBankAccounts` | bankAccounts | +| `DataStatusDataTypesBankTransactions` | bankTransactions | +| `DataStatusDataTypesBillCreditNotes` | billCreditNotes | +| `DataStatusDataTypesBillPayments` | billPayments | +| `DataStatusDataTypesBills` | bills | +| `DataStatusDataTypesCashFlowStatement` | cashFlowStatement | +| `DataStatusDataTypesChartOfAccounts` | chartOfAccounts | +| `DataStatusDataTypesCompany` | company | +| `DataStatusDataTypesCreditNotes` | creditNotes | +| `DataStatusDataTypesCustomers` | customers | +| `DataStatusDataTypesDirectCosts` | directCosts | +| `DataStatusDataTypesDirectIncomes` | directIncomes | +| `DataStatusDataTypesInvoices` | invoices | +| `DataStatusDataTypesItemReceipts` | itemReceipts | +| `DataStatusDataTypesItems` | items | +| `DataStatusDataTypesJournalEntries` | journalEntries | +| `DataStatusDataTypesJournals` | journals | +| `DataStatusDataTypesPaymentMethods` | paymentMethods | +| `DataStatusDataTypesPayments` | payments | +| `DataStatusDataTypesProfitAndLoss` | profitAndLoss | +| `DataStatusDataTypesPurchaseOrders` | purchaseOrders | +| `DataStatusDataTypesSalesOrders` | salesOrders | +| `DataStatusDataTypesSuppliers` | suppliers | +| `DataStatusDataTypesTaxRates` | taxRates | +| `DataStatusDataTypesTrackingCategories` | trackingCategories | +| `DataStatusDataTypesTransfers` | transfers | +| `DataStatusDataTypesBankingAccountBalances` | banking-accountBalances | +| `DataStatusDataTypesBankingAccounts` | banking-accounts | +| `DataStatusDataTypesBankingTransactionCategories` | banking-transactionCategories | +| `DataStatusDataTypesBankingTransactions` | banking-transactions | +| `DataStatusDataTypesCommerceCompanyInfo` | commerce-companyInfo | +| `DataStatusDataTypesCommerceCustomers` | commerce-customers | +| `DataStatusDataTypesCommerceDisputes` | commerce-disputes | +| `DataStatusDataTypesCommerceLocations` | commerce-locations | +| `DataStatusDataTypesCommerceOrders` | commerce-orders | +| `DataStatusDataTypesCommercePaymentMethods` | commerce-paymentMethods | +| `DataStatusDataTypesCommercePayments` | commerce-payments | +| `DataStatusDataTypesCommerceProductCategories` | commerce-productCategories | +| `DataStatusDataTypesCommerceProducts` | commerce-products | +| `DataStatusDataTypesCommerceTaxComponents` | commerce-taxComponents | +| `DataStatusDataTypesCommerceTransactions` | commerce-transactions | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/datatypes.md b/platform/docs/pkg/models/shared/datatypes.md index 61fa6bc31..4ad4b1019 100644 --- a/platform/docs/pkg/models/shared/datatypes.md +++ b/platform/docs/pkg/models/shared/datatypes.md @@ -1,52 +1,11 @@ # DataTypes -Available data types +## Fields -## Values - -| Name | Value | -| --------------------------------------- | --------------------------------------- | -| `DataTypesAccountTransactions` | accountTransactions | -| `DataTypesBalanceSheet` | balanceSheet | -| `DataTypesBankAccounts` | bankAccounts | -| `DataTypesBankTransactions` | bankTransactions | -| `DataTypesBillCreditNotes` | billCreditNotes | -| `DataTypesBillPayments` | billPayments | -| `DataTypesBills` | bills | -| `DataTypesCashFlowStatement` | cashFlowStatement | -| `DataTypesChartOfAccounts` | chartOfAccounts | -| `DataTypesCompany` | company | -| `DataTypesCreditNotes` | creditNotes | -| `DataTypesCustomers` | customers | -| `DataTypesDirectCosts` | directCosts | -| `DataTypesDirectIncomes` | directIncomes | -| `DataTypesInvoices` | invoices | -| `DataTypesItemReceipts` | itemReceipts | -| `DataTypesItems` | items | -| `DataTypesJournalEntries` | journalEntries | -| `DataTypesJournals` | journals | -| `DataTypesPaymentMethods` | paymentMethods | -| `DataTypesPayments` | payments | -| `DataTypesProfitAndLoss` | profitAndLoss | -| `DataTypesPurchaseOrders` | purchaseOrders | -| `DataTypesSalesOrders` | salesOrders | -| `DataTypesSuppliers` | suppliers | -| `DataTypesTaxRates` | taxRates | -| `DataTypesTrackingCategories` | trackingCategories | -| `DataTypesTransfers` | transfers | -| `DataTypesBankingAccountBalances` | banking-accountBalances | -| `DataTypesBankingAccounts` | banking-accounts | -| `DataTypesBankingTransactionCategories` | banking-transactionCategories | -| `DataTypesBankingTransactions` | banking-transactions | -| `DataTypesCommerceCompanyInfo` | commerce-companyInfo | -| `DataTypesCommerceCustomers` | commerce-customers | -| `DataTypesCommerceDisputes` | commerce-disputes | -| `DataTypesCommerceLocations` | commerce-locations | -| `DataTypesCommerceOrders` | commerce-orders | -| `DataTypesCommercePaymentMethods` | commerce-paymentMethods | -| `DataTypesCommercePayments` | commerce-payments | -| `DataTypesCommerceProductCategories` | commerce-productCategories | -| `DataTypesCommerceProducts` | commerce-products | -| `DataTypesCommerceTaxComponents` | commerce-taxComponents | -| `DataTypesCommerceTransactions` | commerce-transactions | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `ConnectionID` | **string* | :heavy_minus_sign: | Unique identifier for a company's data connection. | 2e9d2c44-f675-40ba-8049-353bfcb5e171 | +| `DataType` | [*shared.DataType](../../../pkg/models/shared/datatype.md) | :heavy_minus_sign: | Available data types | invoices | +| `RecordsModified` | **bool* | :heavy_minus_sign: | `True` if records have been created, updated or deleted in Codat's cache. | false | +| `Status` | [*shared.Status](../../../pkg/models/shared/status.md) | :heavy_minus_sign: | The current status of the dataset. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/errormessage.md b/platform/docs/pkg/models/shared/errormessage.md new file mode 100644 index 000000000..f95c4e2f6 --- /dev/null +++ b/platform/docs/pkg/models/shared/errormessage.md @@ -0,0 +1,16 @@ +# ErrorMessage + +Your API request was not properly authorized. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `CanBeRetried` | **string* | :heavy_minus_sign: | `True` if the error occurred transiently and can be retried. | +| `CorrelationID` | **string* | :heavy_minus_sign: | Unique identifier used to propagate to all downstream services and determine the source of the error. | +| `DetailedErrorCode` | **int64* | :heavy_minus_sign: | Machine readable error code used to automate processes based on the code returned. | +| `Error` | **string* | :heavy_minus_sign: | A brief description of the error. | +| `Service` | **string* | :heavy_minus_sign: | Codat's service the returned the error. | +| `StatusCode` | **int64* | :heavy_minus_sign: | The HTTP status code returned by the error. | +| `Validation` | [*shared.ErrorValidation](../../../pkg/models/shared/errorvalidation.md) | :heavy_minus_sign: | A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here. | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/group.md b/platform/docs/pkg/models/shared/group.md deleted file mode 100644 index 818114209..000000000 --- a/platform/docs/pkg/models/shared/group.md +++ /dev/null @@ -1,11 +0,0 @@ -# Group - -A container you can use to organize companies together according to a shared characteristic of your choice. - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `ID` | **string* | :heavy_minus_sign: | Unique identifier for the group. | 60d2fa12-8a04-11ee-b9d1-0242ac120002 | -| `Name` | **string* | :heavy_minus_sign: | Descriptive name of the group. | Invoice finance team | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/groupprototype.md b/platform/docs/pkg/models/shared/groupprototype.md deleted file mode 100644 index 70d0a4a1b..000000000 --- a/platform/docs/pkg/models/shared/groupprototype.md +++ /dev/null @@ -1,10 +0,0 @@ -# GroupPrototype - -The group template used to create a group. - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `Name` | **string* | :heavy_minus_sign: | Descriptive name of the group. | Invoice finance team | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/groupref.md b/platform/docs/pkg/models/shared/groupref.md deleted file mode 100644 index 1378c60ee..000000000 --- a/platform/docs/pkg/models/shared/groupref.md +++ /dev/null @@ -1,8 +0,0 @@ -# GroupRef - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `ID` | **string* | :heavy_minus_sign: | Unique identifier for the group. | 60d2fa12-8a04-11ee-b9d1-0242ac120002 | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/groups.md b/platform/docs/pkg/models/shared/groups.md deleted file mode 100644 index db0a65895..000000000 --- a/platform/docs/pkg/models/shared/groups.md +++ /dev/null @@ -1,8 +0,0 @@ -# Groups - - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | -| `Results` | [][shared.Group](../../../pkg/models/shared/group.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/readcompletedwebhook.md b/platform/docs/pkg/models/shared/readcompletedwebhook.md new file mode 100644 index 000000000..dd12e6275 --- /dev/null +++ b/platform/docs/pkg/models/shared/readcompletedwebhook.md @@ -0,0 +1,11 @@ +# ReadCompletedWebhook + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `EventType` | **string* | :heavy_minus_sign: | The type of event. | | +| `GeneratedDate` | **string* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | +| `ID` | **string* | :heavy_minus_sign: | Unique identifier of the event. | 743ec94a-8aa4-44bb-8bd4-e1855ee0e74b | +| `Payload` | [*shared.ReadCompletedWebhookPayload](../../../pkg/models/shared/readcompletedwebhookpayload.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/readcompletedwebhookpayload.md b/platform/docs/pkg/models/shared/readcompletedwebhookpayload.md new file mode 100644 index 000000000..65df32e14 --- /dev/null +++ b/platform/docs/pkg/models/shared/readcompletedwebhookpayload.md @@ -0,0 +1,10 @@ +# ReadCompletedWebhookPayload + + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `DataTypes` | [][shared.DataTypes](../../../pkg/models/shared/datatypes.md) | :heavy_minus_sign: | N/A | | +| `ModifiedFromDate` | **string* | :heavy_minus_sign: | In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:

```
2020-10-08T22:40:50Z
2021-01-01T00:00:00
```



When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:

- Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
- Unqualified local time: `2021-11-15T01:00:00`
- UTC time offsets: `2021-11-15T01:00:00-05:00`

> Time zones
>
> Not all dates from Codat will contain information about time zones.
> Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. | 2022-10-23 00:00:00 +0000 UTC | +| `ReferenceCompany` | [*shared.CompanyReference](../../../pkg/models/shared/companyreference.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/tags.md b/platform/docs/pkg/models/shared/tags.md deleted file mode 100644 index 6de993aa8..000000000 --- a/platform/docs/pkg/models/shared/tags.md +++ /dev/null @@ -1,9 +0,0 @@ -# Tags - -A collection of user-defined key-value pairs that store custom metadata against the company. - - -## Fields - -| Field | Type | Required | Description | -| ----------- | ----------- | ----------- | ----------- | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/webhookconsumer.md b/platform/docs/pkg/models/shared/webhookconsumer.md index a80ef9511..98ac9d7ef 100644 --- a/platform/docs/pkg/models/shared/webhookconsumer.md +++ b/platform/docs/pkg/models/shared/webhookconsumer.md @@ -8,10 +8,11 @@ See our documentation for more details on [Codat's webhook service](https://docs ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `CompanyID` | **string* | :heavy_minus_sign: | Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `Disabled` | **bool* | :heavy_minus_sign: | Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. | | -| `EventTypes` | []*string* | :heavy_minus_sign: | An array of event types the webhook consumer subscribes to. | | -| `ID` | **string* | :heavy_minus_sign: | Unique identifier for the webhook consumer. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `URL` | **string* | :heavy_minus_sign: | The URL that will consume webhook events dispatched by Codat. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ~~`CompanyID`~~ | **string* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `CompanyTags` | []*string* | :heavy_minus_sign: | Company tags provide an additional way to filter messages, independent of event types. Company tags are case-sensitive, and only messages from companies with matching tags will be sent to this endpoint. Use the format `tagKey:tagValue`. | | +| `Disabled` | **bool* | :heavy_minus_sign: | Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. | | +| `EventTypes` | []*string* | :heavy_minus_sign: | An array of event types the webhook consumer subscribes to. | | +| `ID` | **string* | :heavy_minus_sign: | Unique identifier for the webhook consumer. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `URL` | **string* | :heavy_minus_sign: | The URL that will consume webhook events dispatched by Codat. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/shared/webhookconsumerprototype.md b/platform/docs/pkg/models/shared/webhookconsumerprototype.md index 1d8cc469a..aeae3262f 100644 --- a/platform/docs/pkg/models/shared/webhookconsumerprototype.md +++ b/platform/docs/pkg/models/shared/webhookconsumerprototype.md @@ -3,9 +3,10 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `CompanyID` | **string* | :heavy_minus_sign: | Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. | 8a210b68-6988-11ed-a1eb-0242ac120002 | -| `Disabled` | **bool* | :heavy_minus_sign: | Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. | | -| `EventTypes` | []*string* | :heavy_minus_sign: | An array of event types the webhook consumer subscribes to. | | -| `URL` | **string* | :heavy_minus_sign: | The URL that will consume webhook events dispatched by Codat. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ~~`CompanyID`~~ | **string* | :heavy_minus_sign: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.

Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. | 8a210b68-6988-11ed-a1eb-0242ac120002 | +| `CompanyTags` | []*string* | :heavy_minus_sign: | Company tags provide an additional way to filter messages, independent of event types. Company tags are case-sensitive, and only messages from companies with matching tags will be sent to this endpoint. Use the format `tagKey:tagValue`. | | +| `Disabled` | **bool* | :heavy_minus_sign: | Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. | | +| `EventTypes` | []*string* | :heavy_minus_sign: | An array of event types the webhook consumer subscribes to. | | +| `URL` | **string* | :heavy_minus_sign: | The URL that will consume webhook events dispatched by Codat. | | \ No newline at end of file diff --git a/platform/docs/pkg/models/operations/listgroupsresponse.md b/platform/docs/pkg/models/webhooks/connectionconnectedresponse.md similarity index 79% rename from platform/docs/pkg/models/operations/listgroupsresponse.md rename to platform/docs/pkg/models/webhooks/connectionconnectedresponse.md index f39cabb25..b76582949 100644 --- a/platform/docs/pkg/models/operations/listgroupsresponse.md +++ b/platform/docs/pkg/models/webhooks/connectionconnectedresponse.md @@ -1,4 +1,4 @@ -# ListGroupsResponse +# ConnectionConnectedResponse ## Fields @@ -7,5 +7,4 @@ | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | | `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | | `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | -| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `Groups` | [*shared.Groups](../../../pkg/models/shared/groups.md) | :heavy_minus_sign: | Success | \ No newline at end of file +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/connectioncreatedresponse.md b/platform/docs/pkg/models/webhooks/connectioncreatedresponse.md new file mode 100644 index 000000000..9ccbc1ff2 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/connectioncreatedresponse.md @@ -0,0 +1,10 @@ +# ConnectionCreatedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/connectiondeletedresponse.md b/platform/docs/pkg/models/webhooks/connectiondeletedresponse.md new file mode 100644 index 000000000..fcf6e8633 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/connectiondeletedresponse.md @@ -0,0 +1,10 @@ +# ConnectionDeletedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/connectiondisconnectedresponse.md b/platform/docs/pkg/models/webhooks/connectiondisconnectedresponse.md new file mode 100644 index 000000000..309302e43 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/connectiondisconnectedresponse.md @@ -0,0 +1,10 @@ +# ConnectionDisconnectedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/connectionfailedresponse.md b/platform/docs/pkg/models/webhooks/connectionfailedresponse.md new file mode 100644 index 000000000..d10d06063 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/connectionfailedresponse.md @@ -0,0 +1,10 @@ +# ConnectionFailedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/connectionreconnectedresponse.md b/platform/docs/pkg/models/webhooks/connectionreconnectedresponse.md new file mode 100644 index 000000000..2877e4976 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/connectionreconnectedresponse.md @@ -0,0 +1,10 @@ +# ConnectionReconnectedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/readcompletedinitialresponse.md b/platform/docs/pkg/models/webhooks/readcompletedinitialresponse.md new file mode 100644 index 000000000..68a6f0e5a --- /dev/null +++ b/platform/docs/pkg/models/webhooks/readcompletedinitialresponse.md @@ -0,0 +1,10 @@ +# ReadCompletedInitialResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/pkg/models/webhooks/readcompletedresponse.md b/platform/docs/pkg/models/webhooks/readcompletedresponse.md new file mode 100644 index 000000000..3a7927857 --- /dev/null +++ b/platform/docs/pkg/models/webhooks/readcompletedresponse.md @@ -0,0 +1,10 @@ +# ReadCompletedResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `ContentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation | +| `StatusCode` | *int* | :heavy_check_mark: | HTTP response status code for this operation | +| `RawResponse` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/platform/docs/sdks/codatplatform/README.md b/platform/docs/sdks/codatplatform/README.md index 2667f7245..7d44d62e5 100644 --- a/platform/docs/sdks/codatplatform/README.md +++ b/platform/docs/sdks/codatplatform/README.md @@ -17,7 +17,6 @@ These end points cover creating and managing your companies, data connections, a | Companies | Create and manage your SMB users' companies. | | Connections | Create new and manage existing data connections for a company. | | Connection management | Configure connection management UI and retrieve access tokens for authentication. | -| Groups | Define and manage sets of companies based on a chosen characteristic. | | Webhooks | Create and manage webhooks that listen to Codat's events. | | Integrations | Get a list of integrations supported by Codat and their logos. | | Refresh data | Initiate data refreshes, view pull status and history. | diff --git a/platform/docs/sdks/companies/README.md b/platform/docs/sdks/companies/README.md index 7a3b11d89..0942e0922 100644 --- a/platform/docs/sdks/companies/README.md +++ b/platform/docs/sdks/companies/README.md @@ -7,12 +7,73 @@ Create and manage your SMB users' companies. ### Available Operations +* [AddProduct](#addproduct) - Add product * [Create](#create) - Create company * [Delete](#delete) - Delete a company * [Get](#get) - Get company * [List](#list) - List companies +* [RemoveProduct](#removeproduct) - Remove product * [Update](#update) - Update company +## AddProduct + +Use the *Add product* endpoint to enable a product for the company specified by `companyId`. + +> Note: This feature is currently in alpha and available only to participants in the development program. + +### Example Usage + +```go +package main + +import( + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "context" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "log" +) + +func main() { + s := platform.New( + platform.WithSecurity(shared.Security{ + AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", + }), + ) + + ctx := context.Background() + res, err := s.Companies.AddProduct(ctx, operations.AddProductRequest{ + CompanyID: "8a210b68-6988-11ed-a1eb-0242ac120002", + ProductIdentifier: "lending", + }) + if err != nil { + log.Fatal(err) + } + if res != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `request` | [operations.AddProductRequest](../../pkg/models/operations/addproductrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.AddProductResponse](../../pkg/models/operations/addproductresponse.md), error** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | + ## Create Use the *Create company* endpoint to create a new [company](https://docs.codat.io/platform-api#/schemas/Company) that represents your customer in Codat. @@ -28,8 +89,8 @@ If forbidden characters (see `name` pattern) are present in the request, a compa package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -44,11 +105,6 @@ func main() { ctx := context.Background() res, err := s.Companies.Create(ctx, &shared.CompanyRequestBody{ Description: platform.String("Requested early access to the new financing scheme."), - Groups: []shared.GroupRef{ - shared.GroupRef{ - ID: platform.String("60d2fa12-8a04-11ee-b9d1-0242ac120002"), - }, - }, Name: "Technicalium", }) if err != nil { @@ -74,11 +130,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Delete @@ -94,10 +149,10 @@ Each company can have multiple [connections](https://docs.codat.io/platform-api# package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -135,11 +190,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Get @@ -155,10 +209,10 @@ Each company can have multiple [connections](https://docs.codat.io/platform-api# package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -196,11 +250,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## List @@ -215,10 +268,10 @@ Each company can have multiple [connections](https://docs.codat.io/platform-api# package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -259,16 +312,73 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | + +## RemoveProduct + +Use the *Remove product* endpoint to disable a product for the company specified by `companyId`. + +> Note: This feature is currently in alpha and available only to participants in the development program. + +### Example Usage + +```go +package main + +import( + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" + "context" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "log" +) + +func main() { + s := platform.New( + platform.WithSecurity(shared.Security{ + AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", + }), + ) + + ctx := context.Background() + res, err := s.Companies.RemoveProduct(ctx, operations.RemoveProductRequest{ + CompanyID: "8a210b68-6988-11ed-a1eb-0242ac120002", + ProductIdentifier: "expenses", + }) + if err != nil { + log.Fatal(err) + } + if res != nil { + // handle response + } +} +``` + +### Parameters + +| Parameter | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | +| `request` | [operations.RemoveProductRequest](../../pkg/models/operations/removeproductrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | + +### Response + +**[*operations.RemoveProductResponse](../../pkg/models/operations/removeproductresponse.md), error** + +### Errors +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Update Use the *Update company* endpoint to update both the name and description of the company. -If you use [groups](https://docs.codat.io/platform-api#/schemas/Group) to manage a set of companies, use the [Add company](https://docs.codat.io/platform-api#/operations/add-company-to-group) or [Remove company](https://docs.codat.io/platform-api#/operations/remove-company-from-group) endpoints to add or remove a company from a group. A [company](https://docs.codat.io/platform-api#/schemas/Company) represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/platform-api#/schemas/Connection) to different data sources, such as one connection to Xero for accounting data, two connections to Plaid for two bank accounts, and a connection to Zettle for POS data. @@ -279,10 +389,10 @@ Each company can have multiple [connections](https://docs.codat.io/platform-api# package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -297,11 +407,6 @@ func main() { res, err := s.Companies.Update(ctx, operations.UpdateCompanyRequest{ CompanyRequestBody: &shared.CompanyRequestBody{ Description: platform.String("Requested early access to the new financing scheme."), - Groups: []shared.GroupRef{ - shared.GroupRef{ - ID: platform.String("60d2fa12-8a04-11ee-b9d1-0242ac120002"), - }, - }, Name: "New Name", }, CompanyID: "8a210b68-6988-11ed-a1eb-0242ac120002", @@ -329,7 +434,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/connectionmanagement/README.md b/platform/docs/sdks/connectionmanagement/README.md index 820214ad4..f4b39234d 100644 --- a/platform/docs/sdks/connectionmanagement/README.md +++ b/platform/docs/sdks/connectionmanagement/README.md @@ -21,10 +21,10 @@ The embeddable [Connections SDK](https://docs.codat.io/auth-flow/optimize/connec package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -62,7 +62,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/connections/README.md b/platform/docs/sdks/connections/README.md index b03debe25..f0a358afc 100644 --- a/platform/docs/sdks/connections/README.md +++ b/platform/docs/sdks/connections/README.md @@ -26,10 +26,10 @@ Use the [List Integrations](https://docs.codat.io/platform-api#/operations/list- package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -70,11 +70,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Delete @@ -87,10 +86,10 @@ This operation is not reversible. The end user would need to reauthorize a new d package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -129,11 +128,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Get @@ -145,10 +143,10 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -187,11 +185,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## List @@ -203,10 +200,10 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -248,11 +245,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Unlink @@ -264,10 +260,10 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -309,11 +305,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## UpdateAuthorization @@ -325,10 +320,10 @@ Update data connection's authorization. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -367,7 +362,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/corssettings/README.md b/platform/docs/sdks/corssettings/README.md index c06cdc871..15dbe97f3 100644 --- a/platform/docs/sdks/corssettings/README.md +++ b/platform/docs/sdks/corssettings/README.md @@ -22,8 +22,8 @@ The embeddable [Connections SDK](https://docs.codat.io/auth-flow/optimize/connec package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -59,11 +59,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Set @@ -79,8 +78,8 @@ The embeddable [Connections SDK](https://docs.codat.io/auth-flow/optimize/connec package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -121,7 +120,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/customdatatype/README.md b/platform/docs/sdks/customdatatype/README.md index e146d0dd6..467f46f2e 100644 --- a/platform/docs/sdks/customdatatype/README.md +++ b/platform/docs/sdks/customdatatype/README.md @@ -32,10 +32,10 @@ A [custom data type](https://docs.codat.io/using-the-api/custom-data) is an addi package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -91,11 +91,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetConfiguration @@ -109,10 +108,10 @@ A [custom data type](https://docs.codat.io/using-the-api/custom-data) is an addi package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -151,11 +150,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## List @@ -169,10 +167,10 @@ A [custom data type](https://docs.codat.io/using-the-api/custom-data) is an addi package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -214,11 +212,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,451,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 451, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Refresh @@ -230,10 +227,10 @@ The *Refresh custom data type* endpoint refreshes the specified custom data type package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -273,7 +270,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,451,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 451, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/groups/README.md b/platform/docs/sdks/groups/README.md deleted file mode 100644 index d29f7c691..000000000 --- a/platform/docs/sdks/groups/README.md +++ /dev/null @@ -1,252 +0,0 @@ -# Groups -(*Groups*) - -## Overview - -Define and manage sets of companies based on a chosen characteristic. - -### Available Operations - -* [AddCompany](#addcompany) - Add company -* [Create](#create) - Create group -* [List](#list) - List groups -* [RemoveCompany](#removecompany) - Remove company - -## AddCompany - -Use the *Add company* endpoint to assign a company to a group. A company can belong to multiple groups, but can only be added to one group at a time. - -[Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. - -### Example Usage - -```go -package main - -import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" - "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "log" -) - -func main() { - s := platform.New( - platform.WithSecurity(shared.Security{ - AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", - }), - ) - - ctx := context.Background() - res, err := s.Groups.AddCompany(ctx, operations.AddCompanyToGroupRequest{ - CompanyGroupAssignment: &shared.CompanyGroupAssignment{ - GroupID: platform.String("d7a6c4b4-dc87-45f6-b803-62f466398680"), - }, - CompanyID: "8a210b68-6988-11ed-a1eb-0242ac120002", - }) - if err != nil { - log.Fatal(err) - } - if res.Company != nil { - // handle response - } -} -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `request` | [operations.AddCompanyToGroupRequest](../../pkg/models/operations/addcompanytogrouprequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | - -### Response - -**[*operations.AddCompanyToGroupResponse](../../pkg/models/operations/addcompanytogroupresponse.md), error** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - - -## Create - -Use the *Create group* endpoint to generate a new group that you can assign your companies to. - -[Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. - -### Tips and traps - -* The maximum length for the group name is 50 characters. -* It's possible to create up to 20 groups per client. - -### Example Usage - -```go -package main - -import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" - "context" - "log" -) - -func main() { - s := platform.New( - platform.WithSecurity(shared.Security{ - AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", - }), - ) - - ctx := context.Background() - res, err := s.Groups.Create(ctx, &shared.GroupPrototype{ - Name: platform.String("Corporate cards department"), - }) - if err != nil { - log.Fatal(err) - } - if res.Group != nil { - // handle response - } -} -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `request` | [shared.GroupPrototype](../../pkg/models/shared/groupprototype.md) | :heavy_check_mark: | The request object to use for the request. | -| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | - -### Response - -**[*operations.CreateGroupResponse](../../pkg/models/operations/creategroupresponse.md), error** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,409,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - - -## List - -Use the *List group* endpoint to return a list of all groups that currently exist for your client. - -[Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. - -### Example Usage - -```go -package main - -import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" - "context" - "log" -) - -func main() { - s := platform.New( - platform.WithSecurity(shared.Security{ - AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", - }), - ) - - ctx := context.Background() - res, err := s.Groups.List(ctx) - if err != nil { - log.Fatal(err) - } - if res.Groups != nil { - // handle response - } -} -``` - -### Parameters - -| Parameter | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | - -### Response - -**[*operations.ListGroupsResponse](../../pkg/models/operations/listgroupsresponse.md), error** - -### Errors - -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - - -## RemoveCompany - -Use the *Remove company* endpoint to remove a company from a group. - -[Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. - -### Example Usage - -```go -package main - -import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" - "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "log" -) - -func main() { - s := platform.New( - platform.WithSecurity(shared.Security{ - AuthHeader: "Basic BASE_64_ENCODED(API_KEY)", - }), - ) - - ctx := context.Background() - res, err := s.Groups.RemoveCompany(ctx, operations.RemoveCompanyFromGroupRequest{ - CompanyID: "8a210b68-6988-11ed-a1eb-0242ac120002", - GroupID: "60d2fa12-8a04-11ee-b9d1-0242ac120002", - }) - if err != nil { - log.Fatal(err) - } - if res != nil { - // handle response - } -} -``` - -### Parameters - -| Parameter | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | -| `request` | [operations.RemoveCompanyFromGroupRequest](../../pkg/models/operations/removecompanyfromgrouprequest.md) | :heavy_check_mark: | The request object to use for the request. | -| `opts` | [][operations.Option](../../pkg/models/operations/option.md) | :heavy_minus_sign: | The options for this request. | - -### Response - -**[*operations.RemoveCompanyFromGroupResponse](../../pkg/models/operations/removecompanyfromgroupresponse.md), error** - -### Errors - -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | diff --git a/platform/docs/sdks/integrations/README.md b/platform/docs/sdks/integrations/README.md index 42e2c6b6a..27373d2f2 100644 --- a/platform/docs/sdks/integrations/README.md +++ b/platform/docs/sdks/integrations/README.md @@ -21,10 +21,10 @@ Get single integration, by platformKey package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -62,11 +62,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetBranding @@ -78,10 +77,10 @@ Get branding for platform. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -119,11 +118,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## List @@ -135,10 +133,10 @@ List your available integrations package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -179,7 +177,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/pushdata/README.md b/platform/docs/sdks/pushdata/README.md index eca8a1ee7..0383989f4 100644 --- a/platform/docs/sdks/pushdata/README.md +++ b/platform/docs/sdks/pushdata/README.md @@ -30,10 +30,10 @@ Codat tries not to limit users to pushing to a very limited number of standard c package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -73,15 +73,16 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetOperation -Retrieve push operation. +The **Get push operation** endpoint returns a specific [push operation](/using-the-api/push) identified by the `pushOperationKey` that was performed on the company. + +Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. ### Example Usage @@ -89,10 +90,10 @@ Retrieve push operation. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -131,15 +132,16 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ListOperations -List push operation records. +The **List push operations** endpoint returns a list of [push operations](/using-the-api/push) performed on the company. + +Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. ### Example Usage @@ -147,10 +149,10 @@ List push operation records. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -192,7 +194,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/refreshdata/README.md b/platform/docs/sdks/refreshdata/README.md index a5cdc4066..23dc1ce35 100644 --- a/platform/docs/sdks/refreshdata/README.md +++ b/platform/docs/sdks/refreshdata/README.md @@ -27,10 +27,10 @@ This is an asynchronous operation, and will bring updated data into Codat from t package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -68,11 +68,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ByDataType @@ -86,10 +85,10 @@ This is an asynchronous operation, and will bring updated data into Codat from t package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -128,11 +127,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## Get @@ -144,10 +142,10 @@ Get the state of each data type for a company package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -185,11 +183,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetPullOperation @@ -201,10 +198,10 @@ Retrieve information about a single dataset or pull operation. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -243,11 +240,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ListPullOperations @@ -259,10 +255,10 @@ Gets the pull operation history (datasets) for a given company. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -304,7 +300,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/settings/README.md b/platform/docs/sdks/settings/README.md index 4ac1dfd04..70c965517 100644 --- a/platform/docs/sdks/settings/README.md +++ b/platform/docs/sdks/settings/README.md @@ -35,8 +35,8 @@ You can [read more](https://docs.codat.io/using-the-api/authentication) about au package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -75,11 +75,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,409,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 409, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## DeleteAPIKey @@ -100,10 +99,10 @@ You can [read more](https://docs.codat.io/using-the-api/authentication) about au package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -141,11 +140,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetProfile @@ -157,8 +155,8 @@ Fetch your Codat profile. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -194,11 +192,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetSyncSettings @@ -210,8 +207,8 @@ Retrieve the [sync settings](https://docs.codat.io/knowledge-base/advanced-sync- package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -247,11 +244,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ListAPIKeys @@ -267,8 +263,8 @@ You can [read more](https://docs.codat.io/using-the-api/authentication) about au package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -304,11 +300,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## UpdateProfile @@ -320,8 +315,8 @@ Update your Codat profile package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -369,11 +364,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## UpdateSyncSettings @@ -385,10 +379,10 @@ Update sync settings for all data types. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -438,7 +432,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/supplementaldata/README.md b/platform/docs/sdks/supplementaldata/README.md index 4cc294b67..817015a4a 100644 --- a/platform/docs/sdks/supplementaldata/README.md +++ b/platform/docs/sdks/supplementaldata/README.md @@ -25,10 +25,10 @@ See the *examples* for integration-specific frequently requested properties. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -68,11 +68,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## GetConfiguration @@ -86,10 +85,10 @@ The *Get configuration* endpoint returns supplemental data configuration previou package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -128,7 +127,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/docs/sdks/webhooks/README.md b/platform/docs/sdks/webhooks/README.md index e9ad1ffe4..65cef70d5 100644 --- a/platform/docs/sdks/webhooks/README.md +++ b/platform/docs/sdks/webhooks/README.md @@ -7,16 +7,18 @@ Create and manage webhooks that listen to Codat's events. ### Available Operations -* [~~Create~~](#create) - Create webhook :warning: **Deprecated** +* [~~Create~~](#create) - Create webhook (legacy) :warning: **Deprecated** * [CreateConsumer](#createconsumer) - Create webhook consumer * [DeleteConsumer](#deleteconsumer) - Delete webhook consumer -* [~~Get~~](#get) - Get webhook :warning: **Deprecated** -* [~~List~~](#list) - List webhooks :warning: **Deprecated** +* [~~Get~~](#get) - Get webhook (legacy) :warning: **Deprecated** +* [~~List~~](#list) - List webhooks (legacy) :warning: **Deprecated** * [ListConsumers](#listconsumers) - List webhook consumers ## ~~Create~~ -Create a new webhook configuration +Use the *Create webhooks (legacy)* endpoint to create a rule-based webhook for your client. + +**Note:** This endpoint has been deprecated. Please use the [*Create webhook consumer*](https://docs.codat.io/platform-api#/operations/create-webhook-consumer) endpoint to create a webhook moving forward. > :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. @@ -26,8 +28,8 @@ Create a new webhook configuration package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -73,11 +75,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ----------------------- | ----------------------- | ----------------------- | -| sdkerrors.ErrorMessage | 401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| ---------------------------- | ---------------------------- | ---------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## CreateConsumer @@ -94,8 +95,8 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -139,11 +140,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## DeleteConsumer @@ -157,10 +157,10 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -198,15 +198,16 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ~~Get~~ -Get a single webhook +Use the *Get webhook (legacy)* endpoint to retrieve a specific webhook for your client. + +**Note:** This endpoint has been deprecated. Please use the [*List webhook consumers*](https://docs.codat.io/platform-api#/operations/list-webhook-consumers) endpoint for listing webhooks moving forward. > :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. @@ -216,10 +217,10 @@ Get a single webhook package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -257,15 +258,16 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ~~List~~ -List webhooks that you are subscribed to. +Use the *List webhooks (legacy)* endpoint to retrieve all existing rule-based webhooks for your client. + +**Note:** This endpoint has been deprecated. Please use the [*List webhook consumers*](https://docs.codat.io/platform-api#/operations/list-webhook-consumers) endpoint for listing webhooks moving forward. > :warning: **DEPRECATED**: This will be removed in a future release, please migrate away from it as soon as possible. @@ -275,10 +277,10 @@ List webhooks that you are subscribed to. package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" "log" ) @@ -319,11 +321,10 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| ------------------------------- | ------------------------------- | ------------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,404,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | - +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 404, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | ## ListConsumers @@ -337,8 +338,8 @@ func main() { package main import( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - platform "github.com/codatio/client-sdk-go/platform/v3" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + platform "github.com/codatio/client-sdk-go/platform/v4" "context" "log" ) @@ -374,7 +375,7 @@ func main() { ### Errors -| Error Object | Status Code | Content Type | -| --------------------------- | --------------------------- | --------------------------- | -| sdkerrors.ErrorMessage | 400,401,402,403,429,500,503 | application/json | -| sdkerrors.SDKError | 4xx-5xx | */* | +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| sdkerrors.ErrorMessage | 400, 401, 402, 403, 429, 500, 503 | application/json | +| sdkerrors.SDKError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/platform/go.mod b/platform/go.mod index 80b483020..3676e622f 100644 --- a/platform/go.mod +++ b/platform/go.mod @@ -1,4 +1,4 @@ -module github.com/codatio/client-sdk-go/platform/v3 +module github.com/codatio/client-sdk-go/platform/v4 go 1.20 diff --git a/platform/groups.go b/platform/groups.go deleted file mode 100644 index 7e9476e32..000000000 --- a/platform/groups.go +++ /dev/null @@ -1,984 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package platform - -import ( - "bytes" - "context" - "fmt" - "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" - "net/http" - "net/url" -) - -// Groups - Define and manage sets of companies based on a chosen characteristic. -type Groups struct { - sdkConfiguration sdkConfiguration -} - -func newGroups(sdkConfig sdkConfiguration) *Groups { - return &Groups{ - sdkConfiguration: sdkConfig, - } -} - -// AddCompany - Add company -// Use the *Add company* endpoint to assign a company to a group. A company can belong to multiple groups, but can only be added to one group at a time. -// -// [Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. -func (s *Groups) AddCompany(ctx context.Context, request operations.AddCompanyToGroupRequest, opts ...operations.Option) (*operations.AddCompanyToGroupResponse, error) { - hookCtx := hooks.HookContext{ - Context: ctx, - OperationID: "add-company-to-group", - OAuth2Scopes: []string{}, - SecuritySource: s.sdkConfiguration.Security, - } - - o := operations.Options{} - supportedOptions := []string{ - operations.SupportedOptionRetries, - operations.SupportedOptionTimeout, - } - - for _, opt := range opts { - if err := opt(&o, supportedOptions...); err != nil { - return nil, fmt.Errorf("error applying option: %w", err) - } - } - - baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) - opURL, err := utils.GenerateURL(ctx, baseURL, "/companies/{companyId}/groups", request, nil) - if err != nil { - return nil, fmt.Errorf("error generating URL: %w", err) - } - - bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "CompanyGroupAssignment", "json", `request:"mediaType=application/json"`) - if err != nil { - return nil, err - } - - timeout := o.Timeout - if timeout == nil { - timeout = s.sdkConfiguration.Timeout - } - - if timeout != nil { - var cancel context.CancelFunc - ctx, cancel = context.WithTimeout(ctx, *timeout) - defer cancel() - } - - req, err := http.NewRequestWithContext(ctx, "PATCH", opURL, bodyReader) - if err != nil { - return nil, fmt.Errorf("error creating request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) - req.Header.Set("Content-Type", reqContentType) - - if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { - return nil, err - } - - globalRetryConfig := s.sdkConfiguration.RetryConfig - retryConfig := o.Retries - if retryConfig == nil { - if globalRetryConfig != nil { - retryConfig = globalRetryConfig - } else { - retryConfig = &retry.Config{ - Strategy: "backoff", Backoff: &retry.BackoffStrategy{ - InitialInterval: 500, - MaxInterval: 60000, - Exponent: 1.5, - MaxElapsedTime: 3600000, - }, - RetryConnectionErrors: true, - } - } - } - - var httpRes *http.Response - if retryConfig != nil { - httpRes, err = utils.Retry(ctx, utils.Retries{ - Config: retryConfig, - StatusCodes: []string{ - "408", - "429", - "5XX", - }, - }, func() (*http.Response, error) { - if req.Body != nil { - copyBody, err := req.GetBody() - if err != nil { - return nil, err - } - req.Body = copyBody - } - - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, backoff.Permanent(err) - } - - httpRes, err := s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - } - return httpRes, err - }) - - if err != nil { - return nil, err - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } else { - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, err - } - - httpRes, err = s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - return nil, err - } else if utils.MatchStatusCodes([]string{"401", "402", "403", "404", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { - _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) - if err != nil { - return nil, err - } else if _httpRes != nil { - httpRes = _httpRes - } - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } - - res := &operations.AddCompanyToGroupResponse{ - StatusCode: httpRes.StatusCode, - ContentType: httpRes.Header.Get("Content-Type"), - RawResponse: httpRes, - } - - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - - switch { - case httpRes.StatusCode == 200: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out shared.Company - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - res.Company = &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode == 401: - fallthrough - case httpRes.StatusCode == 402: - fallthrough - case httpRes.StatusCode == 403: - fallthrough - case httpRes.StatusCode == 404: - fallthrough - case httpRes.StatusCode == 429: - fallthrough - case httpRes.StatusCode == 500: - fallthrough - case httpRes.StatusCode == 503: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out sdkerrors.ErrorMessage - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - return nil, &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: - fallthrough - case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) - } - - return res, nil - -} - -// Create group -// Use the *Create group* endpoint to generate a new group that you can assign your companies to. -// -// [Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. -// -// ### Tips and traps -// -// * The maximum length for the group name is 50 characters. -// * It's possible to create up to 20 groups per client. -func (s *Groups) Create(ctx context.Context, request *shared.GroupPrototype, opts ...operations.Option) (*operations.CreateGroupResponse, error) { - hookCtx := hooks.HookContext{ - Context: ctx, - OperationID: "create-group", - OAuth2Scopes: []string{}, - SecuritySource: s.sdkConfiguration.Security, - } - - o := operations.Options{} - supportedOptions := []string{ - operations.SupportedOptionRetries, - operations.SupportedOptionTimeout, - } - - for _, opt := range opts { - if err := opt(&o, supportedOptions...); err != nil { - return nil, fmt.Errorf("error applying option: %w", err) - } - } - - baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) - opURL, err := url.JoinPath(baseURL, "/groups") - if err != nil { - return nil, fmt.Errorf("error generating URL: %w", err) - } - - bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "json", `request:"mediaType=application/json"`) - if err != nil { - return nil, err - } - - timeout := o.Timeout - if timeout == nil { - timeout = s.sdkConfiguration.Timeout - } - - if timeout != nil { - var cancel context.CancelFunc - ctx, cancel = context.WithTimeout(ctx, *timeout) - defer cancel() - } - - req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader) - if err != nil { - return nil, fmt.Errorf("error creating request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) - req.Header.Set("Content-Type", reqContentType) - - if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { - return nil, err - } - - globalRetryConfig := s.sdkConfiguration.RetryConfig - retryConfig := o.Retries - if retryConfig == nil { - if globalRetryConfig != nil { - retryConfig = globalRetryConfig - } else { - retryConfig = &retry.Config{ - Strategy: "backoff", Backoff: &retry.BackoffStrategy{ - InitialInterval: 500, - MaxInterval: 60000, - Exponent: 1.5, - MaxElapsedTime: 3600000, - }, - RetryConnectionErrors: true, - } - } - } - - var httpRes *http.Response - if retryConfig != nil { - httpRes, err = utils.Retry(ctx, utils.Retries{ - Config: retryConfig, - StatusCodes: []string{ - "408", - "429", - "5XX", - }, - }, func() (*http.Response, error) { - if req.Body != nil { - copyBody, err := req.GetBody() - if err != nil { - return nil, err - } - req.Body = copyBody - } - - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, backoff.Permanent(err) - } - - httpRes, err := s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - } - return httpRes, err - }) - - if err != nil { - return nil, err - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } else { - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, err - } - - httpRes, err = s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - return nil, err - } else if utils.MatchStatusCodes([]string{"401", "402", "403", "409", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { - _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) - if err != nil { - return nil, err - } else if _httpRes != nil { - httpRes = _httpRes - } - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } - - res := &operations.CreateGroupResponse{ - StatusCode: httpRes.StatusCode, - ContentType: httpRes.Header.Get("Content-Type"), - RawResponse: httpRes, - } - - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - - switch { - case httpRes.StatusCode == 200: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out shared.Group - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - res.Group = &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode == 401: - fallthrough - case httpRes.StatusCode == 402: - fallthrough - case httpRes.StatusCode == 403: - fallthrough - case httpRes.StatusCode == 409: - fallthrough - case httpRes.StatusCode == 429: - fallthrough - case httpRes.StatusCode == 500: - fallthrough - case httpRes.StatusCode == 503: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out sdkerrors.ErrorMessage - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - return nil, &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: - fallthrough - case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) - } - - return res, nil - -} - -// List groups -// Use the *List group* endpoint to return a list of all groups that currently exist for your client. -// -// [Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. -func (s *Groups) List(ctx context.Context, opts ...operations.Option) (*operations.ListGroupsResponse, error) { - hookCtx := hooks.HookContext{ - Context: ctx, - OperationID: "list-groups", - OAuth2Scopes: []string{}, - SecuritySource: s.sdkConfiguration.Security, - } - - o := operations.Options{} - supportedOptions := []string{ - operations.SupportedOptionRetries, - operations.SupportedOptionTimeout, - } - - for _, opt := range opts { - if err := opt(&o, supportedOptions...); err != nil { - return nil, fmt.Errorf("error applying option: %w", err) - } - } - - baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) - opURL, err := url.JoinPath(baseURL, "/groups") - if err != nil { - return nil, fmt.Errorf("error generating URL: %w", err) - } - - timeout := o.Timeout - if timeout == nil { - timeout = s.sdkConfiguration.Timeout - } - - if timeout != nil { - var cancel context.CancelFunc - ctx, cancel = context.WithTimeout(ctx, *timeout) - defer cancel() - } - - req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil) - if err != nil { - return nil, fmt.Errorf("error creating request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) - - if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { - return nil, err - } - - globalRetryConfig := s.sdkConfiguration.RetryConfig - retryConfig := o.Retries - if retryConfig == nil { - if globalRetryConfig != nil { - retryConfig = globalRetryConfig - } else { - retryConfig = &retry.Config{ - Strategy: "backoff", Backoff: &retry.BackoffStrategy{ - InitialInterval: 500, - MaxInterval: 60000, - Exponent: 1.5, - MaxElapsedTime: 3600000, - }, - RetryConnectionErrors: true, - } - } - } - - var httpRes *http.Response - if retryConfig != nil { - httpRes, err = utils.Retry(ctx, utils.Retries{ - Config: retryConfig, - StatusCodes: []string{ - "408", - "429", - "5XX", - }, - }, func() (*http.Response, error) { - if req.Body != nil { - copyBody, err := req.GetBody() - if err != nil { - return nil, err - } - req.Body = copyBody - } - - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, backoff.Permanent(err) - } - - httpRes, err := s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - } - return httpRes, err - }) - - if err != nil { - return nil, err - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } else { - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, err - } - - httpRes, err = s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - return nil, err - } else if utils.MatchStatusCodes([]string{"401", "402", "403", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { - _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) - if err != nil { - return nil, err - } else if _httpRes != nil { - httpRes = _httpRes - } - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } - - res := &operations.ListGroupsResponse{ - StatusCode: httpRes.StatusCode, - ContentType: httpRes.Header.Get("Content-Type"), - RawResponse: httpRes, - } - - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - - switch { - case httpRes.StatusCode == 200: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out shared.Groups - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - res.Groups = &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode == 401: - fallthrough - case httpRes.StatusCode == 402: - fallthrough - case httpRes.StatusCode == 403: - fallthrough - case httpRes.StatusCode == 429: - fallthrough - case httpRes.StatusCode == 500: - fallthrough - case httpRes.StatusCode == 503: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out sdkerrors.ErrorMessage - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - return nil, &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: - fallthrough - case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) - } - - return res, nil - -} - -// RemoveCompany - Remove company -// Use the *Remove company* endpoint to remove a company from a group. -// -// [Groups](https://docs.codat.io/platform-api#/schemas/Group) define a set of companies that are organized based on a chosen characteristic and can be managed in the same way. -func (s *Groups) RemoveCompany(ctx context.Context, request operations.RemoveCompanyFromGroupRequest, opts ...operations.Option) (*operations.RemoveCompanyFromGroupResponse, error) { - hookCtx := hooks.HookContext{ - Context: ctx, - OperationID: "remove-company-from-group", - OAuth2Scopes: []string{}, - SecuritySource: s.sdkConfiguration.Security, - } - - o := operations.Options{} - supportedOptions := []string{ - operations.SupportedOptionRetries, - operations.SupportedOptionTimeout, - } - - for _, opt := range opts { - if err := opt(&o, supportedOptions...); err != nil { - return nil, fmt.Errorf("error applying option: %w", err) - } - } - - baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails()) - opURL, err := utils.GenerateURL(ctx, baseURL, "/companies/{companyId}/groups/{groupId}", request, nil) - if err != nil { - return nil, fmt.Errorf("error generating URL: %w", err) - } - - timeout := o.Timeout - if timeout == nil { - timeout = s.sdkConfiguration.Timeout - } - - if timeout != nil { - var cancel context.CancelFunc - ctx, cancel = context.WithTimeout(ctx, *timeout) - defer cancel() - } - - req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil) - if err != nil { - return nil, fmt.Errorf("error creating request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent) - - if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil { - return nil, err - } - - globalRetryConfig := s.sdkConfiguration.RetryConfig - retryConfig := o.Retries - if retryConfig == nil { - if globalRetryConfig != nil { - retryConfig = globalRetryConfig - } else { - retryConfig = &retry.Config{ - Strategy: "backoff", Backoff: &retry.BackoffStrategy{ - InitialInterval: 500, - MaxInterval: 60000, - Exponent: 1.5, - MaxElapsedTime: 3600000, - }, - RetryConnectionErrors: true, - } - } - } - - var httpRes *http.Response - if retryConfig != nil { - httpRes, err = utils.Retry(ctx, utils.Retries{ - Config: retryConfig, - StatusCodes: []string{ - "408", - "429", - "5XX", - }, - }, func() (*http.Response, error) { - if req.Body != nil { - copyBody, err := req.GetBody() - if err != nil { - return nil, err - } - req.Body = copyBody - } - - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, backoff.Permanent(err) - } - - httpRes, err := s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - } - return httpRes, err - }) - - if err != nil { - return nil, err - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } else { - req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req) - if err != nil { - return nil, err - } - - httpRes, err = s.sdkConfiguration.Client.Do(req) - if err != nil || httpRes == nil { - if err != nil { - err = fmt.Errorf("error sending request: %w", err) - } else { - err = fmt.Errorf("error sending request: no response") - } - - _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err) - return nil, err - } else if utils.MatchStatusCodes([]string{"401", "402", "403", "404", "429", "4XX", "500", "503", "5XX"}, httpRes.StatusCode) { - _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil) - if err != nil { - return nil, err - } else if _httpRes != nil { - httpRes = _httpRes - } - } else { - httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes) - if err != nil { - return nil, err - } - } - } - - res := &operations.RemoveCompanyFromGroupResponse{ - StatusCode: httpRes.StatusCode, - ContentType: httpRes.Header.Get("Content-Type"), - RawResponse: httpRes, - } - - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - - switch { - case httpRes.StatusCode == 204: - case httpRes.StatusCode == 401: - fallthrough - case httpRes.StatusCode == 402: - fallthrough - case httpRes.StatusCode == 403: - fallthrough - case httpRes.StatusCode == 404: - fallthrough - case httpRes.StatusCode == 429: - fallthrough - case httpRes.StatusCode == 500: - fallthrough - case httpRes.StatusCode == 503: - switch { - case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - var out sdkerrors.ErrorMessage - if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { - return nil, err - } - - return nil, &out - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) - } - case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: - fallthrough - case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) - default: - rawBody, err := getRawBody() - if err != nil { - return nil, err - } - - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) - } - - return res, nil - -} diff --git a/platform/integrations.go b/platform/integrations.go index 8f4ee2494..54f2264ac 100644 --- a/platform/integrations.go +++ b/platform/integrations.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "net/url" ) @@ -178,21 +177,11 @@ func (s *Integrations) Get(ctx context.Context, request operations.GetIntegratio RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -204,11 +193,10 @@ func (s *Integrations) Get(ctx context.Context, request operations.GetIntegratio res.Integration = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -226,7 +214,7 @@ func (s *Integrations) Get(ctx context.Context, request operations.GetIntegratio case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -238,28 +226,25 @@ func (s *Integrations) Get(ctx context.Context, request operations.GetIntegratio return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -416,21 +401,11 @@ func (s *Integrations) GetBranding(ctx context.Context, request operations.GetIn RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -442,11 +417,10 @@ func (s *Integrations) GetBranding(ctx context.Context, request operations.GetIn res.Branding = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -464,7 +438,7 @@ func (s *Integrations) GetBranding(ctx context.Context, request operations.GetIn case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -476,28 +450,25 @@ func (s *Integrations) GetBranding(ctx context.Context, request operations.GetIn return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -658,21 +629,11 @@ func (s *Integrations) List(ctx context.Context, request operations.ListIntegrat RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -684,11 +645,10 @@ func (s *Integrations) List(ctx context.Context, request operations.ListIntegrat res.Integrations = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -706,7 +666,7 @@ func (s *Integrations) List(ctx context.Context, request operations.ListIntegrat case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -718,28 +678,25 @@ func (s *Integrations) List(ctx context.Context, request operations.ListIntegrat return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/pkg/models/operations/addcompanytogroup.go b/platform/pkg/models/operations/addcompanytogroup.go deleted file mode 100644 index 98aec5092..000000000 --- a/platform/pkg/models/operations/addcompanytogroup.go +++ /dev/null @@ -1,67 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package operations - -import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "net/http" -) - -type AddCompanyToGroupRequest struct { - CompanyGroupAssignment *shared.CompanyGroupAssignment `request:"mediaType=application/json"` - // Unique identifier for a company. - CompanyID string `pathParam:"style=simple,explode=false,name=companyId"` -} - -func (o *AddCompanyToGroupRequest) GetCompanyGroupAssignment() *shared.CompanyGroupAssignment { - if o == nil { - return nil - } - return o.CompanyGroupAssignment -} - -func (o *AddCompanyToGroupRequest) GetCompanyID() string { - if o == nil { - return "" - } - return o.CompanyID -} - -type AddCompanyToGroupResponse struct { - // Success - Company *shared.Company - // HTTP response content type for this operation - ContentType string - // HTTP response status code for this operation - StatusCode int - // Raw HTTP response; suitable for custom response parsing - RawResponse *http.Response -} - -func (o *AddCompanyToGroupResponse) GetCompany() *shared.Company { - if o == nil { - return nil - } - return o.Company -} - -func (o *AddCompanyToGroupResponse) GetContentType() string { - if o == nil { - return "" - } - return o.ContentType -} - -func (o *AddCompanyToGroupResponse) GetStatusCode() int { - if o == nil { - return 0 - } - return o.StatusCode -} - -func (o *AddCompanyToGroupResponse) GetRawResponse() *http.Response { - if o == nil { - return nil - } - return o.RawResponse -} diff --git a/platform/pkg/models/operations/removecompanyfromgroup.go b/platform/pkg/models/operations/addproduct.go similarity index 56% rename from platform/pkg/models/operations/removecompanyfromgroup.go rename to platform/pkg/models/operations/addproduct.go index 99f9a90c5..f9f9100e0 100644 --- a/platform/pkg/models/operations/removecompanyfromgroup.go +++ b/platform/pkg/models/operations/addproduct.go @@ -6,28 +6,28 @@ import ( "net/http" ) -type RemoveCompanyFromGroupRequest struct { +type AddProductRequest struct { // Unique identifier for a company. CompanyID string `pathParam:"style=simple,explode=false,name=companyId"` - // Unique identifier for the group. - GroupID string `pathParam:"style=simple,explode=false,name=groupId"` + // Human-readable product identifier for a product. + ProductIdentifier string `pathParam:"style=simple,explode=false,name=productIdentifier"` } -func (o *RemoveCompanyFromGroupRequest) GetCompanyID() string { +func (o *AddProductRequest) GetCompanyID() string { if o == nil { return "" } return o.CompanyID } -func (o *RemoveCompanyFromGroupRequest) GetGroupID() string { +func (o *AddProductRequest) GetProductIdentifier() string { if o == nil { return "" } - return o.GroupID + return o.ProductIdentifier } -type RemoveCompanyFromGroupResponse struct { +type AddProductResponse struct { // HTTP response content type for this operation ContentType string // HTTP response status code for this operation @@ -36,21 +36,21 @@ type RemoveCompanyFromGroupResponse struct { RawResponse *http.Response } -func (o *RemoveCompanyFromGroupResponse) GetContentType() string { +func (o *AddProductResponse) GetContentType() string { if o == nil { return "" } return o.ContentType } -func (o *RemoveCompanyFromGroupResponse) GetStatusCode() int { +func (o *AddProductResponse) GetStatusCode() int { if o == nil { return 0 } return o.StatusCode } -func (o *RemoveCompanyFromGroupResponse) GetRawResponse() *http.Response { +func (o *AddProductResponse) GetRawResponse() *http.Response { if o == nil { return nil } diff --git a/platform/pkg/models/operations/configurecustomdatatype.go b/platform/pkg/models/operations/configurecustomdatatype.go index ccc08e41e..2f50f41ed 100644 --- a/platform/pkg/models/operations/configurecustomdatatype.go +++ b/platform/pkg/models/operations/configurecustomdatatype.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/configuresupplementaldata.go b/platform/pkg/models/operations/configuresupplementaldata.go index fc9ef2733..c857735d2 100644 --- a/platform/pkg/models/operations/configuresupplementaldata.go +++ b/platform/pkg/models/operations/configuresupplementaldata.go @@ -5,7 +5,7 @@ package operations import ( "encoding/json" "fmt" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/createapikey.go b/platform/pkg/models/operations/createapikey.go index 28582eec8..c22c75f16 100644 --- a/platform/pkg/models/operations/createapikey.go +++ b/platform/pkg/models/operations/createapikey.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/createcompany.go b/platform/pkg/models/operations/createcompany.go index 6808b62f3..eb8c30d57 100644 --- a/platform/pkg/models/operations/createcompany.go +++ b/platform/pkg/models/operations/createcompany.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/createconnection.go b/platform/pkg/models/operations/createconnection.go index cadd31a8a..c5083fe52 100644 --- a/platform/pkg/models/operations/createconnection.go +++ b/platform/pkg/models/operations/createconnection.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/createrule.go b/platform/pkg/models/operations/createrule.go index 0a3906221..e5ef46027 100644 --- a/platform/pkg/models/operations/createrule.go +++ b/platform/pkg/models/operations/createrule.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/createwebhookconsumer.go b/platform/pkg/models/operations/createwebhookconsumer.go index a7cf064b8..fc6f2abe7 100644 --- a/platform/pkg/models/operations/createwebhookconsumer.go +++ b/platform/pkg/models/operations/createwebhookconsumer.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/deleteapikey.go b/platform/pkg/models/operations/deleteapikey.go index f9aa279a7..0222449bc 100644 --- a/platform/pkg/models/operations/deleteapikey.go +++ b/platform/pkg/models/operations/deleteapikey.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) @@ -23,7 +23,7 @@ type DeleteAPIKeyResponse struct { // HTTP response content type for this operation ContentType string // Too many requests were made in a given amount of time. Wait a short period and then try again. - ErrorMessage *sdkerrors.ErrorMessage + ErrorMessage *shared.ErrorMessage // HTTP response status code for this operation StatusCode int // Raw HTTP response; suitable for custom response parsing @@ -37,7 +37,7 @@ func (o *DeleteAPIKeyResponse) GetContentType() string { return o.ContentType } -func (o *DeleteAPIKeyResponse) GetErrorMessage() *sdkerrors.ErrorMessage { +func (o *DeleteAPIKeyResponse) GetErrorMessage() *shared.ErrorMessage { if o == nil { return nil } diff --git a/platform/pkg/models/operations/getcompany.go b/platform/pkg/models/operations/getcompany.go index 1e7d5200a..5dc934fea 100644 --- a/platform/pkg/models/operations/getcompany.go +++ b/platform/pkg/models/operations/getcompany.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getcompanydatastatus.go b/platform/pkg/models/operations/getcompanydatastatus.go index 34e4f3fe9..c5880ab95 100644 --- a/platform/pkg/models/operations/getcompanydatastatus.go +++ b/platform/pkg/models/operations/getcompanydatastatus.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getcompanypushhistory.go b/platform/pkg/models/operations/getcompanypushhistory.go index a0481b95a..782b50aa9 100644 --- a/platform/pkg/models/operations/getcompanypushhistory.go +++ b/platform/pkg/models/operations/getcompanypushhistory.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/getconnection.go b/platform/pkg/models/operations/getconnection.go index 4b93af761..90cd894c7 100644 --- a/platform/pkg/models/operations/getconnection.go +++ b/platform/pkg/models/operations/getconnection.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getconnectionmanagementaccesstoken.go b/platform/pkg/models/operations/getconnectionmanagementaccesstoken.go index 2a5b584c9..8bec15488 100644 --- a/platform/pkg/models/operations/getconnectionmanagementaccesstoken.go +++ b/platform/pkg/models/operations/getconnectionmanagementaccesstoken.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getconnectionmanagementcorssettings.go b/platform/pkg/models/operations/getconnectionmanagementcorssettings.go index baff4d94d..0a184fb4f 100644 --- a/platform/pkg/models/operations/getconnectionmanagementcorssettings.go +++ b/platform/pkg/models/operations/getconnectionmanagementcorssettings.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getcreateupdatemodeloptionsbydatatype.go b/platform/pkg/models/operations/getcreateupdatemodeloptionsbydatatype.go index aff051cf7..ac35f04ba 100644 --- a/platform/pkg/models/operations/getcreateupdatemodeloptionsbydatatype.go +++ b/platform/pkg/models/operations/getcreateupdatemodeloptionsbydatatype.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) @@ -12,7 +12,7 @@ type GetCreateUpdateModelOptionsByDataTypeRequest struct { CompanyID string `pathParam:"style=simple,explode=false,name=companyId"` // Unique identifier for a connection. ConnectionID string `pathParam:"style=simple,explode=false,name=connectionId"` - // The key of a Codat data type + // The key of a Codat data type. DataType shared.SchemaDataType `pathParam:"style=simple,explode=false,name=dataType"` } diff --git a/platform/pkg/models/operations/getcustomdatatypeconfiguration.go b/platform/pkg/models/operations/getcustomdatatypeconfiguration.go index 5b3f686e1..65eb0087f 100644 --- a/platform/pkg/models/operations/getcustomdatatypeconfiguration.go +++ b/platform/pkg/models/operations/getcustomdatatypeconfiguration.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getintegration.go b/platform/pkg/models/operations/getintegration.go index 098d5be5f..ede1978e0 100644 --- a/platform/pkg/models/operations/getintegration.go +++ b/platform/pkg/models/operations/getintegration.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getintegrationsbranding.go b/platform/pkg/models/operations/getintegrationsbranding.go index 85c0ff63a..6ba6f3c4e 100644 --- a/platform/pkg/models/operations/getintegrationsbranding.go +++ b/platform/pkg/models/operations/getintegrationsbranding.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getprofile.go b/platform/pkg/models/operations/getprofile.go index 565a6c027..864e117c6 100644 --- a/platform/pkg/models/operations/getprofile.go +++ b/platform/pkg/models/operations/getprofile.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getprofilesyncsettings.go b/platform/pkg/models/operations/getprofilesyncsettings.go index 2941e331f..e49f38a87 100644 --- a/platform/pkg/models/operations/getprofilesyncsettings.go +++ b/platform/pkg/models/operations/getprofilesyncsettings.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getpulloperation.go b/platform/pkg/models/operations/getpulloperation.go index bc4c580ea..46bda3abe 100644 --- a/platform/pkg/models/operations/getpulloperation.go +++ b/platform/pkg/models/operations/getpulloperation.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getpushoperation.go b/platform/pkg/models/operations/getpushoperation.go index 8541b1c6c..06d7724a8 100644 --- a/platform/pkg/models/operations/getpushoperation.go +++ b/platform/pkg/models/operations/getpushoperation.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getsupplementaldataconfiguration.go b/platform/pkg/models/operations/getsupplementaldataconfiguration.go index 4b7f32231..e66a4e2f1 100644 --- a/platform/pkg/models/operations/getsupplementaldataconfiguration.go +++ b/platform/pkg/models/operations/getsupplementaldataconfiguration.go @@ -5,7 +5,7 @@ package operations import ( "encoding/json" "fmt" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/getwebhook.go b/platform/pkg/models/operations/getwebhook.go index bce75a377..b514f82e8 100644 --- a/platform/pkg/models/operations/getwebhook.go +++ b/platform/pkg/models/operations/getwebhook.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/listapikeys.go b/platform/pkg/models/operations/listapikeys.go index 1b4b181b4..129e0257e 100644 --- a/platform/pkg/models/operations/listapikeys.go +++ b/platform/pkg/models/operations/listapikeys.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/listcompanies.go b/platform/pkg/models/operations/listcompanies.go index 8f4ca578f..033cd9088 100644 --- a/platform/pkg/models/operations/listcompanies.go +++ b/platform/pkg/models/operations/listcompanies.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listconnections.go b/platform/pkg/models/operations/listconnections.go index 5512e9290..d7297d4c8 100644 --- a/platform/pkg/models/operations/listconnections.go +++ b/platform/pkg/models/operations/listconnections.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listcustomdatatyperecords.go b/platform/pkg/models/operations/listcustomdatatyperecords.go index d7889d280..e3c8437c4 100644 --- a/platform/pkg/models/operations/listcustomdatatyperecords.go +++ b/platform/pkg/models/operations/listcustomdatatyperecords.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listintegrations.go b/platform/pkg/models/operations/listintegrations.go index de683feb7..27d23298e 100644 --- a/platform/pkg/models/operations/listintegrations.go +++ b/platform/pkg/models/operations/listintegrations.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listpulloperations.go b/platform/pkg/models/operations/listpulloperations.go index a9b3963b6..23e6e1047 100644 --- a/platform/pkg/models/operations/listpulloperations.go +++ b/platform/pkg/models/operations/listpulloperations.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listrules.go b/platform/pkg/models/operations/listrules.go index 3bb3a37b5..4b9ad0680 100644 --- a/platform/pkg/models/operations/listrules.go +++ b/platform/pkg/models/operations/listrules.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/operations/listwebhookconsumers.go b/platform/pkg/models/operations/listwebhookconsumers.go index 99aca9447..7e377e983 100644 --- a/platform/pkg/models/operations/listwebhookconsumers.go +++ b/platform/pkg/models/operations/listwebhookconsumers.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/options.go b/platform/pkg/models/operations/options.go index 1fb2500a8..738e6a172 100644 --- a/platform/pkg/models/operations/options.go +++ b/platform/pkg/models/operations/options.go @@ -4,8 +4,8 @@ package operations import ( "errors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "time" ) diff --git a/platform/pkg/models/operations/refreshcustomdatatype.go b/platform/pkg/models/operations/refreshcustomdatatype.go index f54b14898..73e4c5c9e 100644 --- a/platform/pkg/models/operations/refreshcustomdatatype.go +++ b/platform/pkg/models/operations/refreshcustomdatatype.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/refreshdatatype.go b/platform/pkg/models/operations/refreshdatatype.go index e5fbf487f..c57a5d095 100644 --- a/platform/pkg/models/operations/refreshdatatype.go +++ b/platform/pkg/models/operations/refreshdatatype.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) @@ -12,7 +12,7 @@ type RefreshDataTypeRequest struct { CompanyID string `pathParam:"style=simple,explode=false,name=companyId"` // Optionally, provide a data connection id to only queue pull operations on that connection. ConnectionID *string `queryParam:"style=form,explode=true,name=connectionId"` - // The key of a Codat data type + // The key of a Codat data type. DataType shared.SchemaDataType `pathParam:"style=simple,explode=false,name=dataType"` } diff --git a/platform/pkg/models/operations/removeproduct.go b/platform/pkg/models/operations/removeproduct.go new file mode 100644 index 000000000..13fabf63b --- /dev/null +++ b/platform/pkg/models/operations/removeproduct.go @@ -0,0 +1,58 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package operations + +import ( + "net/http" +) + +type RemoveProductRequest struct { + // Unique identifier for a company. + CompanyID string `pathParam:"style=simple,explode=false,name=companyId"` + // Human-readable product identifier for a product. + ProductIdentifier string `pathParam:"style=simple,explode=false,name=productIdentifier"` +} + +func (o *RemoveProductRequest) GetCompanyID() string { + if o == nil { + return "" + } + return o.CompanyID +} + +func (o *RemoveProductRequest) GetProductIdentifier() string { + if o == nil { + return "" + } + return o.ProductIdentifier +} + +type RemoveProductResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *RemoveProductResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *RemoveProductResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *RemoveProductResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/operations/setconnectionmanagementcorssettings.go b/platform/pkg/models/operations/setconnectionmanagementcorssettings.go index 273274e6c..85a8e676c 100644 --- a/platform/pkg/models/operations/setconnectionmanagementcorssettings.go +++ b/platform/pkg/models/operations/setconnectionmanagementcorssettings.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/unlinkconnection.go b/platform/pkg/models/operations/unlinkconnection.go index 20e2720a5..976860f19 100644 --- a/platform/pkg/models/operations/unlinkconnection.go +++ b/platform/pkg/models/operations/unlinkconnection.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/updatecompany.go b/platform/pkg/models/operations/updatecompany.go index 968f1a4da..dc04d6398 100644 --- a/platform/pkg/models/operations/updatecompany.go +++ b/platform/pkg/models/operations/updatecompany.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/updateconnectionauthorization.go b/platform/pkg/models/operations/updateconnectionauthorization.go index 04c0b4f1f..a784b4630 100644 --- a/platform/pkg/models/operations/updateconnectionauthorization.go +++ b/platform/pkg/models/operations/updateconnectionauthorization.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/updateprofile.go b/platform/pkg/models/operations/updateprofile.go index 1569798bb..f347ee485 100644 --- a/platform/pkg/models/operations/updateprofile.go +++ b/platform/pkg/models/operations/updateprofile.go @@ -3,7 +3,7 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" "net/http" ) diff --git a/platform/pkg/models/operations/updateprofilesyncsettings.go b/platform/pkg/models/operations/updateprofilesyncsettings.go index ec0747089..574635693 100644 --- a/platform/pkg/models/operations/updateprofilesyncsettings.go +++ b/platform/pkg/models/operations/updateprofilesyncsettings.go @@ -3,8 +3,8 @@ package operations import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) diff --git a/platform/pkg/models/sdkerrors/errormessage.go b/platform/pkg/models/sdkerrors/errormessage.go index 5e2dc2096..5433178ab 100644 --- a/platform/pkg/models/sdkerrors/errormessage.go +++ b/platform/pkg/models/sdkerrors/errormessage.go @@ -4,10 +4,10 @@ package sdkerrors import ( "encoding/json" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" ) -// ErrorMessage - Bad Request +// ErrorMessage - Your API request was not properly authorized. type ErrorMessage struct { // `True` if the error occurred transiently and can be retried. CanBeRetried *string `json:"canBeRetried,omitempty"` diff --git a/platform/pkg/models/shared/company.go b/platform/pkg/models/shared/company.go index b44af0a4c..3f2ced48f 100644 --- a/platform/pkg/models/shared/company.go +++ b/platform/pkg/models/shared/company.go @@ -2,10 +2,6 @@ package shared -// CompanyTags - A collection of user-defined key-value pairs that store custom metadata against the company. -type CompanyTags struct { -} - // Company - In Codat, a company represents a business sharing access to their data. Each company can have multiple [connections](https://docs.codat.io/platform-api#/schemas/Connection) to different data sources such as one connection to [Xero](https://docs.codat.io/integrations/accounting/xero/accounting-xero) for accounting data, two connections to [Plaid](https://docs.codat.io/integrations/banking/plaid/banking-plaid) for two bank accounts and a connection to [Zettle](https://docs.codat.io/integrations/commerce/zettle/commerce-zettle) for POS data. // // Typically each company is one of your customers. @@ -61,10 +57,12 @@ type Company struct { LastSync *string `json:"lastSync,omitempty"` // The name of the company Name string `json:"name"` + // An array of products that are currently enabled for the company. + Products []string `json:"products,omitempty"` // The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company. Redirect string `json:"redirect"` // A collection of user-defined key-value pairs that store custom metadata against the company. - Tags *CompanyTags `json:"tags,omitempty"` + Tags map[string]string `json:"tags,omitempty"` } func (o *Company) GetCreated() *string { @@ -116,6 +114,13 @@ func (o *Company) GetName() string { return o.Name } +func (o *Company) GetProducts() []string { + if o == nil { + return nil + } + return o.Products +} + func (o *Company) GetRedirect() string { if o == nil { return "" @@ -123,7 +128,7 @@ func (o *Company) GetRedirect() string { return o.Redirect } -func (o *Company) GetTags() *CompanyTags { +func (o *Company) GetTags() map[string]string { if o == nil { return nil } diff --git a/platform/pkg/models/shared/companydetails.go b/platform/pkg/models/shared/companydetails.go index 77a56f77b..500943812 100644 --- a/platform/pkg/models/shared/companydetails.go +++ b/platform/pkg/models/shared/companydetails.go @@ -2,10 +2,6 @@ package shared -// Tags - A collection of user-defined key-value pairs that store custom metadata against the company. -type Tags struct { -} - type CompanyDetails struct { // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: // @@ -55,10 +51,12 @@ type CompanyDetails struct { LastSync *string `json:"lastSync,omitempty"` // The name of the company Name string `json:"name"` + // An array of products that are currently enabled for the company. + Products []string `json:"products,omitempty"` // The `redirect` [Link URL](https://docs.codat.io/auth-flow/authorize-hosted-link) enabling the customer to start their auth flow journey for the company. Redirect string `json:"redirect"` // A collection of user-defined key-value pairs that store custom metadata against the company. - Tags *Tags `json:"tags,omitempty"` + Tags map[string]string `json:"tags,omitempty"` } func (o *CompanyDetails) GetCreated() *string { @@ -103,6 +101,13 @@ func (o *CompanyDetails) GetName() string { return o.Name } +func (o *CompanyDetails) GetProducts() []string { + if o == nil { + return nil + } + return o.Products +} + func (o *CompanyDetails) GetRedirect() string { if o == nil { return "" @@ -110,7 +115,7 @@ func (o *CompanyDetails) GetRedirect() string { return o.Redirect } -func (o *CompanyDetails) GetTags() *Tags { +func (o *CompanyDetails) GetTags() map[string]string { if o == nil { return nil } diff --git a/platform/pkg/models/shared/companygroupassignment.go b/platform/pkg/models/shared/companygroupassignment.go deleted file mode 100644 index b7d772ffa..000000000 --- a/platform/pkg/models/shared/companygroupassignment.go +++ /dev/null @@ -1,14 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package shared - -type CompanyGroupAssignment struct { - GroupID *string `json:"groupId,omitempty"` -} - -func (o *CompanyGroupAssignment) GetGroupID() *string { - if o == nil { - return nil - } - return o.GroupID -} diff --git a/platform/pkg/models/shared/companyreference.go b/platform/pkg/models/shared/companyreference.go index 1d92b8cda..c8695e09d 100644 --- a/platform/pkg/models/shared/companyreference.go +++ b/platform/pkg/models/shared/companyreference.go @@ -2,13 +2,30 @@ package shared +// CompanyReferenceLinks - A collection of links for the company. +type CompanyReferenceLinks struct { + // Link to the company page in the portal. + Portal *string `json:"portal,omitempty"` +} + +func (o *CompanyReferenceLinks) GetPortal() *string { + if o == nil { + return nil + } + return o.Portal +} + type CompanyReference struct { // Additional information about the company. This can be used to store foreign IDs, references, etc. Description *string `json:"description,omitempty"` // Unique identifier for your SMB in Codat. ID *string `json:"id,omitempty"` + // A collection of links for the company. + Links *CompanyReferenceLinks `json:"links,omitempty"` // The name of the company Name *string `json:"name,omitempty"` + // A collection of user-defined key-value pairs that store custom metadata against the company. + Tags map[string]string `json:"tags,omitempty"` } func (o *CompanyReference) GetDescription() *string { @@ -25,9 +42,23 @@ func (o *CompanyReference) GetID() *string { return o.ID } +func (o *CompanyReference) GetLinks() *CompanyReferenceLinks { + if o == nil { + return nil + } + return o.Links +} + func (o *CompanyReference) GetName() *string { if o == nil { return nil } return o.Name } + +func (o *CompanyReference) GetTags() map[string]string { + if o == nil { + return nil + } + return o.Tags +} diff --git a/platform/pkg/models/shared/companyrequestbody.go b/platform/pkg/models/shared/companyrequestbody.go index 8a3d51f1e..75ed8a6e9 100644 --- a/platform/pkg/models/shared/companyrequestbody.go +++ b/platform/pkg/models/shared/companyrequestbody.go @@ -5,10 +5,10 @@ package shared type CompanyRequestBody struct { // Additional information about the company. This can be used to store foreign IDs, references, etc. Description *string `json:"description,omitempty"` - // Reference to the groups that the company is assigned to. - Groups []GroupRef `json:"groups,omitempty"` // Name of company being connected. Name string `json:"name"` + // A collection of user-defined key-value pairs that store custom metadata against the company. + Tags map[string]string `json:"tags,omitempty"` } func (o *CompanyRequestBody) GetDescription() *string { @@ -18,16 +18,16 @@ func (o *CompanyRequestBody) GetDescription() *string { return o.Description } -func (o *CompanyRequestBody) GetGroups() []GroupRef { +func (o *CompanyRequestBody) GetName() string { if o == nil { - return nil + return "" } - return o.Groups + return o.Name } -func (o *CompanyRequestBody) GetName() string { +func (o *CompanyRequestBody) GetTags() map[string]string { if o == nil { - return "" + return nil } - return o.Name + return o.Tags } diff --git a/platform/pkg/models/shared/connection.go b/platform/pkg/models/shared/connection.go index fab7a6630..05ddbb612 100644 --- a/platform/pkg/models/shared/connection.go +++ b/platform/pkg/models/shared/connection.go @@ -13,8 +13,7 @@ package shared // // Before you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview). type Connection struct { - AdditionalProperties any `json:"additionalProperties,omitempty"` - ConnectionInfo map[string]string `json:"connectionInfo,omitempty"` + ConnectionInfo map[string]string `json:"connectionInfo,omitempty"` // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: // // ``` @@ -74,13 +73,6 @@ type Connection struct { Status DataConnectionStatus `json:"status"` } -func (o *Connection) GetAdditionalProperties() any { - if o == nil { - return nil - } - return o.AdditionalProperties -} - func (o *Connection) GetConnectionInfo() map[string]string { if o == nil { return nil diff --git a/platform/pkg/models/shared/connectionmanagementallowedorigins.go b/platform/pkg/models/shared/connectionmanagementallowedorigins.go index fc456b3fc..13c86ebb2 100644 --- a/platform/pkg/models/shared/connectionmanagementallowedorigins.go +++ b/platform/pkg/models/shared/connectionmanagementallowedorigins.go @@ -2,6 +2,7 @@ package shared +// ConnectionManagementAllowedOrigins - Success type ConnectionManagementAllowedOrigins struct { // An array of allowed origins (i.e. your domains) to permit cross-origin resource sharing ([CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)).n resource sharing ([CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)). AllowedOrigins []string `json:"allowedOrigins,omitempty"` diff --git a/platform/pkg/models/shared/connectionwebhook.go b/platform/pkg/models/shared/connectionwebhook.go new file mode 100644 index 000000000..74d07d3e0 --- /dev/null +++ b/platform/pkg/models/shared/connectionwebhook.go @@ -0,0 +1,59 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package shared + +type ConnectionWebhook struct { + // The type of event. + EventType *string `json:"eventType,omitempty"` + // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: + // + // ``` + // 2020-10-08T22:40:50Z + // 2021-01-01T00:00:00 + // ``` + // + // + // + // When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: + // + // - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` + // - Unqualified local time: `2021-11-15T01:00:00` + // - UTC time offsets: `2021-11-15T01:00:00-05:00` + // + // > Time zones + // > + // > Not all dates from Codat will contain information about time zones. + // > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. + GeneratedDate *string `json:"generatedDate,omitempty"` + // Unique identifier of the event. + ID *string `json:"id,omitempty"` + Payload *ConnectionWebhookPayload `json:"payload,omitempty"` +} + +func (o *ConnectionWebhook) GetEventType() *string { + if o == nil { + return nil + } + return o.EventType +} + +func (o *ConnectionWebhook) GetGeneratedDate() *string { + if o == nil { + return nil + } + return o.GeneratedDate +} + +func (o *ConnectionWebhook) GetID() *string { + if o == nil { + return nil + } + return o.ID +} + +func (o *ConnectionWebhook) GetPayload() *ConnectionWebhookPayload { + if o == nil { + return nil + } + return o.Payload +} diff --git a/platform/pkg/models/shared/connectionwebhookpayload.go b/platform/pkg/models/shared/connectionwebhookpayload.go new file mode 100644 index 000000000..b8b890eb6 --- /dev/null +++ b/platform/pkg/models/shared/connectionwebhookpayload.go @@ -0,0 +1,32 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package shared + +type ConnectionWebhookPayload struct { + // A connection represents a [company's](https://docs.codat.io/platform-api#/schemas/Company) connection to a data source and allows you to synchronize data (pull and/or push) with that source. + // + // A company can have multiple data connections depending on the type of data source it is connecting to. For example, a single company can link to: + // + // - [Accounting data](https://docs.codat.io/accounting-api/overview) - 1 active connection. + // - [Banking data](https://docs.codat.io/banking-api/overview) - Multiple active connections. + // - [Commerce data](https://docs.codat.io/commerce-api/overview) - Multiple active connections. + // Any combination of accounting, banking, and commerce data connections is allowed. + // + // Before you can use a data connection to pull or push data, the company must grant you access to their business data by [linking the connection](https://docs.codat.io/auth-flow/overview). + Connection *Connection `json:"connection,omitempty"` + ReferenceCompany *CompanyReference `json:"referenceCompany,omitempty"` +} + +func (o *ConnectionWebhookPayload) GetConnection() *Connection { + if o == nil { + return nil + } + return o.Connection +} + +func (o *ConnectionWebhookPayload) GetReferenceCompany() *CompanyReference { + if o == nil { + return nil + } + return o.ReferenceCompany +} diff --git a/platform/pkg/models/shared/datastatus.go b/platform/pkg/models/shared/datastatus.go index 83281553c..691b1b082 100644 --- a/platform/pkg/models/shared/datastatus.go +++ b/platform/pkg/models/shared/datastatus.go @@ -7,59 +7,59 @@ import ( "fmt" ) -// DataTypes - Available data types -type DataTypes string +// DataStatusDataTypes - Available data types +type DataStatusDataTypes string const ( - DataTypesAccountTransactions DataTypes = "accountTransactions" - DataTypesBalanceSheet DataTypes = "balanceSheet" - DataTypesBankAccounts DataTypes = "bankAccounts" - DataTypesBankTransactions DataTypes = "bankTransactions" - DataTypesBillCreditNotes DataTypes = "billCreditNotes" - DataTypesBillPayments DataTypes = "billPayments" - DataTypesBills DataTypes = "bills" - DataTypesCashFlowStatement DataTypes = "cashFlowStatement" - DataTypesChartOfAccounts DataTypes = "chartOfAccounts" - DataTypesCompany DataTypes = "company" - DataTypesCreditNotes DataTypes = "creditNotes" - DataTypesCustomers DataTypes = "customers" - DataTypesDirectCosts DataTypes = "directCosts" - DataTypesDirectIncomes DataTypes = "directIncomes" - DataTypesInvoices DataTypes = "invoices" - DataTypesItemReceipts DataTypes = "itemReceipts" - DataTypesItems DataTypes = "items" - DataTypesJournalEntries DataTypes = "journalEntries" - DataTypesJournals DataTypes = "journals" - DataTypesPaymentMethods DataTypes = "paymentMethods" - DataTypesPayments DataTypes = "payments" - DataTypesProfitAndLoss DataTypes = "profitAndLoss" - DataTypesPurchaseOrders DataTypes = "purchaseOrders" - DataTypesSalesOrders DataTypes = "salesOrders" - DataTypesSuppliers DataTypes = "suppliers" - DataTypesTaxRates DataTypes = "taxRates" - DataTypesTrackingCategories DataTypes = "trackingCategories" - DataTypesTransfers DataTypes = "transfers" - DataTypesBankingAccountBalances DataTypes = "banking-accountBalances" - DataTypesBankingAccounts DataTypes = "banking-accounts" - DataTypesBankingTransactionCategories DataTypes = "banking-transactionCategories" - DataTypesBankingTransactions DataTypes = "banking-transactions" - DataTypesCommerceCompanyInfo DataTypes = "commerce-companyInfo" - DataTypesCommerceCustomers DataTypes = "commerce-customers" - DataTypesCommerceDisputes DataTypes = "commerce-disputes" - DataTypesCommerceLocations DataTypes = "commerce-locations" - DataTypesCommerceOrders DataTypes = "commerce-orders" - DataTypesCommercePaymentMethods DataTypes = "commerce-paymentMethods" - DataTypesCommercePayments DataTypes = "commerce-payments" - DataTypesCommerceProductCategories DataTypes = "commerce-productCategories" - DataTypesCommerceProducts DataTypes = "commerce-products" - DataTypesCommerceTaxComponents DataTypes = "commerce-taxComponents" - DataTypesCommerceTransactions DataTypes = "commerce-transactions" + DataStatusDataTypesAccountTransactions DataStatusDataTypes = "accountTransactions" + DataStatusDataTypesBalanceSheet DataStatusDataTypes = "balanceSheet" + DataStatusDataTypesBankAccounts DataStatusDataTypes = "bankAccounts" + DataStatusDataTypesBankTransactions DataStatusDataTypes = "bankTransactions" + DataStatusDataTypesBillCreditNotes DataStatusDataTypes = "billCreditNotes" + DataStatusDataTypesBillPayments DataStatusDataTypes = "billPayments" + DataStatusDataTypesBills DataStatusDataTypes = "bills" + DataStatusDataTypesCashFlowStatement DataStatusDataTypes = "cashFlowStatement" + DataStatusDataTypesChartOfAccounts DataStatusDataTypes = "chartOfAccounts" + DataStatusDataTypesCompany DataStatusDataTypes = "company" + DataStatusDataTypesCreditNotes DataStatusDataTypes = "creditNotes" + DataStatusDataTypesCustomers DataStatusDataTypes = "customers" + DataStatusDataTypesDirectCosts DataStatusDataTypes = "directCosts" + DataStatusDataTypesDirectIncomes DataStatusDataTypes = "directIncomes" + DataStatusDataTypesInvoices DataStatusDataTypes = "invoices" + DataStatusDataTypesItemReceipts DataStatusDataTypes = "itemReceipts" + DataStatusDataTypesItems DataStatusDataTypes = "items" + DataStatusDataTypesJournalEntries DataStatusDataTypes = "journalEntries" + DataStatusDataTypesJournals DataStatusDataTypes = "journals" + DataStatusDataTypesPaymentMethods DataStatusDataTypes = "paymentMethods" + DataStatusDataTypesPayments DataStatusDataTypes = "payments" + DataStatusDataTypesProfitAndLoss DataStatusDataTypes = "profitAndLoss" + DataStatusDataTypesPurchaseOrders DataStatusDataTypes = "purchaseOrders" + DataStatusDataTypesSalesOrders DataStatusDataTypes = "salesOrders" + DataStatusDataTypesSuppliers DataStatusDataTypes = "suppliers" + DataStatusDataTypesTaxRates DataStatusDataTypes = "taxRates" + DataStatusDataTypesTrackingCategories DataStatusDataTypes = "trackingCategories" + DataStatusDataTypesTransfers DataStatusDataTypes = "transfers" + DataStatusDataTypesBankingAccountBalances DataStatusDataTypes = "banking-accountBalances" + DataStatusDataTypesBankingAccounts DataStatusDataTypes = "banking-accounts" + DataStatusDataTypesBankingTransactionCategories DataStatusDataTypes = "banking-transactionCategories" + DataStatusDataTypesBankingTransactions DataStatusDataTypes = "banking-transactions" + DataStatusDataTypesCommerceCompanyInfo DataStatusDataTypes = "commerce-companyInfo" + DataStatusDataTypesCommerceCustomers DataStatusDataTypes = "commerce-customers" + DataStatusDataTypesCommerceDisputes DataStatusDataTypes = "commerce-disputes" + DataStatusDataTypesCommerceLocations DataStatusDataTypes = "commerce-locations" + DataStatusDataTypesCommerceOrders DataStatusDataTypes = "commerce-orders" + DataStatusDataTypesCommercePaymentMethods DataStatusDataTypes = "commerce-paymentMethods" + DataStatusDataTypesCommercePayments DataStatusDataTypes = "commerce-payments" + DataStatusDataTypesCommerceProductCategories DataStatusDataTypes = "commerce-productCategories" + DataStatusDataTypesCommerceProducts DataStatusDataTypes = "commerce-products" + DataStatusDataTypesCommerceTaxComponents DataStatusDataTypes = "commerce-taxComponents" + DataStatusDataTypesCommerceTransactions DataStatusDataTypes = "commerce-transactions" ) -func (e DataTypes) ToPointer() *DataTypes { +func (e DataStatusDataTypes) ToPointer() *DataStatusDataTypes { return &e } -func (e *DataTypes) UnmarshalJSON(data []byte) error { +func (e *DataStatusDataTypes) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -150,10 +150,10 @@ func (e *DataTypes) UnmarshalJSON(data []byte) error { case "commerce-taxComponents": fallthrough case "commerce-transactions": - *e = DataTypes(v) + *e = DataStatusDataTypes(v) return nil default: - return fmt.Errorf("invalid value for DataTypes: %v", v) + return fmt.Errorf("invalid value for DataStatusDataTypes: %v", v) } } @@ -162,7 +162,7 @@ type DataStatus struct { // The current status of the dataset. CurrentStatus Status `json:"currentStatus"` // Available data types - DataType DataTypes `json:"dataType"` + DataType DataStatusDataTypes `json:"dataType"` // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: // // ``` @@ -196,9 +196,9 @@ func (o *DataStatus) GetCurrentStatus() Status { return o.CurrentStatus } -func (o *DataStatus) GetDataType() DataTypes { +func (o *DataStatus) GetDataType() DataStatusDataTypes { if o == nil { - return DataTypes("") + return DataStatusDataTypes("") } return o.DataType } diff --git a/platform/pkg/models/shared/errormessage.go b/platform/pkg/models/shared/errormessage.go new file mode 100644 index 000000000..b66f45a7a --- /dev/null +++ b/platform/pkg/models/shared/errormessage.go @@ -0,0 +1,70 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package shared + +// ErrorMessage - Your API request was not properly authorized. +type ErrorMessage struct { + // `True` if the error occurred transiently and can be retried. + CanBeRetried *string `json:"canBeRetried,omitempty"` + // Unique identifier used to propagate to all downstream services and determine the source of the error. + CorrelationID *string `json:"correlationId,omitempty"` + // Machine readable error code used to automate processes based on the code returned. + DetailedErrorCode *int64 `json:"detailedErrorCode,omitempty"` + // A brief description of the error. + Error *string `json:"error,omitempty"` + // Codat's service the returned the error. + Service *string `json:"service,omitempty"` + // The HTTP status code returned by the error. + StatusCode *int64 `json:"statusCode,omitempty"` + // A human-readable object describing validation decisions Codat has made. If an operation has failed because of validation errors, they will be detailed here. + Validation *ErrorValidation `json:"validation,omitempty"` +} + +func (o *ErrorMessage) GetCanBeRetried() *string { + if o == nil { + return nil + } + return o.CanBeRetried +} + +func (o *ErrorMessage) GetCorrelationID() *string { + if o == nil { + return nil + } + return o.CorrelationID +} + +func (o *ErrorMessage) GetDetailedErrorCode() *int64 { + if o == nil { + return nil + } + return o.DetailedErrorCode +} + +func (o *ErrorMessage) GetError() *string { + if o == nil { + return nil + } + return o.Error +} + +func (o *ErrorMessage) GetService() *string { + if o == nil { + return nil + } + return o.Service +} + +func (o *ErrorMessage) GetStatusCode() *int64 { + if o == nil { + return nil + } + return o.StatusCode +} + +func (o *ErrorMessage) GetValidation() *ErrorValidation { + if o == nil { + return nil + } + return o.Validation +} diff --git a/platform/pkg/models/shared/group.go b/platform/pkg/models/shared/group.go deleted file mode 100644 index 9ddb756dd..000000000 --- a/platform/pkg/models/shared/group.go +++ /dev/null @@ -1,25 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package shared - -// Group - A container you can use to organize companies together according to a shared characteristic of your choice. -type Group struct { - // Unique identifier for the group. - ID *string `json:"id,omitempty"` - // Descriptive name of the group. - Name *string `json:"name,omitempty"` -} - -func (o *Group) GetID() *string { - if o == nil { - return nil - } - return o.ID -} - -func (o *Group) GetName() *string { - if o == nil { - return nil - } - return o.Name -} diff --git a/platform/pkg/models/shared/groupprototype.go b/platform/pkg/models/shared/groupprototype.go deleted file mode 100644 index 0fb37e16d..000000000 --- a/platform/pkg/models/shared/groupprototype.go +++ /dev/null @@ -1,16 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package shared - -// GroupPrototype - The group template used to create a group. -type GroupPrototype struct { - // Descriptive name of the group. - Name *string `json:"name,omitempty"` -} - -func (o *GroupPrototype) GetName() *string { - if o == nil { - return nil - } - return o.Name -} diff --git a/platform/pkg/models/shared/groupref.go b/platform/pkg/models/shared/groupref.go deleted file mode 100644 index 5aac2382e..000000000 --- a/platform/pkg/models/shared/groupref.go +++ /dev/null @@ -1,15 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package shared - -type GroupRef struct { - // Unique identifier for the group. - ID *string `json:"id,omitempty"` -} - -func (o *GroupRef) GetID() *string { - if o == nil { - return nil - } - return o.ID -} diff --git a/platform/pkg/models/shared/groups.go b/platform/pkg/models/shared/groups.go deleted file mode 100644 index 9c2e92d04..000000000 --- a/platform/pkg/models/shared/groups.go +++ /dev/null @@ -1,14 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package shared - -type Groups struct { - Results []Group `json:"results,omitempty"` -} - -func (o *Groups) GetResults() []Group { - if o == nil { - return nil - } - return o.Results -} diff --git a/platform/pkg/models/shared/readcompletedwebhook.go b/platform/pkg/models/shared/readcompletedwebhook.go new file mode 100644 index 000000000..7b6b89787 --- /dev/null +++ b/platform/pkg/models/shared/readcompletedwebhook.go @@ -0,0 +1,59 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package shared + +type ReadCompletedWebhook struct { + // The type of event. + EventType *string `json:"eventType,omitempty"` + // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: + // + // ``` + // 2020-10-08T22:40:50Z + // 2021-01-01T00:00:00 + // ``` + // + // + // + // When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: + // + // - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` + // - Unqualified local time: `2021-11-15T01:00:00` + // - UTC time offsets: `2021-11-15T01:00:00-05:00` + // + // > Time zones + // > + // > Not all dates from Codat will contain information about time zones. + // > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. + GeneratedDate *string `json:"generatedDate,omitempty"` + // Unique identifier of the event. + ID *string `json:"id,omitempty"` + Payload *ReadCompletedWebhookPayload `json:"payload,omitempty"` +} + +func (o *ReadCompletedWebhook) GetEventType() *string { + if o == nil { + return nil + } + return o.EventType +} + +func (o *ReadCompletedWebhook) GetGeneratedDate() *string { + if o == nil { + return nil + } + return o.GeneratedDate +} + +func (o *ReadCompletedWebhook) GetID() *string { + if o == nil { + return nil + } + return o.ID +} + +func (o *ReadCompletedWebhook) GetPayload() *ReadCompletedWebhookPayload { + if o == nil { + return nil + } + return o.Payload +} diff --git a/platform/pkg/models/shared/readcompletedwebhookpayload.go b/platform/pkg/models/shared/readcompletedwebhookpayload.go new file mode 100644 index 000000000..f40c761ef --- /dev/null +++ b/platform/pkg/models/shared/readcompletedwebhookpayload.go @@ -0,0 +1,88 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package shared + +type DataTypes struct { + // Unique identifier for a company's data connection. + ConnectionID *string `json:"connectionId,omitempty"` + // Available data types + DataType *DataType `json:"dataType,omitempty"` + // `True` if records have been created, updated or deleted in Codat's cache. + RecordsModified *bool `json:"recordsModified,omitempty"` + // The current status of the dataset. + Status *Status `json:"status,omitempty"` +} + +func (o *DataTypes) GetConnectionID() *string { + if o == nil { + return nil + } + return o.ConnectionID +} + +func (o *DataTypes) GetDataType() *DataType { + if o == nil { + return nil + } + return o.DataType +} + +func (o *DataTypes) GetRecordsModified() *bool { + if o == nil { + return nil + } + return o.RecordsModified +} + +func (o *DataTypes) GetStatus() *Status { + if o == nil { + return nil + } + return o.Status +} + +type ReadCompletedWebhookPayload struct { + DataTypes []DataTypes `json:"dataTypes,omitempty"` + // In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example: + // + // ``` + // 2020-10-08T22:40:50Z + // 2021-01-01T00:00:00 + // ``` + // + // + // + // When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information: + // + // - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z` + // - Unqualified local time: `2021-11-15T01:00:00` + // - UTC time offsets: `2021-11-15T01:00:00-05:00` + // + // > Time zones + // > + // > Not all dates from Codat will contain information about time zones. + // > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced. + ModifiedFromDate *string `json:"modifiedFromDate,omitempty"` + ReferenceCompany *CompanyReference `json:"referenceCompany,omitempty"` +} + +func (o *ReadCompletedWebhookPayload) GetDataTypes() []DataTypes { + if o == nil { + return nil + } + return o.DataTypes +} + +func (o *ReadCompletedWebhookPayload) GetModifiedFromDate() *string { + if o == nil { + return nil + } + return o.ModifiedFromDate +} + +func (o *ReadCompletedWebhookPayload) GetReferenceCompany() *CompanyReference { + if o == nil { + return nil + } + return o.ReferenceCompany +} diff --git a/platform/pkg/models/shared/webhookconsumer.go b/platform/pkg/models/shared/webhookconsumer.go index 96c82e151..5fd6c4f1c 100644 --- a/platform/pkg/models/shared/webhookconsumer.go +++ b/platform/pkg/models/shared/webhookconsumer.go @@ -3,7 +3,7 @@ package shared import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" ) // WebhookConsumer - A webhook consumer is an HTTP endpoint that developers can configure to subscribe to Codat's supported event types. @@ -11,7 +11,11 @@ import ( // See our documentation for more details on [Codat's webhook service](https://docs.codat.io/using-the-api/webhooks/overview). type WebhookConsumer struct { // Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. + // + // Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. CompanyID *string `json:"companyId,omitempty"` + // Company tags provide an additional way to filter messages, independent of event types. Company tags are case-sensitive, and only messages from companies with matching tags will be sent to this endpoint. Use the format `tagKey:tagValue`. + CompanyTags []string `json:"companyTags,omitempty"` // Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. Disabled *bool `default:"false" json:"disabled"` // An array of event types the webhook consumer subscribes to. @@ -40,6 +44,13 @@ func (o *WebhookConsumer) GetCompanyID() *string { return o.CompanyID } +func (o *WebhookConsumer) GetCompanyTags() []string { + if o == nil { + return nil + } + return o.CompanyTags +} + func (o *WebhookConsumer) GetDisabled() *bool { if o == nil { return nil diff --git a/platform/pkg/models/shared/webhookconsumerprototype.go b/platform/pkg/models/shared/webhookconsumerprototype.go index db6674a3a..a069dfa58 100644 --- a/platform/pkg/models/shared/webhookconsumerprototype.go +++ b/platform/pkg/models/shared/webhookconsumerprototype.go @@ -3,12 +3,16 @@ package shared import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" ) type WebhookConsumerPrototype struct { // Unique identifier of the company to indicate company-specific events. The associated webhook consumer will receive events only for the specified ID. + // + // Deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. CompanyID *string `json:"companyId,omitempty"` + // Company tags provide an additional way to filter messages, independent of event types. Company tags are case-sensitive, and only messages from companies with matching tags will be sent to this endpoint. Use the format `tagKey:tagValue`. + CompanyTags []string `json:"companyTags,omitempty"` // Flag that enables or disables the endpoint from receiving events. Disabled when set to `true`. Disabled *bool `default:"false" json:"disabled"` // An array of event types the webhook consumer subscribes to. @@ -35,6 +39,13 @@ func (o *WebhookConsumerPrototype) GetCompanyID() *string { return o.CompanyID } +func (o *WebhookConsumerPrototype) GetCompanyTags() []string { + if o == nil { + return nil + } + return o.CompanyTags +} + func (o *WebhookConsumerPrototype) GetDisabled() *bool { if o == nil { return nil diff --git a/platform/pkg/models/operations/listgroups.go b/platform/pkg/models/webhooks/connectionconnected.go similarity index 52% rename from platform/pkg/models/operations/listgroups.go rename to platform/pkg/models/webhooks/connectionconnected.go index 02a8e8c11..119afa660 100644 --- a/platform/pkg/models/operations/listgroups.go +++ b/platform/pkg/models/webhooks/connectionconnected.go @@ -1,47 +1,37 @@ // Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -package operations +package webhooks import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" "net/http" ) -type ListGroupsResponse struct { +type ConnectionConnectedResponse struct { // HTTP response content type for this operation ContentType string // HTTP response status code for this operation StatusCode int // Raw HTTP response; suitable for custom response parsing RawResponse *http.Response - // Success - Groups *shared.Groups } -func (o *ListGroupsResponse) GetContentType() string { +func (o *ConnectionConnectedResponse) GetContentType() string { if o == nil { return "" } return o.ContentType } -func (o *ListGroupsResponse) GetStatusCode() int { +func (o *ConnectionConnectedResponse) GetStatusCode() int { if o == nil { return 0 } return o.StatusCode } -func (o *ListGroupsResponse) GetRawResponse() *http.Response { +func (o *ConnectionConnectedResponse) GetRawResponse() *http.Response { if o == nil { return nil } return o.RawResponse } - -func (o *ListGroupsResponse) GetGroups() *shared.Groups { - if o == nil { - return nil - } - return o.Groups -} diff --git a/platform/pkg/models/webhooks/connectioncreated.go b/platform/pkg/models/webhooks/connectioncreated.go new file mode 100644 index 000000000..2ea6cd179 --- /dev/null +++ b/platform/pkg/models/webhooks/connectioncreated.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ConnectionCreatedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ConnectionCreatedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ConnectionCreatedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ConnectionCreatedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/webhooks/connectiondeleted.go b/platform/pkg/models/webhooks/connectiondeleted.go new file mode 100644 index 000000000..6f1386a23 --- /dev/null +++ b/platform/pkg/models/webhooks/connectiondeleted.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ConnectionDeletedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ConnectionDeletedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ConnectionDeletedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ConnectionDeletedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/webhooks/connectiondisconnected.go b/platform/pkg/models/webhooks/connectiondisconnected.go new file mode 100644 index 000000000..528218f2f --- /dev/null +++ b/platform/pkg/models/webhooks/connectiondisconnected.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ConnectionDisconnectedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ConnectionDisconnectedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ConnectionDisconnectedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ConnectionDisconnectedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/webhooks/connectionfailed.go b/platform/pkg/models/webhooks/connectionfailed.go new file mode 100644 index 000000000..3b871b513 --- /dev/null +++ b/platform/pkg/models/webhooks/connectionfailed.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ConnectionFailedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ConnectionFailedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ConnectionFailedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ConnectionFailedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/webhooks/connectionreconnected.go b/platform/pkg/models/webhooks/connectionreconnected.go new file mode 100644 index 000000000..980bf8bd8 --- /dev/null +++ b/platform/pkg/models/webhooks/connectionreconnected.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ConnectionReconnectedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ConnectionReconnectedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ConnectionReconnectedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ConnectionReconnectedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/webhooks/readcompleted.go b/platform/pkg/models/webhooks/readcompleted.go new file mode 100644 index 000000000..cbb2d6caa --- /dev/null +++ b/platform/pkg/models/webhooks/readcompleted.go @@ -0,0 +1,37 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package webhooks + +import ( + "net/http" +) + +type ReadCompletedResponse struct { + // HTTP response content type for this operation + ContentType string + // HTTP response status code for this operation + StatusCode int + // Raw HTTP response; suitable for custom response parsing + RawResponse *http.Response +} + +func (o *ReadCompletedResponse) GetContentType() string { + if o == nil { + return "" + } + return o.ContentType +} + +func (o *ReadCompletedResponse) GetStatusCode() int { + if o == nil { + return 0 + } + return o.StatusCode +} + +func (o *ReadCompletedResponse) GetRawResponse() *http.Response { + if o == nil { + return nil + } + return o.RawResponse +} diff --git a/platform/pkg/models/operations/creategroup.go b/platform/pkg/models/webhooks/readcompletedinitial.go similarity index 53% rename from platform/pkg/models/operations/creategroup.go rename to platform/pkg/models/webhooks/readcompletedinitial.go index 86cf50e9a..209df7257 100644 --- a/platform/pkg/models/operations/creategroup.go +++ b/platform/pkg/models/webhooks/readcompletedinitial.go @@ -1,45 +1,35 @@ // Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. -package operations +package webhooks import ( - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" "net/http" ) -type CreateGroupResponse struct { +type ReadCompletedInitialResponse struct { // HTTP response content type for this operation ContentType string - // Success - Group *shared.Group // HTTP response status code for this operation StatusCode int // Raw HTTP response; suitable for custom response parsing RawResponse *http.Response } -func (o *CreateGroupResponse) GetContentType() string { +func (o *ReadCompletedInitialResponse) GetContentType() string { if o == nil { return "" } return o.ContentType } -func (o *CreateGroupResponse) GetGroup() *shared.Group { - if o == nil { - return nil - } - return o.Group -} - -func (o *CreateGroupResponse) GetStatusCode() int { +func (o *ReadCompletedInitialResponse) GetStatusCode() int { if o == nil { return 0 } return o.StatusCode } -func (o *CreateGroupResponse) GetRawResponse() *http.Response { +func (o *ReadCompletedInitialResponse) GetRawResponse() *http.Response { if o == nil { return nil } diff --git a/platform/pkg/utils/form.go b/platform/pkg/utils/form.go index 5164dfe69..f63811e3d 100644 --- a/platform/pkg/utils/form.go +++ b/platform/pkg/utils/form.go @@ -12,7 +12,7 @@ import ( "github.com/ericlagergren/decimal" - "github.com/codatio/client-sdk-go/platform/v3/pkg/types" + "github.com/codatio/client-sdk-go/platform/v4/pkg/types" ) func populateForm(paramName string, explode bool, objType reflect.Type, objValue reflect.Value, delimiter string, getFieldName func(reflect.StructField) string) url.Values { diff --git a/platform/pkg/utils/json.go b/platform/pkg/utils/json.go index eadc833ac..ac708768f 100644 --- a/platform/pkg/utils/json.go +++ b/platform/pkg/utils/json.go @@ -13,7 +13,7 @@ import ( "time" "unsafe" - "github.com/codatio/client-sdk-go/platform/v3/pkg/types" + "github.com/codatio/client-sdk-go/platform/v4/pkg/types" "github.com/ericlagergren/decimal" ) diff --git a/platform/pkg/utils/pathparams.go b/platform/pkg/utils/pathparams.go index b124a2777..380c4c8bc 100644 --- a/platform/pkg/utils/pathparams.go +++ b/platform/pkg/utils/pathparams.go @@ -13,7 +13,7 @@ import ( "github.com/ericlagergren/decimal" - "github.com/codatio/client-sdk-go/platform/v3/pkg/types" + "github.com/codatio/client-sdk-go/platform/v4/pkg/types" ) func GenerateURL(_ context.Context, serverURL, path string, pathParams interface{}, globals interface{}) (string, error) { diff --git a/platform/pkg/utils/queryparams.go b/platform/pkg/utils/queryparams.go index bb46e71c8..0a821f075 100644 --- a/platform/pkg/utils/queryparams.go +++ b/platform/pkg/utils/queryparams.go @@ -14,7 +14,7 @@ import ( "github.com/ericlagergren/decimal" - "github.com/codatio/client-sdk-go/platform/v3/pkg/types" + "github.com/codatio/client-sdk-go/platform/v4/pkg/types" ) func PopulateQueryParams(_ context.Context, req *http.Request, queryParams interface{}, globals interface{}) error { diff --git a/platform/pkg/utils/retries.go b/platform/pkg/utils/retries.go index 796e5564d..ce817ee94 100644 --- a/platform/pkg/utils/retries.go +++ b/platform/pkg/utils/retries.go @@ -7,7 +7,7 @@ import ( "errors" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" "net/http" "net/url" "strconv" diff --git a/platform/pkg/utils/utils.go b/platform/pkg/utils/utils.go index adb2f7055..f1ff9e0aa 100644 --- a/platform/pkg/utils/utils.go +++ b/platform/pkg/utils/utils.go @@ -3,10 +3,12 @@ package utils import ( + "bytes" "context" "fmt" "io" "math/big" + "net/http" "reflect" "regexp" "strconv" @@ -228,3 +230,15 @@ func contains(arr []string, str string) bool { } return false } + +func ConsumeRawBody(res *http.Response) ([]byte, error) { + rawBody, err := io.ReadAll(res.Body) + if err != nil { + return nil, fmt.Errorf("error reading response body: %w", err) + } + + res.Body.Close() + res.Body = io.NopCloser(bytes.NewBuffer(rawBody)) + + return rawBody, nil +} diff --git a/platform/pushdata.go b/platform/pushdata.go index b29e35457..6d277d43d 100644 --- a/platform/pushdata.go +++ b/platform/pushdata.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -185,21 +184,11 @@ func (s *PushData) GetModelOptions(ctx context.Context, request operations.GetCr RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -211,11 +200,10 @@ func (s *PushData) GetModelOptions(ctx context.Context, request operations.GetCr res.PushOption = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -233,7 +221,7 @@ func (s *PushData) GetModelOptions(ctx context.Context, request operations.GetCr case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -245,28 +233,25 @@ func (s *PushData) GetModelOptions(ctx context.Context, request operations.GetCr return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -275,7 +260,9 @@ func (s *PushData) GetModelOptions(ctx context.Context, request operations.GetCr } // GetOperation - Get push operation -// Retrieve push operation. +// The **Get push operation** endpoint returns a specific [push operation](/using-the-api/push) identified by the `pushOperationKey` that was performed on the company. +// +// Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushOperationRequest, opts ...operations.Option) (*operations.GetPushOperationResponse, error) { hookCtx := hooks.HookContext{ Context: ctx, @@ -423,21 +410,11 @@ func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushO RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -449,11 +426,10 @@ func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushO res.PushOperation = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -471,7 +447,7 @@ func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushO case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -483,28 +459,25 @@ func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushO return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -513,7 +486,9 @@ func (s *PushData) GetOperation(ctx context.Context, request operations.GetPushO } // ListOperations - List push operations -// List push operation records. +// The **List push operations** endpoint returns a list of [push operations](/using-the-api/push) performed on the company. +// +// Write operations are actions that send requests to Codat, enabling the creation, updating, deletion of records, or uploading attachments in the connected accounting software. func (s *PushData) ListOperations(ctx context.Context, request operations.GetCompanyPushHistoryRequest, opts ...operations.Option) (*operations.GetCompanyPushHistoryResponse, error) { hookCtx := hooks.HookContext{ Context: ctx, @@ -665,21 +640,11 @@ func (s *PushData) ListOperations(ctx context.Context, request operations.GetCom RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -691,11 +656,10 @@ func (s *PushData) ListOperations(ctx context.Context, request operations.GetCom res.PushOperations = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -715,7 +679,7 @@ func (s *PushData) ListOperations(ctx context.Context, request operations.GetCom case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -727,28 +691,25 @@ func (s *PushData) ListOperations(ctx context.Context, request operations.GetCom return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/refreshdata.go b/platform/refreshdata.go index 0d323f94b..1c265a5fc 100644 --- a/platform/refreshdata.go +++ b/platform/refreshdata.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -181,16 +180,6 @@ func (s *RefreshData) All(ctx context.Context, request operations.RefreshCompany RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 204: case httpRes.StatusCode == 401: @@ -208,7 +197,7 @@ func (s *RefreshData) All(ctx context.Context, request operations.RefreshCompany case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -220,28 +209,25 @@ func (s *RefreshData) All(ctx context.Context, request operations.RefreshCompany return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -404,21 +390,11 @@ func (s *RefreshData) ByDataType(ctx context.Context, request operations.Refresh RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -430,11 +406,10 @@ func (s *RefreshData) ByDataType(ctx context.Context, request operations.Refresh res.PullOperation = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -452,7 +427,7 @@ func (s *RefreshData) ByDataType(ctx context.Context, request operations.Refresh case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -464,28 +439,25 @@ func (s *RefreshData) ByDataType(ctx context.Context, request operations.Refresh return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -642,21 +614,11 @@ func (s *RefreshData) Get(ctx context.Context, request operations.GetCompanyData RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -668,11 +630,10 @@ func (s *RefreshData) Get(ctx context.Context, request operations.GetCompanyData res.DataStatuses = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -690,7 +651,7 @@ func (s *RefreshData) Get(ctx context.Context, request operations.GetCompanyData case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -702,28 +663,25 @@ func (s *RefreshData) Get(ctx context.Context, request operations.GetCompanyData return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -880,21 +838,11 @@ func (s *RefreshData) GetPullOperation(ctx context.Context, request operations.G RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -906,11 +854,10 @@ func (s *RefreshData) GetPullOperation(ctx context.Context, request operations.G res.PullOperation = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -928,7 +875,7 @@ func (s *RefreshData) GetPullOperation(ctx context.Context, request operations.G case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -940,28 +887,25 @@ func (s *RefreshData) GetPullOperation(ctx context.Context, request operations.G return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1122,21 +1066,11 @@ func (s *RefreshData) ListPullOperations(ctx context.Context, request operations RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1148,11 +1082,10 @@ func (s *RefreshData) ListPullOperations(ctx context.Context, request operations res.PullOperations = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -1172,7 +1105,7 @@ func (s *RefreshData) ListPullOperations(ctx context.Context, request operations case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1184,28 +1117,25 @@ func (s *RefreshData) ListPullOperations(ctx context.Context, request operations return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/settings.go b/platform/settings.go index 26cdac02d..73862f016 100644 --- a/platform/settings.go +++ b/platform/settings.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "net/url" ) @@ -194,21 +193,11 @@ func (s *Settings) CreateAPIKey(ctx context.Context, request *shared.CreateAPIKe RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 201: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -220,11 +209,10 @@ func (s *Settings) CreateAPIKey(ctx context.Context, request *shared.CreateAPIKe res.APIKeyDetails = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -244,7 +232,7 @@ func (s *Settings) CreateAPIKey(ctx context.Context, request *shared.CreateAPIKe case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -256,28 +244,25 @@ func (s *Settings) CreateAPIKey(ctx context.Context, request *shared.CreateAPIKe return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -443,37 +428,26 @@ func (s *Settings) DeleteAPIKey(ctx context.Context, request operations.DeleteAP RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 204: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - var out sdkerrors.ErrorMessage + var out shared.ErrorMessage if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil { return nil, err } res.ErrorMessage = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -491,7 +465,7 @@ func (s *Settings) DeleteAPIKey(ctx context.Context, request operations.DeleteAP case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -503,28 +477,25 @@ func (s *Settings) DeleteAPIKey(ctx context.Context, request operations.DeleteAP return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -681,21 +652,11 @@ func (s *Settings) GetProfile(ctx context.Context, opts ...operations.Option) (* RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -707,11 +668,10 @@ func (s *Settings) GetProfile(ctx context.Context, opts ...operations.Option) (* res.Profile = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -727,7 +687,7 @@ func (s *Settings) GetProfile(ctx context.Context, opts ...operations.Option) (* case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -739,28 +699,25 @@ func (s *Settings) GetProfile(ctx context.Context, opts ...operations.Option) (* return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -917,21 +874,11 @@ func (s *Settings) GetSyncSettings(ctx context.Context, opts ...operations.Optio RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -943,11 +890,10 @@ func (s *Settings) GetSyncSettings(ctx context.Context, opts ...operations.Optio res.SyncSettings = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -963,7 +909,7 @@ func (s *Settings) GetSyncSettings(ctx context.Context, opts ...operations.Optio case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -975,28 +921,25 @@ func (s *Settings) GetSyncSettings(ctx context.Context, opts ...operations.Optio return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1157,21 +1100,11 @@ func (s *Settings) ListAPIKeys(ctx context.Context, opts ...operations.Option) ( RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1183,11 +1116,10 @@ func (s *Settings) ListAPIKeys(ctx context.Context, opts ...operations.Option) ( res.APIKeys = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -1203,7 +1135,7 @@ func (s *Settings) ListAPIKeys(ctx context.Context, opts ...operations.Option) ( case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1215,28 +1147,25 @@ func (s *Settings) ListAPIKeys(ctx context.Context, opts ...operations.Option) ( return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1399,21 +1328,11 @@ func (s *Settings) UpdateProfile(ctx context.Context, request *shared.Profile, o RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1425,11 +1344,10 @@ func (s *Settings) UpdateProfile(ctx context.Context, request *shared.Profile, o res.Profile = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -1445,7 +1363,7 @@ func (s *Settings) UpdateProfile(ctx context.Context, request *shared.Profile, o case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1457,28 +1375,25 @@ func (s *Settings) UpdateProfile(ctx context.Context, request *shared.Profile, o return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1641,16 +1556,6 @@ func (s *Settings) UpdateSyncSettings(ctx context.Context, request *operations.U RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 204: case httpRes.StatusCode == 401: @@ -1666,7 +1571,7 @@ func (s *Settings) UpdateSyncSettings(ctx context.Context, request *operations.U case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1678,28 +1583,25 @@ func (s *Settings) UpdateSyncSettings(ctx context.Context, request *operations.U return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/supplementaldata.go b/platform/supplementaldata.go index 2b99633e0..6ccb3d527 100644 --- a/platform/supplementaldata.go +++ b/platform/supplementaldata.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" ) @@ -188,16 +187,6 @@ func (s *SupplementalData) Configure(ctx context.Context, request operations.Con RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: case httpRes.StatusCode == 401: @@ -215,7 +204,7 @@ func (s *SupplementalData) Configure(ctx context.Context, request operations.Con case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -227,28 +216,25 @@ func (s *SupplementalData) Configure(ctx context.Context, request operations.Con return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -407,21 +393,11 @@ func (s *SupplementalData) GetConfiguration(ctx context.Context, request operati RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -433,11 +409,10 @@ func (s *SupplementalData) GetConfiguration(ctx context.Context, request operati res.SupplementalDataConfiguration = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -455,7 +430,7 @@ func (s *SupplementalData) GetConfiguration(ctx context.Context, request operati case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -467,28 +442,25 @@ func (s *SupplementalData) GetConfiguration(ctx context.Context, request operati return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } diff --git a/platform/webhooks.go b/platform/webhooks.go index c154fdde2..a147eb49b 100644 --- a/platform/webhooks.go +++ b/platform/webhooks.go @@ -7,13 +7,12 @@ import ( "context" "fmt" "github.com/cenkalti/backoff/v4" - "github.com/codatio/client-sdk-go/platform/v3/internal/hooks" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/operations" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/sdkerrors" - "github.com/codatio/client-sdk-go/platform/v3/pkg/models/shared" - "github.com/codatio/client-sdk-go/platform/v3/pkg/retry" - "github.com/codatio/client-sdk-go/platform/v3/pkg/utils" - "io" + "github.com/codatio/client-sdk-go/platform/v4/internal/hooks" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/operations" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/sdkerrors" + "github.com/codatio/client-sdk-go/platform/v4/pkg/models/shared" + "github.com/codatio/client-sdk-go/platform/v4/pkg/retry" + "github.com/codatio/client-sdk-go/platform/v4/pkg/utils" "net/http" "net/url" ) @@ -29,8 +28,10 @@ func newWebhooks(sdkConfig sdkConfiguration) *Webhooks { } } -// Create webhook -// Create a new webhook configuration +// Create webhook (legacy) +// Use the *Create webhooks (legacy)* endpoint to create a rule-based webhook for your client. +// +// **Note:** This endpoint has been deprecated. Please use the [*Create webhook consumer*](https://docs.codat.io/platform-api#/operations/create-webhook-consumer) endpoint to create a webhook moving forward. // // Deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. func (s *Webhooks) Create(ctx context.Context, request *shared.CreateRule, opts ...operations.Option) (*operations.CreateRuleResponse, error) { @@ -186,21 +187,11 @@ func (s *Webhooks) Create(ctx context.Context, request *shared.CreateRule, opts RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -212,11 +203,10 @@ func (s *Webhooks) Create(ctx context.Context, request *shared.CreateRule, opts res.Webhook = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -232,7 +222,7 @@ func (s *Webhooks) Create(ctx context.Context, request *shared.CreateRule, opts case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -244,28 +234,25 @@ func (s *Webhooks) Create(ctx context.Context, request *shared.CreateRule, opts return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -433,21 +420,11 @@ func (s *Webhooks) CreateConsumer(ctx context.Context, request *shared.WebhookCo RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 201: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -459,11 +436,10 @@ func (s *Webhooks) CreateConsumer(ctx context.Context, request *shared.WebhookCo res.WebhookConsumer = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -481,7 +457,7 @@ func (s *Webhooks) CreateConsumer(ctx context.Context, request *shared.WebhookCo case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -493,28 +469,25 @@ func (s *Webhooks) CreateConsumer(ctx context.Context, request *shared.WebhookCo return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -673,16 +646,6 @@ func (s *Webhooks) DeleteConsumer(ctx context.Context, request operations.Delete RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 204: case httpRes.StatusCode == 401: @@ -700,7 +663,7 @@ func (s *Webhooks) DeleteConsumer(ctx context.Context, request operations.Delete case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -712,28 +675,25 @@ func (s *Webhooks) DeleteConsumer(ctx context.Context, request operations.Delete return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -741,8 +701,10 @@ func (s *Webhooks) DeleteConsumer(ctx context.Context, request operations.Delete } -// Get webhook -// Get a single webhook +// Get webhook (legacy) +// Use the *Get webhook (legacy)* endpoint to retrieve a specific webhook for your client. +// +// **Note:** This endpoint has been deprecated. Please use the [*List webhook consumers*](https://docs.codat.io/platform-api#/operations/list-webhook-consumers) endpoint for listing webhooks moving forward. // // Deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest, opts ...operations.Option) (*operations.GetWebhookResponse, error) { @@ -892,21 +854,11 @@ func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -918,11 +870,10 @@ func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest res.Webhook = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 401: @@ -940,7 +891,7 @@ func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -952,28 +903,25 @@ func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -981,8 +929,10 @@ func (s *Webhooks) Get(ctx context.Context, request operations.GetWebhookRequest } -// List webhooks -// List webhooks that you are subscribed to. +// List webhooks (legacy) +// Use the *List webhooks (legacy)* endpoint to retrieve all existing rule-based webhooks for your client. +// +// **Note:** This endpoint has been deprecated. Please use the [*List webhook consumers*](https://docs.codat.io/platform-api#/operations/list-webhook-consumers) endpoint for listing webhooks moving forward. // // Deprecated method: This will be removed in a future release, please migrate away from it as soon as possible. func (s *Webhooks) List(ctx context.Context, request operations.ListRulesRequest, opts ...operations.Option) (*operations.ListRulesResponse, error) { @@ -1136,21 +1086,11 @@ func (s *Webhooks) List(ctx context.Context, request operations.ListRulesRequest RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1162,11 +1102,10 @@ func (s *Webhooks) List(ctx context.Context, request operations.ListRulesRequest res.Webhooks = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -1186,7 +1125,7 @@ func (s *Webhooks) List(ctx context.Context, request operations.ListRulesRequest case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1198,28 +1137,25 @@ func (s *Webhooks) List(ctx context.Context, request operations.ListRulesRequest return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) } @@ -1378,21 +1314,11 @@ func (s *Webhooks) ListConsumers(ctx context.Context, opts ...operations.Option) RawResponse: httpRes, } - getRawBody := func() ([]byte, error) { - rawBody, err := io.ReadAll(httpRes.Body) - if err != nil { - return nil, fmt.Errorf("error reading response body: %w", err) - } - httpRes.Body.Close() - httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody)) - return rawBody, nil - } - switch { case httpRes.StatusCode == 200: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1404,11 +1330,10 @@ func (s *Webhooks) ListConsumers(ctx context.Context, opts ...operations.Option) res.WebhookConsumers = &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode == 400: @@ -1426,7 +1351,7 @@ func (s *Webhooks) ListConsumers(ctx context.Context, opts ...operations.Option) case httpRes.StatusCode == 503: switch { case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`): - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } @@ -1438,28 +1363,25 @@ func (s *Webhooks) ListConsumers(ctx context.Context, opts ...operations.Option) return nil, &out default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes) } case httpRes.StatusCode >= 400 && httpRes.StatusCode < 500: fallthrough case httpRes.StatusCode >= 500 && httpRes.StatusCode < 600: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("API error occurred", httpRes.StatusCode, string(rawBody), httpRes) default: - rawBody, err := getRawBody() + rawBody, err := utils.ConsumeRawBody(httpRes) if err != nil { return nil, err } - return nil, sdkerrors.NewSDKError("unknown status code returned", httpRes.StatusCode, string(rawBody), httpRes) }