diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/event.cpp | 37 | ||||
-rw-r--r-- | src/nostr_service.cpp | 6 |
2 files changed, 30 insertions, 13 deletions
diff --git a/src/event.cpp b/src/event.cpp index e77e33d..6510ac6 100644 --- a/src/event.cpp +++ b/src/event.cpp @@ -48,16 +48,35 @@ string Event::serialize() return jarr.dump(); }; -void Event::deserialize(string jsonString) +Event Event::fromString(string jstr) { - json j = json::parse(jsonString); - this->id = j["id"]; - this->pubkey = j["pubkey"]; - this->createdAt = j["created_at"]; - this->kind = j["kind"]; - this->tags = j["tags"]; - this->content = j["content"]; - this->sig = j["sig"]; + json j = json::parse(jstr); + Event event; + + event.id = j["id"]; + event.pubkey = j["pubkey"]; + event.createdAt = j["created_at"]; + event.kind = j["kind"]; + event.tags = j["tags"]; + event.content = j["content"]; + event.sig = j["sig"]; + + return event; +}; + +Event Event::fromJson(json j) +{ + Event event; + + event.id = j["id"]; + event.pubkey = j["pubkey"]; + event.createdAt = j["created_at"]; + event.kind = j["kind"]; + event.tags = j["tags"]; + event.content = j["content"]; + event.sig = j["sig"]; + + return event; }; void Event::validate() diff --git a/src/nostr_service.cpp b/src/nostr_service.cpp index 971516f..c7e3158 100644 --- a/src/nostr_service.cpp +++ b/src/nostr_service.cpp @@ -490,10 +490,8 @@ void NostrService::onMessage(string message, function<void(const string&, Event) if (messageType == "EVENT") { string subscriptionId = jarr[1]; - string serializedEvent = jarr[2].dump(); - Event event; - event.deserialize(message); - eventHandler(subscriptionId, event); + Event event = Event::fromJson(jarr[2]); + eventHandler(subscriptionId, make_shared<Event>(event)); } // Support other message types here, if necessary. |