summaryrefslogtreecommitdiff
path: root/modules/database/sql.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-10-30 18:58:11 -0400
committerAdam <Adam@anope.org>2016-10-30 18:58:11 -0400
commitbe4083106b245053992e2b15c4c75aa74f5d39de (patch)
treef2257da53d82139a7f09a2211abb49ffa1a46f01 /modules/database/sql.cpp
parentc06cc40d27e5cb83424d89cb19571eb42392abe6 (diff)
Add new RESTful JSON API and documentation
Diffstat (limited to 'modules/database/sql.cpp')
-rw-r--r--modules/database/sql.cpp30
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