Sha256: f9b5d777f254097df985f1911aeb6caff3958394c83d33f3554f65674c703966

Contents?: true

Size: 1.33 KB

Versions: 6

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

module Mock
  module Twilio
    module Decorators
      module CustomerProfilesV1
        class Evaluations
          class << self
            def decorate(body, request)
              body["date_created"] = Time.current.rfc2822 if body["date_created"]
              parse_customer_profile_sid(body, request) if body["customer_profile_sid"]
              evaluation_sid(body, request) if body["sid"]
              body["account_sid"] = ::Twilio.account_sid
              body["policy_sid"] = request.data["PolicySid"] if body["policy_sid"]
              body["status"] = "compliant" if body["status"]

              body
            end

            def evaluation_sid(body, request)
              prefix = "EL"
              sid = prefix + SecureRandom.hex(16)
              scheduler = Rufus::Scheduler.new
              scheduler.in '2s' do
                Mock::Twilio::Webhooks::CustomerProfiles.trigger(body['customer_profile_sid'], "twilio-approved")
              end
              body["sid"] = sid
            end

            def parse_customer_profile_sid(body, request)
              uri = URI(request.url)
              customer_profile_sid = uri.path.split('/')[3].split('.').first
              body["customer_profile_sid"] = customer_profile_sid
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mock-twilio-0.7.2 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb
mock-twilio-0.7.1 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb
mock-twilio-0.7.0 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb
mock-twilio-0.6.0 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb
mock-twilio-0.5.0 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb
mock-twilio-0.4.0 lib/mock/twilio/decorators/customer_profiles_v1/evaluations.rb