{"id":33608412,"url":"https://github.com/ding-live/ding-ruby","last_synced_at":"2025-11-30T18:05:32.309Z","repository":{"id":207401783,"uuid":"715671185","full_name":"ding-live/ding-ruby","owner":"ding-live","description":"Ding's Ruby SDK","archived":false,"fork":false,"pushed_at":"2025-11-19T00:23:52.000Z","size":1958,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-19T02:22:59.570Z","etag":null,"topics":["ding","ding-sdk"],"latest_commit_sha":null,"homepage":"https://docs.ding.live","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ding-live.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-07T15:49:24.000Z","updated_at":"2025-11-19T00:23:52.000Z","dependencies_parsed_at":"2024-01-19T01:53:01.591Z","dependency_job_id":"fbf5483b-0345-4c5c-bc1b-24326bb222f0","html_url":"https://github.com/ding-live/ding-ruby","commit_stats":null,"previous_names":["ding-live/ding-ruby"],"tags_count":419,"template":false,"template_full_name":null,"purl":"pkg:github/ding-live/ding-ruby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ding-live%2Fding-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ding-live%2Fding-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ding-live%2Fding-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ding-live%2Fding-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ding-live","download_url":"https://codeload.github.com/ding-live/ding-ruby/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ding-live%2Fding-ruby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27404141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-30T02:00:05.582Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ding","ding-sdk"],"created_at":"2025-11-30T18:01:29.579Z","updated_at":"2025-11-30T18:05:32.293Z","avatar_url":"https://github.com/ding-live.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Ding Ruby SDK\n\nThe Ding Ruby library provides convenient access to the Ding API from applications written in the Ruby language.\n\n\u003c!-- Start Summary [summary] --\u003e\n## Summary\n\nDing: The OTP API allows you to send authentication codes to your users using their phone numbers. The V1 API is **deprecated**. Technical support will end by **October 2025** and will be **removed by April 2026**. No new features and functionality will be added to the V1 API.\n\u003c!-- End Summary [summary] --\u003e\n\n\u003c!-- Start Table of Contents [toc] --\u003e\n## Table of Contents\n\u003c!-- $toc-max-depth=2 --\u003e\n* [Ding Ruby SDK](#ding-ruby-sdk)\n  * [SDK Installation](#sdk-installation)\n  * [SDK Example Usage](#sdk-example-usage)\n  * [SDK Example Usage](#sdk-example-usage-1)\n  * [Authentication](#authentication)\n  * [Available Resources and Operations](#available-resources-and-operations)\n  * [Error Handling](#error-handling)\n  * [Server Selection](#server-selection)\n* [Development](#development)\n  * [Maturity](#maturity)\n  * [Contributions](#contributions)\n\n\u003c!-- End Table of Contents [toc] --\u003e\n\n\u003c!-- Start SDK Installation [installation] --\u003e\n## SDK Installation\n\nThe SDK can be installed using [RubyGems](https://rubygems.org/):\n\n```bash\ngem install ding_sdk\n```\n\u003c!-- End SDK Installation [installation] --\u003e\n\n## SDK Example Usage\n\n\u003c!-- Start SDK Example Usage [usage] --\u003e\n## SDK Example Usage\n\n### Send a code\n\nSend an OTP code to a user's phone number.\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nreq = Models::Shared::CreateAuthenticationRequest.new(\n  customer_uuid: \"cf2edc1c-7fc6-48fb-86da-b7508c6b7b71\",\n  locale: \"fr-FR\",\n  phone_number: \"+1234567890\",\n)\n\nres = s.otp.create_authentication(req)\n\nif ! res.create_authentication_response.nil?\n  # handle response\nend\n\n```\n\n### Check a code\n\nCheck that a code entered by a user is valid.\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nreq = Models::Shared::CreateCheckRequest.new(\n  authentication_uuid: \"eebe792b-2fcc-44a0-87f1-650e79259e02\",\n  check_code: \"123456\",\n  customer_uuid: \"64f66a7c-4b2c-4131-a8ff-d5b954cca05f\",\n)\n\nres = s.otp.check(req)\n\nif ! res.create_check_response.nil?\n  # handle response\nend\n\n```\n\n### Perform a retry\n\nPerform a retry if a user has not received the code.\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nreq = Models::Shared::RetryAuthenticationRequest.new(\n  authentication_uuid: \"a4e4548a-1f7b-451a-81cb-a68ed5aff3b0\",\n  customer_uuid: \"28532118-1b33-420a-b57b-648c9bf85fee\",\n)\n\nres = s.otp.retry(req)\n\nif ! res.retry_authentication_response.nil?\n  # handle response\nend\n\n```\n\n### Send feedback\n\nSend feedback about the authentication process.\n\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nreq = Models::Shared::FeedbackRequest.new(\n  customer_uuid: \"cc0f6c04-40de-448f-8301-3cb0e6565dff\",\n  phone_number: \"+1234567890\",\n  status: Models::Shared::FeedbackRequestStatus::ONBOARDED,\n)\n\nres = s.otp.feedback(req)\n\nif ! res.feedback_response.nil?\n  # handle response\nend\n\n```\n\n### Get authentication status\n\nGet the status of an authentication.\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nres = s.otp.get_authentication_status(auth_uuid=\"d8446450-f2fa-4dd9-806b-df5b8c661f23\")\n\nif ! res.authentication_status_response.nil?\n  # handle response\nend\n\n```\n\n### Look up for phone number\n\nPerform a phone number lookup.\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nres = s.lookup.lookup(customer_uuid=\"69a197d9-356c-45d1-a807-41874e16b555\", phone_number=\"\u003cvalue\u003e\", type=[\n  Models::Operations::Type::CNAM,\n])\n\nif ! res.lookup_response.nil?\n  # handle response\nend\n\n```\n\u003c!-- End SDK Example Usage [usage] --\u003e\n\n\u003c!-- Start Authentication [security] --\u003e\n## Authentication\n\n### Per-Client Security Schemes\n\nThis SDK supports the following security scheme globally:\n\n| Name      | Type   | Scheme  |\n| --------- | ------ | ------- |\n| `api_key` | apiKey | API key |\n\nYou can set the security parameters through the `security` optional parameter when initializing the SDK client instance. For example:\n\u003c!-- End Authentication [security] --\u003e\n\n\u003c!-- Start Available Resources and Operations [operations] --\u003e\n## Available Resources and Operations\n\n\u003cdetails open\u003e\n\u003csummary\u003eAvailable methods\u003c/summary\u003e\n\n\n### [~~lookup~~](docs/sdks/lookup/README.md)\n\n* [~~lookup~~](docs/sdks/lookup/README.md#lookup) - Look up for phone number :warning: **Deprecated**\n\n### [~~otp~~](docs/sdks/otp/README.md)\n\n* [~~check~~](docs/sdks/otp/README.md#check) - Check a code :warning: **Deprecated**\n* [~~create_authentication~~](docs/sdks/otp/README.md#create_authentication) - Send a code :warning: **Deprecated**\n* [~~feedback~~](docs/sdks/otp/README.md#feedback) - Send feedback :warning: **Deprecated**\n* [~~get_authentication_status~~](docs/sdks/otp/README.md#get_authentication_status) - Get authentication status :warning: **Deprecated**\n* [~~retry~~](docs/sdks/otp/README.md#retry) - Perform a retry :warning: **Deprecated**\n\n\u003c/details\u003e\n\u003c!-- End Available Resources and Operations [operations] --\u003e\n\n\u003c!-- Start Error Handling [errors] --\u003e\n## Error Handling\n\nHandling errors in this SDK should largely match your expectations. All operations return a response object or raise an error.\n\nBy default an API error will raise a `Errors::APIError`, which has the following properties:\n\n| Property       | Type                                    | Description           |\n|----------------|-----------------------------------------|-----------------------|\n| `message`     | *string*                                 | The error message     |\n| `status_code`  | *int*                                   | The HTTP status code  |\n| `raw_response` | *Faraday::Response*                     | The raw HTTP response |\n| `body`        | *string*                                 | The response content  |\n\nWhen custom error responses are specified for an operation, the SDK may also throw their associated exception. You can refer to respective *Errors* tables in SDK docs for more details on possible exception types for each operation. For example, the `check` method throws the following exceptions:\n\n| Error Type                    | Status Code | Content Type     |\n| ----------------------------- | ----------- | ---------------- |\n| Models::Errors::ErrorResponse | 400         | application/json |\n| Errors::APIError              | 4XX, 5XX    | \\*/\\*            |\n\n### Example\n\n```ruby\nrequire 'ding_sdk'\n\ns = ::DingSDK::Ding.new(\n      security: Models::Shared::Security.new(\n        api_key: \"YOUR_API_KEY\",\n      ),\n    )\n\nbegin\n    req = Models::Shared::CreateCheckRequest.new(\n      authentication_uuid: \"eebe792b-2fcc-44a0-87f1-650e79259e02\",\n      check_code: \"123456\",\n      customer_uuid: \"64f66a7c-4b2c-4131-a8ff-d5b954cca05f\",\n    )\n\n    res = s.otp.check(req)\n\n    if ! res.create_check_response.nil?\n      # handle response\n    end\nrescue Models::Errors::ErrorResponse =\u003e e\n  # handle $e-\u003e$container data\n  throw $e;\nrescue Errors::APIError =\u003e e\n  # handle default exception\n  raise e\nend\n\n```\n\u003c!-- End Error Handling [errors] --\u003e\n\n\u003c!-- Start Server Selection [server] --\u003e\n## Server Selection\n\n### Override Server URL Per-Client\n\nThe default server can be overridden globally by passing a URL to the `server_url (String)` optional parameter when initializing the SDK client instance. For example:\n\u003c!-- End Server Selection [server] --\u003e\n\n\u003c!-- Placeholder for Future Speakeasy SDK Sections --\u003e\n\n# Development\n\n## Maturity\n\nThis SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage\nto a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally\nlooking for the latest version.\n\n## Contributions\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically.\nFeel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fding-live%2Fding-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fding-live%2Fding-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fding-live%2Fding-ruby/lists"}