Sha256: ed0e0950f6ed75ee05aedb812371786db7c874e87ac5088b50665a7530a28603

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 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)
        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

3 entries across 3 versions & 1 rubygems

Version Path
loops_sdk-1.1.0 lib/loops_sdk/contacts.rb
loops_sdk-1.0.0 lib/loops_sdk/contacts.rb
loops_sdk-0.2.0 lib/loops_sdk/contacts.rb