업데이트 후 Get /users/by-external/ 요청 시 URL Not Found 오류 발생

사실 문제를 해결했습니다.

사용자를 찾을 수 없으면 실제로 에러를 발생시키도록 코드가 업데이트된 것 같습니다. 그래서 nil?과 비교하는 대신 rescue를 사용해야 했습니다.

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를 호출할 때 이제 Internal server error 500이 발생한다는 것입니다.

로그에는 다음과 같은 내용이 표시됩니다.
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_emails_pkey"

하지만 rails 터미널에서 완전히 동일한 세부 정보를 사용하여 client.sync_sso를 실행하면 완벽하게 정상적으로 동작합니다.

참고로 위 부분이 다시 작동하도록 엔드포인트를 변경하지 않았으므로 /users/by-external/이 여전히 유효한 것 같습니다.