diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6b7b74c5..cce92405 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.3.0" + ".": "0.3.1" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 85a351b6..fb126643 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 44 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-433bfd8c688a6b6d2d4f964bb59121d692798f4e2bb6cb47f6110c4f0e1f638d.yml -openapi_spec_hash: 5378295d401c8c1152c1946cc7dbd69f -config_hash: 43a0daa5b05d44a1620e3da0ea6f4fdc +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sent%2Fsent-dm-8f8e43f2568f02505d53d422fb814604dd9534de6f990f9ae460e5513613da68.yml +openapi_spec_hash: b7a6855c6f0a9892f450f0bc67031d4e +config_hash: d475a61f5b59375bf562f85f19b80409 diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c2ae957..bd44ec2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.3.1 (2026-02-24) + +Full Changelog: [v0.3.0...v0.3.1](https://github.com/sentdm/sent-dm-ruby/compare/v0.3.0...v0.3.1) + +### Chores + +* configure new SDK language ([2918501](https://github.com/sentdm/sent-dm-ruby/commit/2918501a012ce30151845a0e1da920d6b071ab54)) +* **internal:** remove mock server code ([01a1560](https://github.com/sentdm/sent-dm-ruby/commit/01a1560c3ade7cc3c97c4934e69620ad5087c9a7)) +* update mock server docs ([477f6d8](https://github.com/sentdm/sent-dm-ruby/commit/477f6d8c6008438f3ad0ea1dda4070a2a82d1eec)) + ## 0.3.0 (2026-02-18) Full Changelog: [v0.2.0...v0.3.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.2.0...v0.3.0) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8eae608f..35d9fb5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,12 +66,6 @@ $ bundle exec rake ## Running tests -Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. - -```bash -$ npx prism mock path/to/your/openapi.yml -``` - ```bash $ bundle exec rake test ``` diff --git a/Gemfile.lock b/Gemfile.lock index a8dfb37e..18baf01b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - sentdm (0.3.0) + sentdm (0.3.1) cgi connection_pool diff --git a/README.md b/README.md index 2c17eaef..06411cd9 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,15 @@ The Sent Dm Ruby library provides convenient access to the Sent Dm REST API from It is generated with [Stainless](https://www.stainless.com/). +## MCP Server + +Use the Sent Dm MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application. + +[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40sentdm%2Fsentdm-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBzZW50ZG0vc2VudGRtLW1jcCJdLCJlbnYiOnsiU0VOVF9ETV9BUElfS0VZIjoiTXkgQVBJIEtleSJ9fQ) +[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40sentdm%2Fsentdm-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40sentdm%2Fsentdm-mcp%22%5D%2C%22env%22%3A%7B%22SENT_DM_API_KEY%22%3A%22My%20API%20Key%22%7D%7D) + +> Note: You may need to set environment variables in your MCP client. + ## Documentation Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/sentdm). @@ -17,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "sentdm", "~> 0.3.0" +gem "sentdm", "~> 0.3.1" ``` diff --git a/lib/sentdm/version.rb b/lib/sentdm/version.rb index 736327d7..15cea62b 100644 --- a/lib/sentdm/version.rb +++ b/lib/sentdm/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Sentdm - VERSION = "0.3.0" + VERSION = "0.3.1" end diff --git a/scripts/mock b/scripts/mock deleted file mode 100755 index 0b28f6ea..00000000 --- a/scripts/mock +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -if [[ -n "$1" && "$1" != '--'* ]]; then - URL="$1" - shift -else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 -fi - -echo "==> Starting mock server with URL ${URL}" - -# Run prism mock on the given spec -if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - - # Wait for server to come online - echo -n "Waiting for server" - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do - echo -n "." - sleep 0.1 - done - - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - - echo -else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" -fi diff --git a/scripts/test b/scripts/test index e0dc1374..df8caf98 100755 --- a/scripts/test +++ b/scripts/test @@ -4,53 +4,7 @@ set -e cd -- "$(dirname -- "$0")/.." -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 -} - -kill_server_on_port() { - pids=$(lsof -t -i tcp:"$1" || echo "") - if [ "$pids" != "" ]; then - kill "$pids" - echo "Stopped $pids." - fi -} - -function is_overriding_api_base_url() { - [ -n "$TEST_API_BASE_URL" ] -} - -if ! is_overriding_api_base_url && ! prism_is_running ; then - # When we exit this script, make sure to kill the background mock server process - trap 'kill_server_on_port 4010' EXIT - - # Start the dev server - ./scripts/mock --daemon -fi - -if is_overriding_api_base_url ; then - echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" - echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" - echo -e "running against your OpenAPI spec." - echo - echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" - echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" - echo - - exit 1 -else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" - echo -fi echo "==> Running tests" bundle exec rake test "$@" diff --git a/test/sentdm/resources/brands/campaigns_test.rb b/test/sentdm/resources/brands/campaigns_test.rb index ba726f15..9653d61b 100644 --- a/test/sentdm/resources/brands/campaigns_test.rb +++ b/test/sentdm/resources/brands/campaigns_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::Brands::CampaignsTest < Sentdm::Test::ResourceTest def test_create_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.campaigns.create( @@ -40,7 +40,7 @@ def test_create_required_params end def test_update_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.campaigns.update( @@ -77,7 +77,7 @@ def test_update_required_params end def test_list - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.campaigns.list("a1b2c3d4-e5f6-7890-abcd-ef1234567890") @@ -96,7 +96,7 @@ def test_list end def test_delete_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.campaigns.delete( diff --git a/test/sentdm/resources/brands_test.rb b/test/sentdm/resources/brands_test.rb index 12f7a2d8..4ca03f36 100644 --- a/test/sentdm/resources/brands_test.rb +++ b/test/sentdm/resources/brands_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::BrandsTest < Sentdm::Test::ResourceTest def test_create_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.create( @@ -26,7 +26,7 @@ def test_create_required_params end def test_update_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.update( @@ -49,7 +49,7 @@ def test_update_required_params end def test_list - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.list @@ -68,7 +68,7 @@ def test_list end def test_delete_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.brands.delete("a1b2c3d4-e5f6-7890-abcd-ef1234567890", body: {}) diff --git a/test/sentdm/resources/contacts_test.rb b/test/sentdm/resources/contacts_test.rb index d99fba74..a9b3ab2f 100644 --- a/test/sentdm/resources/contacts_test.rb +++ b/test/sentdm/resources/contacts_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::ContactsTest < Sentdm::Test::ResourceTest def test_create - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.contacts.create @@ -23,7 +23,7 @@ def test_create end def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.contacts.retrieve("6ba7b810-9dad-11d1-80b4-00c04fd430c8") @@ -42,7 +42,7 @@ def test_retrieve end def test_update - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.contacts.update("6ba7b810-9dad-11d1-80b4-00c04fd430c8") @@ -61,7 +61,7 @@ def test_update end def test_list_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.contacts.list(page: 0, page_size: 0) @@ -80,7 +80,7 @@ def test_list_required_params end def test_delete_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.contacts.delete("6ba7b810-9dad-11d1-80b4-00c04fd430c8", body: {}) diff --git a/test/sentdm/resources/lookup_test.rb b/test/sentdm/resources/lookup_test.rb index f8c7b554..18c72b48 100644 --- a/test/sentdm/resources/lookup_test.rb +++ b/test/sentdm/resources/lookup_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::LookupTest < Sentdm::Test::ResourceTest def test_retrieve_phone_info - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.lookup.retrieve_phone_info("phoneNumber") diff --git a/test/sentdm/resources/me_test.rb b/test/sentdm/resources/me_test.rb index e363a9e7..4ccc8c7c 100644 --- a/test/sentdm/resources/me_test.rb +++ b/test/sentdm/resources/me_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::MeTest < Sentdm::Test::ResourceTest def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.me.retrieve diff --git a/test/sentdm/resources/messages_test.rb b/test/sentdm/resources/messages_test.rb index 1ed915f7..e5c83994 100644 --- a/test/sentdm/resources/messages_test.rb +++ b/test/sentdm/resources/messages_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::MessagesTest < Sentdm::Test::ResourceTest def test_retrieve_activities - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.messages.retrieve_activities("8ba7b830-9dad-11d1-80b4-00c04fd430c8") @@ -23,7 +23,7 @@ def test_retrieve_activities end def test_retrieve_status - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.messages.retrieve_status("8ba7b830-9dad-11d1-80b4-00c04fd430c8") @@ -42,7 +42,7 @@ def test_retrieve_status end def test_send_ - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.messages.send_ diff --git a/test/sentdm/resources/profiles_test.rb b/test/sentdm/resources/profiles_test.rb index d03f4c38..a3a9acb0 100644 --- a/test/sentdm/resources/profiles_test.rb +++ b/test/sentdm/resources/profiles_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::ProfilesTest < Sentdm::Test::ResourceTest def test_create - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.create @@ -23,7 +23,7 @@ def test_create end def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -42,7 +42,7 @@ def test_retrieve end def test_update - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -61,7 +61,7 @@ def test_update end def test_list - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.list @@ -80,7 +80,7 @@ def test_list end def test_delete - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -90,7 +90,7 @@ def test_delete end def test_complete_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.profiles.complete( diff --git a/test/sentdm/resources/templates_test.rb b/test/sentdm/resources/templates_test.rb index 4cf2d589..5399ca0d 100644 --- a/test/sentdm/resources/templates_test.rb +++ b/test/sentdm/resources/templates_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::TemplatesTest < Sentdm::Test::ResourceTest def test_create - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.templates.create @@ -23,7 +23,7 @@ def test_create end def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.templates.retrieve("7ba7b820-9dad-11d1-80b4-00c04fd430c8") @@ -42,7 +42,7 @@ def test_retrieve end def test_update - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.templates.update("7ba7b820-9dad-11d1-80b4-00c04fd430c8") @@ -61,7 +61,7 @@ def test_update end def test_list_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.templates.list(page: 0, page_size: 0) @@ -80,7 +80,7 @@ def test_list_required_params end def test_delete - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.templates.delete("7ba7b820-9dad-11d1-80b4-00c04fd430c8") diff --git a/test/sentdm/resources/users_test.rb b/test/sentdm/resources/users_test.rb index 98d2a48f..8ca4130d 100644 --- a/test/sentdm/resources/users_test.rb +++ b/test/sentdm/resources/users_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::UsersTest < Sentdm::Test::ResourceTest def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.users.retrieve("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -23,7 +23,7 @@ def test_retrieve end def test_list - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.users.list @@ -42,7 +42,7 @@ def test_list end def test_invite - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.users.invite @@ -61,7 +61,7 @@ def test_invite end def test_remove - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.users.remove("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -71,7 +71,7 @@ def test_remove end def test_update_role - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.users.update_role("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") diff --git a/test/sentdm/resources/webhooks_test.rb b/test/sentdm/resources/webhooks_test.rb index 74dfaeb3..e024673a 100644 --- a/test/sentdm/resources/webhooks_test.rb +++ b/test/sentdm/resources/webhooks_test.rb @@ -4,7 +4,7 @@ class Sentdm::Test::Resources::WebhooksTest < Sentdm::Test::ResourceTest def test_create - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.create @@ -23,7 +23,7 @@ def test_create end def test_retrieve - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.retrieve("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8") @@ -42,7 +42,7 @@ def test_retrieve end def test_update - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.update("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8") @@ -61,7 +61,7 @@ def test_update end def test_list_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.list(page: 0, page_size: 0) @@ -80,7 +80,7 @@ def test_list_required_params end def test_delete - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.delete("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8") @@ -90,7 +90,7 @@ def test_delete end def test_list_event_types - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.list_event_types @@ -109,7 +109,7 @@ def test_list_event_types end def test_list_events_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.list_events("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8", page: 0, page_size: 0) @@ -128,7 +128,7 @@ def test_list_events_required_params end def test_rotate_secret_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.rotate_secret("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8", body: {}) @@ -147,7 +147,7 @@ def test_rotate_secret_required_params end def test_test_ - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.test_("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8") @@ -166,7 +166,7 @@ def test_test_ end def test_toggle_status - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @sent_dm.webhooks.toggle_status("d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8")