Ok, acho que estou chegando mais perto agora.
Tentei this.post.save() e aparentemente ele “funciona” - parece que a requisição PUT está sendo feita (usando ajax por baixo dos panos), mas encontrei algum erro com pouca ou nenhuma informação. Mas isso foi antes disso…
this.post.save() funciona. O único problema é o listado abaixo:
Minha função agora está assim:
@action
async addCodeFences() {
let selectedText = this.selectedText;
let newText = "```" + "\n" + selectedText + "\n" + "```";
let post = this.post;
console.log(this.post.cooked); // Funciona
let rawPost = post.raw; // Não existe!!
console.log(rawPost); // undefined!
rawPost.replace(selectedText, "\n" + newText + "\n"); // Erro, já que rawPost é undefined!
await this.post.save({
raw: rawPost,
edit_reason: I18n.t(themePrefix("add_code_fence_edit_reason"))
});
}
Por algum motivo, não consigo obter o conteúdo bruto da postagem, apenas o cozido. Além de fazer uma requisição ajax, existe alguma maneira de fazer isso? Não consigo encontrar raw como um dos atributos da postagem… existe algum motivo para não estar incluído?
P.S. Estou tentando não recorrer ao Ask Discourse. Eu realmente apreciaria qualquer ajuda!
EDIT: Acho que cada postagem é baseada nesta solicitação de API? E a resposta não parece ter raw como uma das chaves JSON
.