tables method
Implementation
Future<APIResponse<dynamic>> tables({bool json = false}) async {
if (onlyOnDevelopment && !development) {
return APIResponse.error(error: "Unsupported request!");
}
_log.info("APIDBModule[REQUEST]> tables");
var allRepositories = (await entityRepositoryProviders).allRepositories();
var allRepositoriesEntries = allRepositories.entries
.sorted((a, b) => a.value.name.compareTo(b.value.name))
.toList();
if (json) {
var map = allRepositoriesEntries
.map((e) {
var type = e.key;
var repo = e.value;
return MapEntry('$type', repo.name);
})
.sorted((a, b) => a.key.compareTo(b.key))
.toMapFromEntries();
return APIResponse.ok(map, mimeType: 'json');
}
var htmlDoc = HTMLDocument.darkTheme(
title: 'DB - Tables',
top:
_buildTop(apiRootName: apiRoot.name, apiRootVersion: apiRoot.version),
footer: _buildFooter(),
);
var content = [];
content.add('<br><table class="center">');
content.add(
'<thead><tr><td style="text-align: right">Type: </td><td style="text-align: center">Table:</td><td style="text-align: center">Operations:</td></tr></thead>');
for (var e in allRepositoriesEntries) {
var type = e.key;
var repo = e.value;
var repoName = repo.name;
content.add(
'<tr><td style="text-align: right"><b>$type:</b> </td><td style="text-align: center">$repoName</td><td> [ <a href="${basePath}select/$repoName">select</a> | <a href="${basePath}insert/$repoName">insert</a> ] </td></tr>');
}
content.add('</table>');
content.add(
'<br><div style="width: 100%; text-align: center;"><i><a href="${basePath}tables/json">JSON</a></i></div>');
htmlDoc.content = content;
var html = htmlDoc.build();
return APIResponse.ok(html, mimeType: 'html');
}