Sha256: 0032a70ce70d29b873d502695b471b785e2f4da354a9b96a589a9fe03299ffbd

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

module LoopsSdk
  class Contacts < Base
    class << self
      def create(email:, properties: {}, mailing_lists: {})
        contact_data = {
          email: email,
          mailingLists: mailing_lists
        }.merge(properties)
        make_request(:post, "v1/contacts/create", {}, contact_data)
      end

      def update(email:, properties: {}, mailing_lists: {})
        contact_data = {
          email: email,
          mailingLists: mailing_lists
        }.merge(properties)
        puts "Contact Data: #{contact_data.inspect}"
        make_request(:put, "v1/contacts/update", {}, contact_data)
      end

      def find(email: nil, user_id: nil)
        raise ArgumentError, "Only one parameter is permitted." if email && user_id
        raise ArgumentError, "You must provide an email or user_id value." if email.nil? && user_id.nil?

        params = email ? { email: email } : { userId: user_id }
        make_request(:get, "v1/contacts/find", params)
      end

      def delete(email: nil, user_id: nil)
        raise ArgumentError, "Only one parameter is permitted." if email && user_id
        raise ArgumentError, "You must provide an email or user_id value." if email.nil? && user_id.nil?

        body = email ? { email: email } : { userId: user_id }
        make_request(:post, "v1/contacts/delete", {}, body)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
loops_sdk-0.1.2 lib/loops_sdk/contacts.rb