117 lines
4.5 KiB
PHP
117 lines
4.5 KiB
PHP
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: model_issueobjects.inc
|
|
|
|
Description: Meldingobjecten model
|
|
Parameters:
|
|
Context:
|
|
|
|
Notes:
|
|
*/
|
|
|
|
model_issueobjects =
|
|
{
|
|
table: "mld_melding_object",
|
|
primary: "mld_melding_object_key",
|
|
records_name: "issueobjects",
|
|
record_name: "issueobject",
|
|
fields: {"id" : { dbs: "mld_melding_object_key", typ: "key", filter: "exact" },
|
|
"object" : { dbs: "ins_deel_key", typ: "key", foreign: "ins_deel" },
|
|
"mld_melding_key": { dbs: "mld_melding_key", typ: "key" }
|
|
},
|
|
|
|
list: { columns: ["object"] },
|
|
|
|
_analyze_fields: function (dbfields, params, jsondata) /* analyseer inkomende data, common voor PUT en POST */
|
|
{
|
|
if (jsondata.id)
|
|
{
|
|
// Bestaande mld_melding_object: PUT
|
|
}
|
|
else
|
|
{ // Nieuwe mld_melding_object: POST
|
|
// Controleer of de combinatie melding_key/object_key al bestaat. Zo ja, dan niet toevoegen.
|
|
var mld_obj_key = -1;
|
|
var sql = "SELECT mld_melding_object_key"
|
|
+ " FROM mld_melding_object"
|
|
+ " WHERE mld_melding_object_verwijder IS NULL"
|
|
+ " AND mld_melding_key = " + params.filter.id
|
|
+ " AND ins_deel_key = " + dbfields[0].val; // TODO: unsafe?
|
|
var oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
{
|
|
mld_obj_key = oRs("mld_melding_object_key").Value;
|
|
params.isNew = false;
|
|
}
|
|
oRs.Close();
|
|
}
|
|
},
|
|
|
|
_validate_fields: function (dbfields, params, jsondata) /* valideer dbfields, alle constraints die niet door de database worden afgevangen */
|
|
{
|
|
},
|
|
|
|
REST_GET: function _GET(params)
|
|
{
|
|
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
|
var query = api2.sqlfields(params, model_issueobjects );
|
|
|
|
query.wheres.push("mld_melding_object_verwijder IS NULL");
|
|
|
|
var wheres = api2.sqlfilter(params, model_issueobjects);
|
|
query.wheres = query.wheres.concat(wheres);
|
|
|
|
var sql = "SELECT " + query.selects.join(", ")
|
|
+ " FROM " + query.tables.join(", ")
|
|
+ " WHERE " + query.wheres.join(" AND " );
|
|
|
|
var json = api2.sql2json (params, sql, model_issueobjects );
|
|
|
|
return json;
|
|
},
|
|
|
|
REST_PUT: function (params, jsondata, the_key) /* update object */
|
|
{
|
|
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
|
var dbfields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
|
model_issueobjects._analyze_fields(dbfields, params, jsondata);
|
|
|
|
var mldUpd = buildTrackingUpdate("mld_melding_object", " mld_melding_object_key = " + the_key, dbfields, { noValidateToken: true });
|
|
Oracle.Execute(mldUpd.sql);
|
|
|
|
// Nu geen api2.process_includes() meer aanroepen, anders ga je de objecten zelf ook nog aanpassen.
|
|
|
|
return { key: the_key };
|
|
},
|
|
|
|
REST_POST: function (params, jsondata, parent_key) /* new object */
|
|
{
|
|
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
|
params.isNew = true; // negeer eventuele bestaande keys
|
|
var dbfields = api2.update_fields(params, model_issueobjects, jsondata); // Build updater
|
|
model_issueobjects._analyze_fields(dbfields, params, jsondata);
|
|
|
|
var new_key = null;
|
|
if (params.isNew)
|
|
{
|
|
dbfields["issue"] = { dbs: "mld_melding_key", typ: "key", val: parent_key };
|
|
dbfields["id"] = { dbs: "mld_melding_object_key", typ: "key", seq: "mld_s_mld_object_key" };
|
|
|
|
var mldIns = buildInsert("mld_melding_object", dbfields, { noValidateToken: true });
|
|
new_key = mldIns.sequences["mld_melding_object_key"];
|
|
Oracle.Execute(mldIns.sql);
|
|
}
|
|
|
|
return { key: new_key };
|
|
},
|
|
|
|
REST_DELETE: function (params, the_key) /* delete object */
|
|
{
|
|
// Kan alleen vanuit model_issue aangeroepen worden. De autorisatie is daar al geregeld.
|
|
var sql = "DELETE FROM mld_melding_object WHERE mld_melding_object_key = " + the_key;
|
|
Oracle.Execute(sql);
|
|
}
|
|
}
|
|
%> |