Files
Facilitor/APPL/API2/model_apis.inc
Jos Groot Lipman fb09cec038 FSN#39312 API documentatie verbeteringen
svn path=/Website/trunk/; revision=33261
2017-03-25 22:09:03 +00:00

96 lines
3.5 KiB
PHP

<% /*
$Revision$
$Id$
File: model_apis.inc
Description: Api model.
Parameters:
Context:
Notes:
*/
%>
<!--#include file="./api2_dispatch.inc"-->
<%
model_apis =
{
table: "apis",
primary: "id",
records_name: "apis",
record_name: "api",
fields : { "id" : { typ: "varchar", label: "Api", filter: "exact" },
"module" : { typ: "varchar", label: "Module", filter: "exact" },
"name" : { typ: "varchar", label: "Api", filter: "exact" }
},
REST_GET: function _GET(params)
{
var autfunction = "WEB_APIDOC"; // is dit niet erg streng?
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
var safefieldnames = [];
var lcl2fld = {};
var api2_names = [];
for (var dispatch in api2_mapper)
{
if (api2_mapper[dispatch].hidden)
continue;
var filepath = api2_mapper[dispatch].filename;
var filename = filepath.split('/').pop();
var module = api2_mapper[dispatch].module || filename.substr(0, 3).toUpperCase();
var apidata = { id: dispatch,
name: "<<" + dispatch + ">>",
modulecode: module,
module: L("lcl_module_" + module)
}
if (api2_mapper[dispatch].lcl_name)
apidata.name = L(api2_mapper[dispatch].lcl_name);
var lclname = "{0}_m".format(filename.split(".")[0]); // alg_ruimte_m
lcl2fld[lclname] = apidata;
safefieldnames.push(safe.quoted_sql(lclname));
api2_names.push(apidata);
}
// kijken of er een L() bestaat voor de api2_mapper filenaam
if (safefieldnames.length)
{
//model.fields[fld].hint = "Hallo";
var sql = "SELECT fac_locale_xsl_label, "
+ " COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst) fac_locale_xsl_tekst"
+ " FROM fac_locale_xsl xsl"
+ " WHERE fac_locale_xsl_lang = " + safe.quoted_sql(user_lang)
+ " AND fac_locale_xsl_module = 'ASP'"
+ " AND fac_locale_xsl_label IN (" + safefieldnames.join(", ") + ")";
var oRs = Oracle.Execute(sql);
while (!oRs.Eof)
{
lcl2fld[oRs("fac_locale_xsl_label").Value].name = oRs("fac_locale_xsl_tekst").value;
oRs.MoveNext();
}
oRs.Close();
}
api2_names.sort(function (a, b) {
if (a.modulecode == b.modulecode)
return a.id < b.id ? -1: 1;
else
return a.modulecode < b.modulecode ? -1: 1;
});
// Graag zou ik er ook info instoppen over het model zelf.
// Dan moet ik echter alle model_xxxx.inc bestanden includen wat ik niet wil.
// Daarom moet je zelf maar /api2/xxxx.api aanroepen voor de details
return api2_names;
},
search: { autosearch: true },
list: { default_url: "api2/{0}.scf" }
// list: { default_url: "api2/{0}.api?pretty=1" }
}
%>