Sha256: 6f90bf3d6b5506defa4ca7ce77eb284992104686f9a7e2d7b236467c51da899a

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

class WcoEmail::ApiController < ActionController::Base

  before_action      :check_credentials, only: [ :create_email_message ]
  before_action      :decode_jwt,      except: [ :create_email_message ]
  skip_before_action :verify_authenticity_token
  layout false

  def create_email_message
    # puts! params, 'params'

    stub = WcoEmail::MessageStub.find_or_create_by({
      bucket:     params[:bucket],
      object_key: params[:object_key],
    })

    WcoEmail::MessageIntakeJob.perform_async( stub.id.to_s )
    render status: :ok, json: { status: :ok }
  end

  ##
  ## private
  ##
  private

  def check_credentials
    if params[:secret] != AWS_SES_LAMBDA_SECRET
      render status: 400, json: { status: 400, message: "#check_credentials says unauthorized." }
      return
    end
  end

  def decode_jwt
    if Rails.env.test?
      sign_in User.find_by({ email: 'victor@wasya.co' })
      return
    end

    out = JWT.decode params[:jwt_token], nil, false
    email = out[0]['email']
    user = User.find_by({ email: email })
    puts! user, 'user'

    sign_in user
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wco_email-0.1.1.81 app/controllers/wco_email/api_controller.rb
wco_email-0.1.1.80 app/controllers/wco_email/api_controller.rb
wco_email-0.1.1.79 app/controllers/wco_email/api_controller.rb
wco_email-0.1.1.78 app/controllers/wco_email/api_controller.rb