wassupdee / RUNTEQ_portfolio

0 stars 0 forks source link

LINE公式アカウントに送られるメールアドレスからLINE IDを保存する処理について、LINE IDが保存済みかどうか確認する処理を追加する #209

Closed wassupdee closed 2 weeks ago

wassupdee commented 2 weeks ago

概要

LINE公式アカウントに送られるメールアドレスからLINE IDを保存する処理について、LINE IDが保存済みかどうか確認する処理を追加する


背景・目的

LINE公式アカウントにメールアドレスを送るユーザーは3パターン。

  1. メアド・パスワード登録ユーザーで、まだline_user_idが登録されていないユーザー
  2. メアド・パスワード登録ユーザーで、既にline_user_idが登録されたユーザー
  3. LINEログインユーザー

現状のコードは、送られたメールアドレスでユーザーを検索し、そのユーザーのline_user_idにLINE IDを登録する仕様。 1のパターンは、問題なし。 2のパターンも、何回line_user_idをupdateしても問題ない。 3のパターンのユーザーは、email検索でユーザー情報を取得できないため、「連携に失敗しました」というメッセージが流れてしまう。しかし実際は、既にline_user_idにLINE IDが入っている。このユーザーに対しては、「連携済みです」というメッセージを送る

  def save
    @events.each do |event|
      next unless text_message?(event)

      line_id = event["source"]["userId"]
      user = find_user_by_email(event.message["text"])

      if user&.update(line_user_id: line_id)
        send_success_message(event["replyToken"])
      else
        send_failure_message(event["replyToken"])
      end
    end
  end

内容


対応しないこと


補足