cleanup auth, start bot
This commit is contained in:
parent
db22f4a942
commit
2d85fdb5cd
@ -1,4 +1,23 @@
|
||||
class ApplicationController < ActionController::Base
|
||||
# Only allow modern browsers supporting webp images, web push, badges, import maps, CSS nesting, and CSS :has.
|
||||
allow_browser versions: :modern
|
||||
|
||||
def authenticate
|
||||
unless authenticate_api_key?
|
||||
unauthorized_response
|
||||
end
|
||||
end
|
||||
|
||||
def authenticate_api_key?
|
||||
api_key = request.headers["X-API-KEY"]
|
||||
if api_key.present? && ApiKey.exists?(key: api_key)
|
||||
@apikey = ApiKey.find_by(key: api_key)
|
||||
return true
|
||||
end
|
||||
false
|
||||
end
|
||||
|
||||
def unauthorized_response
|
||||
render json: { error: "API key is missing or empty" }, status: :unauthorized
|
||||
end
|
||||
end
|
||||
|
16
app/controllers/bot_controller.rb
Normal file
16
app/controllers/bot_controller.rb
Normal file
@ -0,0 +1,16 @@
|
||||
class BotController < ApplicationController
|
||||
skip_before_action :verify_authenticity_token
|
||||
before_action :authenticate
|
||||
|
||||
def players
|
||||
|
||||
end
|
||||
|
||||
def summary
|
||||
|
||||
end
|
||||
|
||||
def player_name
|
||||
|
||||
end
|
||||
end
|
@ -1,5 +1,6 @@
|
||||
class GameController < ApplicationController
|
||||
skip_before_action :verify_authenticity_token, only: [ :create ]
|
||||
before_action :authenticate, only: [ :create ]
|
||||
|
||||
respond_to? :json
|
||||
def index
|
||||
@ -11,11 +12,6 @@ class GameController < ApplicationController
|
||||
end
|
||||
|
||||
def create
|
||||
unless authenticate_api_key?
|
||||
unauthorized_response
|
||||
return
|
||||
end
|
||||
|
||||
game_params[:timestamp] = Time.at(params[:timestamp].to_i).utc if params[:timestamp].present?
|
||||
if Game.find_by(timestamp: game_params[:timestamp])
|
||||
already_reported_response
|
||||
@ -59,19 +55,6 @@ class GameController < ApplicationController
|
||||
params.require(:game).permit(:timestamp, :gametype, :wager, :winner, :loser, :high_roll, :low_roll, :payout)
|
||||
end
|
||||
|
||||
def authenticate_api_key?
|
||||
api_key = request.headers["X-API-KEY"]
|
||||
if api_key.present? && ApiKey.exists?(key: api_key)
|
||||
@apikey = ApiKey.find_by(key: api_key)
|
||||
return true
|
||||
end
|
||||
false
|
||||
end
|
||||
|
||||
def unauthorized_response
|
||||
render json: { error: "API key is missing or empty" }, status: :unauthorized
|
||||
end
|
||||
|
||||
def already_reported_response
|
||||
render json: { error: "Already reported this gambo" }, status: :already_reported
|
||||
end
|
||||
|
2
app/helpers/bot_helper.rb
Normal file
2
app/helpers/bot_helper.rb
Normal file
@ -0,0 +1,2 @@
|
||||
module BotHelper
|
||||
end
|
@ -22,4 +22,9 @@ Rails.application.routes.draw do
|
||||
|
||||
# Discord
|
||||
match "discord" => redirect("https://discord.gg/hQShdPMy7p"), via: [ :get ]
|
||||
|
||||
# Bot
|
||||
get "bot/players" => "bot#players"
|
||||
get "bot/player/:id" => "bot#player_name"
|
||||
get "bot/summary" => "bot#summary"
|
||||
end
|
||||
|
7
test/controllers/bot_controller_test.rb
Normal file
7
test/controllers/bot_controller_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require "test_helper"
|
||||
|
||||
class BotControllerTest < ActionDispatch::IntegrationTest
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user