Mostrar lista de temas por array de IDs de temas

También necesito esta funcionalidad. Ahora mismo lo estoy haciendo así, pero esto lleva demasiado tiempo.

    const selectedTopics = this.selectedTopics
     //consume los temas como IDs y devuelve los temas reales
     this.selectedTopicsID.forEach(function(tid,index){
       Topic.find(tid,{}).then(results => {
         selectedTopics.pushObject(results)
       })
     });

Estoy a punto de volver a abrir el listcontroller en mi plugin.rb y añadir un nuevo endpoint, y volver a abrir la topic-list en el inicializador del frontend para hacer algo similar a esto:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/models/topic-list.js.es6#L129
Pero debe haber una forma más fácil de hacer esto. ¿Realmente no hay ningún endpoint para obtener temas en masa por ID?
Estaría muy agradecido por alguna ayuda :smiley:
EDITO: Así es como resolví este problema para mí:

Así es como se puede usar.

import TopicList from 'discourse/models/topic-list';
    const selectedTopics = this.selectedTopics
    //consume los temas como IDs
    TopicList.topics_array(this.selectedTopicsID).then(results => selectedTopics.pushObjects(results.topic_list.topics))

Ahora mismo esto todavía tiene la desventaja de que no devuelve objetos “reales” de Topic, pero supongo que añadir una línea como esta lo solucionará:

Aún no estoy seguro de si esta es la forma correcta de hacerlo y/o si esto rompe la seguridad.
Otra cosa que se podría hacer: primero buscar en la tienda si el registro ya está allí y luego cargar solo lo que no está, con fromMap. Similar a:

De todos modos, esto se está volviendo demasiado verbose aquí :smiley:
Esta es mi solución final, daré por terminado el día ahora: