diff options
author | Adam <Adam@anope.org> | 2016-10-30 18:58:11 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2016-10-30 18:58:11 -0400 |
commit | be4083106b245053992e2b15c4c75aa74f5d39de (patch) | |
tree | f2257da53d82139a7f09a2211abb49ffa1a46f01 /modules/database/sql.cpp | |
parent | c06cc40d27e5cb83424d89cb19571eb42392abe6 (diff) |
Add new RESTful JSON API and documentation
Diffstat (limited to 'modules/database/sql.cpp')
-rw-r--r-- | modules/database/sql.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
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 |