nsweeting/qpush

View on GitHub
lib/qpush/web/server.rb

Summary

Maintainability
A
0 mins
Test Coverage
module QPush
  module Web
    class Server < Sinatra::Base
      set :public_folder, File.expand_path(File.dirname(__FILE__)) + '/public'

      before do
        pass if request.path_info == '/'
        content_type :json
        headers 'Access-Control-Allow-Origin' => '*',
                'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
      end

      get '/' do
        File.read(File.join(settings.public_folder, 'index.html'))
      end

      get '/stats' do
        Get.stats
      end

      get '/heartbeat' do
        Get.heartbeat
      end

      get '/history' do
        Get.history
      end

      get '/jobs' do
        Get.jobs
      end

      post '/queue_delayed' do
        Post.queue_delayed(params[:id], params[:score])
      end

      get '/delays' do
        Get.delays(params[:start].to_i, params[:count].to_i).to_json
      end

      get '/crons' do
        Get.crons(params[:start].to_i, params[:count].to_i)
      end

      get '/retries' do
        Get.retries(params[:start], params[:count])
      end

      get '/morgue' do
        Get.morgue(params[:start].to_i, params[:count].to_i)
      end

      post '/create' do
        Post.create(params)
      end
    end
  end
end