Namabar Ruby SDK
A lightweight Ruby SDK for interacting with the Namabar OTP & Messaging API. Provides simple, well-documented methods for each API endpoint with seamless HTTParty integration.
Features
- Easy Setup: Configure API credentials once, use everywhere
- Complete API Coverage: All OTP verification and messaging endpoints
- Type Safety: Full RBS type definitions included
- Zero Heavy Dependencies: Just HTTParty and that's it!
Installation
Add to your Gemfile
:
gem 'namabar'
Then run:
bundle install
Or install directly:
gem install namabar
Configuration
Configure your API credentials before using the client:
Namabar.configure do |config|
config.api_key = ENV.fetch('NAMABAR__API_KEY')
end
Usage
Create a client and start making API calls:
client = Namabar.client
OTP Verification
Create and send a verification code:
response = client.create_verification_code(
to: '+964751234567',
service_id: 'your-service-id',
locale: 'en', # optional
external_id: 'user-123', # optional
template_data: { name: 'John' } # optional
)
if response.success?
verification_id = response.parsed_response['id']
puts "Verification code sent! ID: #{verification_id}"
end
Verify the code:
response = client.verify_verification_code(
id: verification_id,
code: '123456'
)
if response.success?
puts "Code verified successfully!"
else
puts "Verification failed: #{response.parsed_response['message']}"
end
Get verification code details:
response = client.get_verification_code_by_id(id: verification_id)
puts response.parsed_response
Messaging
Send a message:
response = client.send_message(
type: 'Text',
to: '+964751234567',
service_id: 'your-service-id',
text: 'Hello from Namabar!', # optional (for custom text)
template: 'welcome_template', # optional (for templates)
external_id: 'msg-456' # optional
)
if response.success?
message_id = response.parsed_response['id']
puts "Message sent! ID: #{message_id}"
end
Get message details:
response = client.get_message(id: message_id)
puts response.parsed_response
Check message status:
response = client.get_message_status(id: message_id)
status = response.parsed_response['status']
puts "Message status: #{status}"
Response Handling
All methods return HTTParty::Response
objects:
response = client.create_verification_code(...)
# Check success
if response.success?
data = response.parsed_response
puts "Success: #{data}"
else
puts "Error #{response.code}: #{response.parsed_response['message']}"
end
# Access raw response
puts response.body
puts response.headers
puts response.code
Error Handling
begin
response = client.create_verification_code(...)
rescue Namabar::Error => e
puts "Namabar SDK error: #{e.message}"
rescue => e
puts "General error: #{e.message}"
end
API Reference
The SDK provides these methods corresponding to Namabar API endpoints:
OTP Verification:
-
create_verification_code(to:, service_id:, **options)
- Create and send OTP -
verify_verification_code(id:, code:)
- Verify OTP code -
get_verification_code_by_id(id:)
- Get verification details
Messaging:
-
send_message(type:, to:, service_id:, **options)
- Send message -
get_message(id:)
- Get message details -
get_message_status(id:)
- Get message status
All methods return HTTParty::Response
objects with the API response.
Development & Contributing
Please refer to the Development file for more information.
License
Released under the MIT License. See LICENSE for details.