كان من الممكن أن يكون هذا أسهل بكثير في رأيي، لكنني لا أريد كسر التطبيقات الحالية . دعنا نترك توليد مثيل SSO للمستخدم.
# frozen_string_literal: true
module DiscourseApi
module API
module SSO
def sync_sso(sso)
post("/admin/users/sync_sso", sso.payload)
end
end
end
end
ربما غداً سأفعل شيئاً مشابهاً (لكن أنظف)
# frozen_string_literal: true
module DiscourseApi
module API
module SSO
def sync_sso(params)
if params.instance_of?(DiscourseApi::SingleSignOn)
post("/admin/users/sync_sso", sso.payload)
elsif params.instance_of?(Hash)
.... نفس الوضع الحالي
end
end
end
end
end
ما رأيكم؟ ستمتلك طلبي مثالياً دالة واحدة تولد DiscourseApi::SingleSignOn، وحينها سأتمكن من تمريرها إلى sso_login أو sync_sso