mirror of https://gitee.com/bigwinds/arangodb
fixed (hacked) display of swagger for dev apps
This commit is contained in:
parent
af057e40d3
commit
487af3bc0d
|
@ -172,7 +172,7 @@ HttpHandler::status_e RestDocumentHandler::execute () {
|
||||||
/// @RESTHEADER{POST /_api/document,creates a document}
|
/// @RESTHEADER{POST /_api/document,creates a document}
|
||||||
///
|
///
|
||||||
/// @RESTBODYPARAM{document,json,required}
|
/// @RESTBODYPARAM{document,json,required}
|
||||||
/// A JSON representation of document.
|
/// A JSON representation of the document.
|
||||||
///
|
///
|
||||||
/// @RESTQUERYPARAMETERS
|
/// @RESTQUERYPARAMETERS
|
||||||
///
|
///
|
||||||
|
@ -839,6 +839,9 @@ bool RestDocumentHandler::checkDocument () {
|
||||||
///
|
///
|
||||||
/// @RESTHEADER{PUT /_api/document/`document-handle`,replaces a document}
|
/// @RESTHEADER{PUT /_api/document/`document-handle`,replaces a document}
|
||||||
///
|
///
|
||||||
|
/// @RESTBODYPARAM{document,json,required}
|
||||||
|
/// A JSON representation of the new document.
|
||||||
|
///
|
||||||
/// @RESTURLPARAMETERS
|
/// @RESTURLPARAMETERS
|
||||||
///
|
///
|
||||||
/// @RESTURLPARAM{document-handle,string,required}
|
/// @RESTURLPARAM{document-handle,string,required}
|
||||||
|
@ -1054,6 +1057,9 @@ bool RestDocumentHandler::replaceDocument () {
|
||||||
///
|
///
|
||||||
/// @RESTHEADER{PATCH /_api/document/`document-handle`,patches a document}
|
/// @RESTHEADER{PATCH /_api/document/`document-handle`,patches a document}
|
||||||
///
|
///
|
||||||
|
/// @RESTBODYPARAM{document,json,required}
|
||||||
|
/// A JSON representation of the new document.
|
||||||
|
///
|
||||||
/// @RESTURLPARAMETERS
|
/// @RESTURLPARAMETERS
|
||||||
///
|
///
|
||||||
/// @RESTURLPARAM{document-handle,string,required}
|
/// @RESTURLPARAM{document-handle,string,required}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<meta name="description" content="ArangoDB Admin Web Interface">
|
<meta name="description" content="ArangoDB Admin Web Interface">
|
||||||
<meta name="author" content="Heiko Kernbach">
|
<meta name="author" content="Heiko Kernbach">
|
||||||
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet' type='text/css'>
|
<!-- NO EXTERNAL LINKS link href='http://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet' type='text/css' -->
|
||||||
<link href='css/droidsans.css' rel='stylesheet' type='text/css'/>
|
<link href='css/droidsans.css' rel='stylesheet' type='text/css'/>
|
||||||
<link href='css/swagger/hightlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
|
<link href='css/swagger/hightlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ exports.Foxxes = function () {
|
||||||
|
|
||||||
// Define the functionality to display all foxxes
|
// Define the functionality to display all foxxes
|
||||||
this.viewAll = function () {
|
this.viewAll = function () {
|
||||||
return aal.toArray();
|
return aal.toArray().concat(foxxmanager.developmentMounts());
|
||||||
};
|
};
|
||||||
|
|
||||||
// Define the functionality to update one foxx.
|
// Define the functionality to update one foxx.
|
||||||
|
|
|
@ -66,17 +66,27 @@ exports.Swagger = function () {
|
||||||
|
|
||||||
this.listOne = function(basePath, key) {
|
this.listOne = function(basePath, key) {
|
||||||
var result = {},
|
var result = {},
|
||||||
res = _aal.document(key);
|
res;
|
||||||
|
|
||||||
|
if (key.substr(0, 4) === "dev:") {
|
||||||
|
res = "/dev/" + key.split(":")[2];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res = _aal.document(key).mount;
|
||||||
|
}
|
||||||
|
|
||||||
result.swaggerVersion = "1.1";
|
result.swaggerVersion = "1.1";
|
||||||
result.basePath = basePath;
|
result.basePath = basePath;
|
||||||
|
|
||||||
result.apis = [
|
result.apis = [
|
||||||
{path: res.mount}
|
{path: res}
|
||||||
];
|
];
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
// Get details of one specific installed foxx.
|
// Get details of one specific installed foxx.
|
||||||
this.show = function(appname) {
|
this.show = function(mount) {
|
||||||
var result = {},
|
var result = {},
|
||||||
apis = [],
|
apis = [],
|
||||||
pathes,
|
pathes,
|
||||||
|
@ -85,25 +95,22 @@ exports.Swagger = function () {
|
||||||
url,
|
url,
|
||||||
api,
|
api,
|
||||||
ops,
|
ops,
|
||||||
foxxApp = _aal.firstExample({"mount": appname}),
|
|
||||||
app,
|
app,
|
||||||
list;
|
list = foxx_manager.appRoutes().concat(foxx_manager.developmentRoutes());
|
||||||
if (!foxxApp.development) {
|
|
||||||
list = foxx_manager.appRoutes();
|
|
||||||
} else {
|
|
||||||
list = foxx_manager.developmentRoutes();
|
|
||||||
}
|
|
||||||
_.each(list, function(r) {
|
_.each(list, function(r) {
|
||||||
var ac = r.appContext;
|
var ac = r.appContext;
|
||||||
if (ac.appId === foxxApp.app && ac.mount === foxxApp.mount) {
|
if (ac.mount === mount) {
|
||||||
app = r;
|
app = r;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
result.swaggerVersion = "1.1";
|
result.swaggerVersion = "1.1";
|
||||||
result.basePath = app.urlPrefix;
|
result.basePath = app.urlPrefix;
|
||||||
result.apis = apis;
|
result.apis = apis;
|
||||||
pathes = app.routes;
|
pathes = app.routes;
|
||||||
|
|
||||||
for (i in pathes) {
|
for (i in pathes) {
|
||||||
if (pathes[i].url.methods !== undefined) {
|
if (pathes[i].url.methods !== undefined) {
|
||||||
url = pathes[i].url.match;
|
url = pathes[i].url.match;
|
||||||
|
@ -116,6 +123,7 @@ exports.Swagger = function () {
|
||||||
apis.push(api);
|
apis.push(api);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,6 +37,16 @@ var executeGlobalContextFunction = require("internal").executeGlobalContextFunct
|
||||||
var checkParameter = arangodb.checkParameter;
|
var checkParameter = arangodb.checkParameter;
|
||||||
var transformScript = require("org/arangodb/foxx/transformer").transform;
|
var transformScript = require("org/arangodb/foxx/transformer").transform;
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
// --SECTION-- private variables
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief development mounts
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var DEVELOPMENTMOUNTS = null;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// --SECTION-- private functions
|
// --SECTION-- private functions
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -1013,6 +1023,7 @@ exports.appRoutes = function () {
|
||||||
exports.developmentRoutes = function () {
|
exports.developmentRoutes = function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var mounts = [];
|
||||||
var routes = [];
|
var routes = [];
|
||||||
|
|
||||||
var root = module.devAppPath();
|
var root = module.devAppPath();
|
||||||
|
@ -1029,7 +1040,7 @@ exports.developmentRoutes = function () {
|
||||||
var appId = "dev:" + mf.name + ":" + files[j];
|
var appId = "dev:" + mf.name + ":" + files[j];
|
||||||
var mount = "/dev/" + files[j];
|
var mount = "/dev/" + files[j];
|
||||||
var options = {
|
var options = {
|
||||||
prefix : prefixFromMount(mount) || undefined
|
prefix : prefixFromMount(mount)
|
||||||
};
|
};
|
||||||
|
|
||||||
var app = module.createApp(appId, options);
|
var app = module.createApp(appId, options);
|
||||||
|
@ -1050,6 +1061,23 @@ exports.developmentRoutes = function () {
|
||||||
routes.push(r);
|
routes.push(r);
|
||||||
|
|
||||||
console.log("Mounted dev app '%s' on '%s'", appId, mount);
|
console.log("Mounted dev app '%s' on '%s'", appId, mount);
|
||||||
|
|
||||||
|
var desc = {
|
||||||
|
_id: "dev/" + app._id,
|
||||||
|
_key: app._id,
|
||||||
|
type: "mount",
|
||||||
|
app: app._id,
|
||||||
|
name: app._name,
|
||||||
|
description: app._manifest.description,
|
||||||
|
author: app._manifest.author,
|
||||||
|
mount: mount,
|
||||||
|
active: true,
|
||||||
|
collectionPrefix: options.prefix,
|
||||||
|
isSystem: app._manifest.isSystem || false,
|
||||||
|
options: options
|
||||||
|
};
|
||||||
|
|
||||||
|
mounts.push(desc);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
console.error("Cannot read app manifest '%s': %s", m, String(err.stack || err));
|
console.error("Cannot read app manifest '%s': %s", m, String(err.stack || err));
|
||||||
|
@ -1057,9 +1085,27 @@ exports.developmentRoutes = function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEVELOPMENTMOUNTS = mounts;
|
||||||
|
|
||||||
return routes;
|
return routes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief returns the development mounts
|
||||||
|
///
|
||||||
|
/// Must be called after developmentRoutes.
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
exports.developmentMounts = function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
if (DEVELOPMENTMOUNTS === null) {
|
||||||
|
exports.developmentRoutes();
|
||||||
|
}
|
||||||
|
|
||||||
|
return DEVELOPMENTMOUNTS;
|
||||||
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// --SECTION-- END-OF-FILE
|
// --SECTION-- END-OF-FILE
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue