Isso teria sido muito mais simples, na minha opinião, mas não quero quebrar aplicativos existentes . Deixe a geração da instância de SSO por conta do usuário.
# 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
Talvez amanhã eu faça algo assim (mas mais elegante)
# 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)
.... mesmo que o atual
end
end
end
end
end
O que acham? Idealmente, meu aplicativo terá uma única função que gera DiscourseApi::SingleSignOn, e assim poderei passá-la para sso_login ou sync_sso.