74 lines
1.8 KiB
Ruby
74 lines
1.8 KiB
Ruby
Rails.application.routes.draw do
|
|
# Health check endpoint
|
|
get "up" => "rails/health#show", as: :rails_health_check
|
|
|
|
# Mount Action Cable WebSocket server
|
|
mount ActionCable.server => "/cable"
|
|
|
|
# API routes
|
|
namespace :api do
|
|
namespace :v1 do
|
|
# Gateway device endpoints
|
|
namespace :gateway do
|
|
post "register", to: "registrations#create"
|
|
post "heartbeat", to: "heartbeats#create"
|
|
|
|
namespace :sms do
|
|
post "received", to: "sms#received"
|
|
post "status", to: "sms#status"
|
|
end
|
|
end
|
|
|
|
# Client application endpoints
|
|
post "sms/send", to: "sms#send_sms"
|
|
get "sms/status/:message_id", to: "sms#status"
|
|
get "sms/received", to: "sms#received"
|
|
|
|
# OTP endpoints
|
|
namespace :otp do
|
|
post "send", to: "otp#send_otp"
|
|
post "verify", to: "otp#verify"
|
|
end
|
|
|
|
# Admin endpoints
|
|
namespace :admin do
|
|
get "gateways", to: "gateways#index"
|
|
post "gateways/:id/toggle", to: "gateways#toggle"
|
|
get "stats", to: "stats#index"
|
|
end
|
|
end
|
|
end
|
|
|
|
# Admin interface routes
|
|
namespace :admin do
|
|
get "login", to: "sessions#new"
|
|
post "login", to: "sessions#create"
|
|
delete "logout", to: "sessions#destroy"
|
|
|
|
get "dashboard", to: "dashboard#index"
|
|
root to: "dashboard#index"
|
|
|
|
resources :api_keys, only: [:index, :new, :create, :show, :destroy] do
|
|
member do
|
|
post :toggle
|
|
end
|
|
end
|
|
|
|
resources :logs, only: [:index]
|
|
|
|
resources :gateways, only: [:index, :new, :create, :show] do
|
|
member do
|
|
post :toggle
|
|
get :test
|
|
post :send_test_sms
|
|
post :check_connection
|
|
end
|
|
end
|
|
|
|
get "api_tester", to: "api_tester#index"
|
|
end
|
|
|
|
# Root route
|
|
root to: proc { [200, {}, ["SMS Gateway API v1.0"]] }
|
|
end
|