Sha256: f5c63ae82b1c9a230ec55e913d1d8308c49c3b2c75c6ca43b990ca9681fb165f

Contents?: true

Size: 867 Bytes

Versions: 2

Compression:

Stored size: 867 Bytes

Contents

# frozen_string_literal: true

require_relative 'api_wrapper'

module Stash
  module Rewards
    class CreateUser < ApiWrapper
      def call(user_identifier:)
        api_response = api_wrapper.post('users') do |req|
          req.body = user_payload(user_identifier)
        end

        response = Stash::Rewards::Response.new(api_response)
        raise Stash::Rewards::Error, response.error_message if response.error?

        response
      rescue Faraday::Error => e
        raise Stash::Rewards::Error, e.message
      end

      private

      def user_payload(user_identifier)
        [
          {
            refId: user_identifier,
            firstName: user_identifier,
            lastName: user_identifier,
            status: 'ACTIVE',
            email: "#{user_identifier}@mailinator.com"
          }
        ].to_json
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stash-rewards-0.0.4 lib/stash/rewards/create_user.rb
stash-rewards-0.0.3 lib/stash/rewards/create_user.rb