Sha256: d0636919629b92f30826d0fc5868c987b369ceeb7ab353a224b692f4d2413f54
Contents?: true
Size: 853 Bytes
Versions: 47
Compression:
Stored size: 853 Bytes
Contents
require 'roda' require 'json' require 'et_fake_ccd/commands' require 'et_fake_ccd/auth_service' module EtFakeCcd module Service class AuthApp < Roda plugin :request_headers plugin :halt route do |r| r.is "lease" do r.post do command = ::EtFakeCcd::Command::LeaseCommand.from_json JSON.parse(r.body.read) if command.valid? ::EtFakeCcd::AuthService.generate_service_token else r.halt 403, render_error_for(command) end end end end private def render_error_for(command) if command.errors.include?(:one_time_password) {message: 'Invalid one-time password'}.to_json else {message: command.errors.map(&:message).join(', ') } end end end end end
Version data entries
47 entries across 47 versions & 1 rubygems