Tengo una tabla de miembros en la base de datos de mi aplicación, donde almaceno información específica de la aplicación sobre un subconjunto de miembros. Una de las columnas es discourse_user_id. Me gustaría generar un enlace al perfil de Discourse del miembro. ¿Es posible hacerlo solo con su ID de usuario?
No estoy almacenando discourse_user_name porque el usuario puede cambiarlo, y luego tendría que preocuparme por mantenerlos sincronizados.
La única forma que se me ocurre es hacer una solicitud a la API a /admin/users/<user-id>.json para obtener su nombre de usuario, pero eso implicaría un gran número de solicitudes en una página de índice, donde estoy listando miembros con enlaces a sus perfiles.
Lo único más que se me ocurre es crear un plugin para añadir una ruta, aunque eso parece mucho esfuerzo para algo que espero no sea la primera persona en preguntar, así que quería consultar si ya existe otra solución.
Una idea es incluir un ID externo en el registro del usuario y luego podrías usar /by-external/:external_id. Otra opción es utilizar un webhook para notificar a tu base de datos externa si cambian su nombre de usuario. Otra alternativa es simplemente deshabilitar el cambio de nombres de usuario. Tras una mirada rápida a discourse/config/routes.db, no veo ninguna ruta que utilice el user_id.
Sin embargo, al explorar la documentación de la API y un cliente REST, no veo cómo actualizar ese campo. ¿Puedo usarlo sin habilitar SSO? (Y, incluso si habilitara SSO, ¿podría actualizarlo programáticamente?)