From be4083106b245053992e2b15c4c75aa74f5d39de Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 30 Oct 2016 18:58:11 -0400 Subject: Add new RESTful JSON API and documentation --- modules/database/sql.cpp | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'modules/database') diff --git a/modules/database/sql.cpp b/modules/database/sql.cpp index f88fc35d7..50447c005 100644 --- a/modules/database/sql.cpp +++ b/modules/database/sql.cpp @@ -344,16 +344,32 @@ class DBSQL : public Module, public Pipe EventReturn OnSerializeHasField(Serialize::Object *object, Serialize::FieldBase *field) override { - SQL::Result::Value v; + if (field->object) + { + Anope::string type; + Serialize::ID id; - if (!GetValue(object, field, v)) - return EVENT_CONTINUE; + EventReturn er = OnSerializeGetSerializable(object, field, type, id); - if (v.null) - return EVENT_CONTINUE; + if (er != EVENT_ALLOW) + return EVENT_CONTINUE; - field->UnserializeFromString(object, v.value); - return EVENT_STOP; + field->UnserializeFromString(object, type + ":" + stringify(id)); + return EVENT_STOP; + } + else + { + SQL::Result::Value v; + + if (!GetValue(object, field, v)) + return EVENT_CONTINUE; + + if (v.null) + return EVENT_CONTINUE; + + field->UnserializeFromString(object, v.value); + return EVENT_STOP; + } } EventReturn OnSerializableGetId(Serialize::ID &id) override -- cgit