Skip to content

Commit

Permalink
refactor: remove moonrope but maintain legacy API actions
Browse files Browse the repository at this point in the history
  • Loading branch information
adamcooke committed Mar 18, 2024
1 parent 6a1ff56 commit 06cff9f
Show file tree
Hide file tree
Showing 13 changed files with 448 additions and 442 deletions.
1 change: 0 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ gem "kaminari"
gem "klogger-logger"
gem "konfig-config", "~> 3.0"
gem "mail"
gem "moonrope"
gem "mysql2"
gem "nifty-utils"
gem "nilify_blanks"
Expand Down
6 changes: 0 additions & 6 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ GEM
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.3.4)
deep_merge (1.2.2)
diff-lcs (1.5.0)
domain_name (0.6.20240107)
dotenv (3.0.2)
Expand Down Expand Up @@ -184,10 +183,6 @@ GEM
mini_mime (1.1.5)
mini_portile2 (2.8.5)
minitest (5.22.2)
moonrope (2.0.2)
deep_merge (~> 1.0)
json
rack (>= 1.4)
mysql2 (0.5.6)
net-http (0.4.1)
uri
Expand Down Expand Up @@ -423,7 +418,6 @@ DEPENDENCIES
klogger-logger
konfig-config (~> 3.0)
mail
moonrope
mysql2
nifty-utils
nilify_blanks
Expand Down
31 changes: 0 additions & 31 deletions api/authenticator.rb

This file was deleted.

41 changes: 0 additions & 41 deletions api/controllers/messages_api_controller.rb

This file was deleted.

112 changes: 0 additions & 112 deletions api/controllers/send_api_controller.rb

This file was deleted.

12 changes: 0 additions & 12 deletions api/structures/delivery_api_structure.rb

This file was deleted.

68 changes: 0 additions & 68 deletions api/structures/message_api_structure.rb

This file was deleted.

62 changes: 62 additions & 0 deletions app/controllers/legacy_api/base_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# frozen_string_literal: true

module LegacyAPI
class BaseController < ActionController::Base

before_action :start_timer
before_action :authenticate_as_server

private

def start_timer
@start_time = Time.now.to_f
end

def authenticate_as_server
key = request.headers["X-Server-API-Key"]
if key.blank?
render_error "AccessDenied",
message: "Must be authenticated as a server."
return
end

credential = Credential.where(type: "API", key: key).first
if credential.nil?
render_error "InvalidServerAPIKey",
message: "The API token provided in X-Server-API-Key was not valid.",
token: key
return
end

if credential.server.suspended?
render_error "ServerSuspended"
return
end

credential.use
@current_credential = credential
end

def render_success(data)
render json: { status: "success",
time: Time.now.to_f - @start_time,
flags: {},
data: data }
end

def render_error(code, data = {})
render json: { status: "error",
time: Time.now.to_f - @start_time,
flags: {},
data: data.merge(code: code) }
end

def render_parameter_error(message)
render json: { status: "parameter-error",
time: Time.now.to_f - @start_time,
flags: {},
data: { message: message } }
end

end
end

0 comments on commit 06cff9f

Please sign in to comment.