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

Version Path
et_fake_ccd-1.1.3 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.1.2 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.1.1 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.1.0 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.8 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.7 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.6 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.5 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.4 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.3 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.2 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.1 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-1.0.0 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.39 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.38 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.37 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.36 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.35 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.34 lib/et_fake_ccd/service/auth_app.rb
et_fake_ccd-0.1.33 lib/et_fake_ccd/service/auth_app.rb