الحصول على /users/by-external/ يرمي خطأ URL غير موجود بعد التحديث

تمكنت بالفعل من حلها

يبدو أنهم قاموا بتحديث الكود لرمي خطأ فعليًا إذا لم يتم العثور على مستخدم، لذلك كان عليّ استعادة الخطأ بدلاً من المقارنة إذا كان فارغًا؟

begin
    resp = client.get("/users/by-external/#{user.id}")
rescue DiscourseApi::NotFoundError => error
    puts error.response.body['errors'].first
    sync_user(user)
else
    resp.response.env.body['user']
end

أيضًا، تغير الرد من
resp['body']['user']
إلى
resp.response.env.body['user']

مشكلتي المتبقية الوحيدة هي أنه عندما أقوم باستدعاء client.sync_sso، أحصل على خطأ داخلي في الخادم 500 الآن

تظهر السجلات
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_emails_pkey"

ومع ذلك، إذا استخدمت نفس التفاصيل بالضبط في طرفية Rails وقمت بتشغيل client.sync_sso، فإنها تعمل بشكل مثالي

فقط للعلم، لم أقم بتغيير نقطة النهاية للأجزاء المذكورة أعلاه لتعمل مرة أخرى، لذلك يبدو أن /users/by-external/ لا يزال صالحًا