2021-03-13 15:04:57 -08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
module External
|
2021-03-13 15:22:19 -08:00
|
|
|
module MailblusterHelper
|
2021-03-17 14:54:57 -07:00
|
|
|
MAILBLUSTER_URL = 'https://api.mailbluster.com/api/leads/'
|
2021-03-16 15:16:56 -07:00
|
|
|
|
2021-03-17 14:54:57 -07:00
|
|
|
# def query_api(user, method)
|
|
|
|
|
# TODO? General helper for all queries
|
|
|
|
|
# end
|
2021-03-16 14:28:39 -07:00
|
|
|
|
2021-03-13 15:04:57 -08:00
|
|
|
def create_lead(user)
|
2021-03-16 15:16:56 -07:00
|
|
|
uri = URI(MAILBLUSTER_URL)
|
|
|
|
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
|
|
|
request = Net::HTTP::Post.new(uri.path,
|
2021-03-17 14:54:57 -07:00
|
|
|
'Authorization' => ENV['MAILBLUSTER_API_KEY'])
|
2021-03-16 15:16:56 -07:00
|
|
|
request.body = {
|
|
|
|
|
'email' => user.email,
|
|
|
|
|
'firstName' => user.name,
|
|
|
|
|
'overrideExisting' => true,
|
|
|
|
|
'subscribed' => true,
|
|
|
|
|
'tags' => ['snapcon']
|
|
|
|
|
}.to_json
|
|
|
|
|
response = http.request(request)
|
|
|
|
|
response.to_json
|
|
|
|
|
rescue StandardError => e
|
|
|
|
|
puts "ERROR #{e}"
|
|
|
|
|
nil
|
2021-03-13 15:04:57 -08:00
|
|
|
end
|
2021-03-16 14:28:39 -07:00
|
|
|
|
|
|
|
|
def delete_lead(user)
|
2021-03-17 14:54:57 -07:00
|
|
|
email_hash = Digest::MD5.hexdigest user.email
|
|
|
|
|
uri = URI(MAILBLUSTER_URL + email_hash)
|
|
|
|
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
|
|
|
request = Net::HTTP::Delete.new(uri.path,
|
|
|
|
|
'Authorization' => ENV['MAILBLUSTER_API_KEY'])
|
|
|
|
|
response = http.request(request)
|
|
|
|
|
response.to_json
|
|
|
|
|
rescue StandardError => e
|
|
|
|
|
puts "ERROR #{e}"
|
|
|
|
|
nil
|
2021-03-16 14:28:39 -07:00
|
|
|
end
|
2021-03-13 15:04:57 -08:00
|
|
|
end
|
2021-03-13 15:22:19 -08:00
|
|
|
end
|