https://github.com/grokify/go-ringcentral-engage
RingCentral Engage Digital / Dimelo SDK for Go - https://www.dimelo.com - https://engage-api-docs.rtfd.org
https://github.com/grokify/go-ringcentral-engage
Last synced: 3 months ago
JSON representation
RingCentral Engage Digital / Dimelo SDK for Go - https://www.dimelo.com - https://engage-api-docs.rtfd.org
- Host: GitHub
- URL: https://github.com/grokify/go-ringcentral-engage
- Owner: grokify
- License: mit
- Created: 2019-07-17T05:06:02.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T11:00:52.000Z (about 1 year ago)
- Last Synced: 2024-04-22T12:00:35.296Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 2.84 MB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RingCentral Engage SDK for Go
[![Build Status][build-status-svg]][build-status-url]
[![Go Report Card][goreport-svg]][goreport-url]
![API Coverage][api-coverage-svg]
[![Docs][docs-godoc-svg]][docs-godoc-url]
[![License][license-svg]][license-url]
[![Stack Overflow][stackoverflow-svg]][stackoverflow-url]
[![Twitter][twitter-svg]][twitter-url][api-coverage-svg]: https://img.shields.io/badge/api%20coverage-116%2F121%20%3D%2096%25-yellow.svg
[build-status-svg]: https://github.com/grokify/go-ringcentral-engage/actions/workflows/ci.yaml/badge.svg?branch=master
[build-status-url]: https://github.com/grokify/go-ringcentral-engage/actions/workflows/ci.yaml
[goreport-svg]: https://goreportcard.com/badge/github.com/grokify/go-ringcentral-engage
[goreport-url]: https://goreportcard.com/report/github.com/grokify/go-ringcentral-engage
[docs-godoc-svg]: https://img.shields.io/badge/docs-godoc-blue.svg
[docs-godoc-url]: https://godoc.org/github.com/grokify/go-ringcentral-engage/engagedigital
[license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/grokify/go-ringcentral-engage/blob/master/LICENSE
[stackoverflow-svg]: https://img.shields.io/badge/Stack%20Overflow-ringcentral-orange.svg
[stackoverflow-url]: https://stackoverflow.com/questions/tagged/ringcentral
[twitter-svg]: https://img.shields.io/twitter/follow/ringcentraldevs.svg?style=social&label=follow
[twitter-url]: https://twitter.com/RingCentralDevs## Overview
This currently provides a minimal Go SDK for RingCentral Engage Digital, formerly Dimelo:
https://www.dimelo.com
## Pre-requisites
You need the following:
1. RingCentral Engage Digital / Dimelo Account and the URL subdomain, e.g. `my-subdomain` in the following URL: `https://my-subdomain.engagement.dimelo.com`
1. An API Access Token. You can retrive this at the following URL, using your own domain in place of `my-subdomain`: `https://my-subdomain.engagement.dimelo.com/admin/api_access_tokens`## Installation
```
$ go get github.com/grokify/go-ringcental-engage/...
```## Usage
The main SDK is in the `engagedigital/engagedigital` folder. The `engagedigital/engagedigitalutil` folder provides a non-autogenerated helper function to instantiate the SDK:
```go
import("github.com/grokify/go-ringcentral-engage/engagedigital/engagedigitalutil")func main() {
apiClient := engagedigitalutil.NewApiClient("my-subdomain", "my-access-token")// helper function to get access to raw `*http.Client`
httpClient := apiClient.HTTPClient()
}
```For information on how to use the `apiClient` object, see:
1. [`engagedigital/examples`](engagedigital/examples) folder for usage. [`engagedigital/examples/simple_get`](engagedigital/examples/simple_get) includes a simple functions for a lot of the `GET` APIs.
1. [engagedigital/engagedigital/README.md](https://github.com/grokify/go-ringcentral-engage/blob/master/engagedigital/README.md) for SDK documentation.## Documentation
[engagedigital/engagedigital/README.md](https://github.com/grokify/go-ringcentral-engage/blob/master/engagedigital/README.md)
## Coverage
116/121 APIs - 96%
- [x] Communities
- [x] GET /1.0/communities
- [x] GET /1.0/communities/:id- [x] Sources
- [x] GET /1.0/content_sources
- [x] GET /1.0/content_sources/:id
- [x] PUT /1.0/content_sources/:id- [x] Folders
- [x] GET /1.0/folders
- [x] GET /1.0/folders/:id
- [x] POST /1.0/folders
- [x] PUT /1.0/folders/:id
- [x] DELETE /1.0/folders/:id- [x] Roles
- [x] GET /1.0/roles
- [x] GET /1.0/roles/:id
- [x] POST /1.0/roles
- [x] PUT /1.0/roles/:id- [x] Categories
- [x] GET /1.0/categories
- [x] GET /1.0/categories/:id
- [x] POST /1.0/categories
- [x] PUT /1.0/categories/:id
- [x] DELETE /1.0/categories/:id- [x] Tags
- [x] GET /1.0/tags
- [x] GET /1.0/tags/:id
- [x] POST /1.0/tags
- [x] PUT /1.0/tags/:id
- [x] DELETE /1.0/tags/:id- [x] Teams
- [x] GET /1.0/teams
- [x] GET /1.0/teams/:id
- [x] POST /1.0/teams
- [x] PUT /1.0/teams/:id
- [x] DELETE /1.0/teams/:id- [x] Users
- [x] GET /1.0/users/me
- [x] GET /1.0/users
- [x] GET /1.0/users/:id
- [x] POST /1.0/users
- [x] PUT /1.0/users/:id
- [x] POST /1.0/users/invite
- [x] DELETE /1.0/users/:id- [ ] User Source Permissions
- [ ] GET /1.0/users/:id/sources_permissions
- [ ] PUT /1.0/users/:id/sources_permissions- [x] Identities
- [x] GET /1.0/identities
- [x] GET /1.0/identities/:id- [x] Identity Groups
- [x] GET /1.0/identity_groups
- [x] GET /1.0/identity_groups/:id
- [x] PUT /1.0/identity_groups/:id- [x] Custom Fields
- [x] GET /1.0/custom_fields
- [x] GET /1.0/custom_fields/:id
- [x] POST /1.0/custom_fields
- [x] PUT /1.0/custom_fields/:id
- [x] DELETE /1.0/custom_fields/:id- [x] Threads
- [x] GET /1.0/content_threads
- [x] GET /1.0/content_threads/:id
- [x] PUT /1.0/content_threads/:id/update_categories
- [x] PUT /1.0/content_threads/:id/ignore
- [x] PUT /1.0/content_threads/:id/close
- [x] GET /1.0/content_threads/:id/open- [x] Contents
- [x] GET /1.0/contents
- [x] GET /1.0/contents/:id
- [x] POST /1.0/contents
- [x] PUT /1.0/contents/:id/update_categories
- [x] PUT /1.0/contents/:id/ignore- [x] Attachments
- [x] GET /1.0/attachments
- [x] GET /1.0/attachments/:id
- [x] POST /1.0/attachments- [x] Events
- [x] GET /1.0/events
- [x] GET /1.0/events/:id- [ ] Interventions
- [x] GET /1.0/interventions
- [x] GET /1.0/interventions/:id
- [x] POST /1.0/interventions
- [ ] PUT /1.0/interventions/:id
- [x] PUT /1.0/interventions/:id/close
- [x] PUT /1.0/interventions/:id/reassign
- [x] PUT /1.0/interventions/:id/update_categories
- [x] DELETE /1.0/interventions/:id/cancel- [x] Intervention comments
- [x] GET /1.0/intervention_comments
- [x] GET /1.0/intervention_comments/:id
- [x] POST /1.0/intervention_comments
- [x] DELETE /1.0/intervention_comments/:id- [x] Agent Status (task view)
- [x] GET /1.0/status
- [x] GET /1.0/status/:agent_id
- [ ] PUT /1.0/status/:agent_id- [x] Webhook
- [x] GET /1.0/webhooks
- [x] GET /1.0/webhooks/:id
- [x] POST /1.0/webhooks
- [x] PUT /1.0/webhooks/:id
- [x] DELETE /1.0/webhooks/:id- [x] Time Sheet
- [x] GET /1.0/time_sheets
- [x] GET /1.0/time_sheets/:id
- [x] POST /1.0/time_sheets
- [x] PUT /1.0/time_sheets/:id
- [x] DELETE /1.0/time_sheets/:id- [x] Channels
- [x] GET /1.0/channels
- [x] GET /1.0/channels/:id
- [x] PUT /1.0/channels/:id- [x] Settings
- [x] GET /1.0/settings
- [x] PUT /1.0/settings- [x] Locales
- [x] GET /1.0/locales- [x] Timezones
- [x] GET /1.0/timezones- [x] Presence statuses
- [x] GET /1.0/presence_status
- [x] GET /1.0/presence_status/:id
- [x] POST /1.0/presence_status
- [x] PUT /1.0/presence_status/:id
- [x] DELETE /1.0/presence_status/:id- [x] Tasks
- [x] GET /1.0/tasks
- [x] GET /1.0/tasks/:id
- [x] POST /1.0/tasks/:id/transfer
- [x] POST /1.0/tasks/:id/move- [x] Reply Assistant - Entries
- [x] GET /1.0/reply_assistant/entries
- [x] GET /1.0/reply_assistant/entries/:id
- [x] POST /1.0/reply_assistant/entries
- [x] PUT /1.0/reply_assistant/entries/:id
- [x] DELETE /1.0/reply_assistant/entries/:id- [x] Reply Assistant - Versions
- [x] GET /1.0/reply_assistant/versions
- [x] GET /1.0/reply_assistant/versions/:id
- [x] POST /1.0/reply_assistant/versions
- [x] PUT /1.0/reply_assistant/versions/:id
- [x] DELETE /1.0/reply_assistant/versions/:id- [x] Reply Assistant - Groups
- [x] GET /1.0/reply_assistant/groups
- [x] GET /1.0/reply_assistant/groups/:id
- [x] POST /1.0/reply_assistant/groups
- [x] PUT /1.0/reply_assistant/groups/:id
- [x] DELETE /1.0/reply_assistant/groups/:id- [ ] Survey Response
- [ ] GET /1.0/survey_responses/:idThere are 127 endpoints. To count, use the following on OS-X:
```
$ grep ' [ ]' README.md | wc -l
```## Building the SDK
You won't normally need to do this unless you want to modify the SDK, like adding endpoints via the OpenAPI 2.0 / Swagger 2.0 specification.
This SDK is auto-generated from the [OpenAPI 2.0 / Swagger 2.0 spec](codegen/openapi-spec.json) using [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator).
> **Note:** This SDK uses a merged OpenAPI spec so do not edit the `codegen/openapi-spec.json` file. Instead, edit files in and add files to the `codegen/partial-specs` folder.
Run:
```
$ cd codegen
$ go run merge.go -v 3
$ sh generate.sh
$ rm -rf ../engagedigital
$ mv engagedigital ..
```
# CreditsThanks to the following apps for making this possible:
* https://github.com/OpenAPITools/openapi-generator
* https://github.com/getkin/kin-openapi/tree/master/openapi3
* https://apidevtools.org/swagger-parser/online/
* https://mermade.org.uk/openapi-converter