Luicid
(Luicid)
2. Oktober 2023 um 06:06
1
Hallo,
ich erstelle ein Plugin und muss etwas an die E-Mail eines Benutzers senden.
Ich benutze
creator = PostCreator.new(test_user, {
target_recipients: "someone@toto.com",
archetype: Archetype.private_message,
subtype: TopicSubtype.system_message,
title: "Hallo Testperson",
raw: "Das ist die Nachricht. Funktioniert es?"
})
test_user ist ein Administrator
Aber jedes Mal, wenn ich versuche, dies zu senden, erhalte ich die Fehlermeldung:
Topic is empty
Irgendwelche Ideen?
merefield
(Robert)
2. Oktober 2023 um 06:54
2
Laut den Spezifikationen sollte dies einen Gruppennamen oder einen Benutzernamen akzeptieren:
it "can send a message to a group" do
Group.refresh_automatic_groups!
group = Group.create(name: "test_group", messageable_level: Group::ALIAS_LEVELS[:nobody])
user1 = user
group.add(user1)
post "/posts.json",
params: {
raw: "I can haz a test",
title: "I loves my test",
target_recipients: group.name,
archetype: Archetype.private_message,
}
expect(response).not_to be_successful
# allow pm to this group
group.update_columns(messageable_level: Group::ALIAS_LEVELS[:everyone])
post "/posts.json",
params: {
fab!(:topic) { Fabricate(:topic) }
it "errors when creating a private post" do
user_2 = Fabricate(:user)
post "/posts.json",
params: {
raw: "this is the test content",
archetype: "private_message",
title: "this is some post",
target_recipients: user_2.username,
topic_id: topic.id,
}
expect(response.status).to eq(422)
expect(response.parsed_body["errors"]).to include(I18n.t("create_pm_on_existing_topic"))
end
end
context "with errors" do
it "does not succeed" do
2 „Gefällt mir“
Luicid
(Luicid)
2. Oktober 2023 um 07:44
3
Hallo Robert,
Das ist seltsam, denn im Frontend verwendet Discourse eine Payload wie diese, und sie funktioniert (getestet mit meiner privaten E-Mail):
raw: Wieder eine Nachricht hier.
title: Hallo da, General Kenobi
archetype: private_message
target_recipients: j.doe@something.com
Ich fand es seltsam, dass wir im Backend einen Gruppennamen erwarten
1 „Gefällt mir“
RGJ
(Richard - Communiteq)
2. Oktober 2023 um 10:52
4
TL;DR target_emails verwenden, nicht target_recipients
Beachten Sie, dass target_recipients ein Parameter für PostsController ist, kein Argument für PostCreator.
Dieser Controller ermittelt , ob die Empfänger Benutzer, Gruppen oder E-Mail-Adressen sind, und übergibt sie dann schließlich als target_emails an NewPostsManager, und es landet in TopicCreator.
5 „Gefällt mir“
system
(system)
Geschlossen,
1. November 2023 um 13:00
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.