cleanup auth, start bot
This commit is contained in:
		| @@ -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 | ||||
		Reference in New Issue
	
	Block a user