Разработать заказ после подтверждения действия - PullRequest
0 голосов
/ 08 мая 2018

Переключаясь с моего собственного решения для аутентификации на 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), то он ошибочен, говоря, что пользователь уже подтвержден.

Буду очень признателен за ваш вклад, заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2018

Наконец-то все заработало, в моей модели User:

  # Override Devise::Confirmable#after_confirmation
  def after_confirmation
    subscribe self
    self.send_convertkit_failure unless @ck_response_code == 200
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...