Переключаясь с моего собственного решения для аутентификации на Devise, я пытаюсь интегрироваться с моей почтовой службой Convertkit.
Я пытаюсь заставить devise вызывать мой метод после подтверждения пользователя, но я не уверен, как вызвать ресурс.
Я пробовал оба эти решения:
https://stackoverflow.com/a/25336930/6848493
https://stackoverflow.com/a/16423638/6848493
Вот моя модель пользователя:
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :lockable, :lastseenable, :timeoutable
validates :terms_and_privacy_policy,
acceptance: { accept: true }, on: :create, allow_nil: false
validates :first_name, presence: true
validates :last_name, presence: true
def confirm!
super
subscribe self
self.send_convertkit_failure unless @ck_response_code == 200
end
# Send email to admin in case of ConvertKit API failure
def send_convertkit_failure
UserMailer.convertkit_failure(self).deliver_now
end
Вот мой помощник пользователя:
module UsersHelper
def subscribe(user)
response = HTTParty.post("https://api.convertkit.com/v3/forms/form/subscribe",
query: {email: user.email, first_name: user.name, course_opted: true, api_secret: 'my secret' })
@ck_response_code = response.code
end
end
Нет сообщения об ошибке, оно подтверждает, что пользователь в порядке, но не подписывает их на convertkit. Я попробовал тот же код, но с ресурсом
как объект, но это выдает ошибку.
Что касается второго метода (запись в after_confirmation), то он ошибочен, говоря, что пользователь уже подтвержден.
Буду очень признателен за ваш вклад, заранее спасибо.