browsable api

Fixes: https://pagure.io/koji/issue/1813
This commit is contained in:
Tomas Kopecek 2019-11-19 13:53:44 +01:00
parent 9d9a289fed
commit 4ae799c93d
5 changed files with 29 additions and 5 deletions

View file

@ -2346,10 +2346,7 @@ def anon_handle_list_api(goptions, session, args):
if len(args) != 0:
parser.error(_("This command takes no arguments"))
activate_session(session, goptions)
tmplist = [(x['name'], x) for x in session._listapi()]
tmplist.sort()
funcs = [x[1] for x in tmplist]
for x in funcs:
for x in sorted(session._listapi(), key=lambda x: x['name']):
if 'argdesc' in x:
args = x['argdesc']
elif x['args']:

15
www/kojiweb/api.chtml Normal file
View file

@ -0,0 +1,15 @@
#include "includes/header.chtml"
<h4>API reference</h4>
<ul>
#for method in $methods
<li>
<pre><b>$method['name']$method['argdesc']</b>
$method['doc']
</pre>
</li>
#end for
</ul>
#include "includes/footer.chtml"

View file

@ -74,6 +74,7 @@ $localnav
<li id="hostsTab"><a href="hosts">Hosts</a></li>
<li id="reportsTab"><a href="reports">Reports</a></li>
<li id="searchTab"><a href="search">Search</a></li>
<li id="apiTab"><a href="api">API</a></li>
</ul>
</div><!-- end mainNav -->

View file

@ -2344,6 +2344,16 @@ def search(environ, start=None, order=None):
else:
return _genHTML(environ, 'search.chtml')
def api(environ):
values = _initValues(environ, 'API', 'api')
server = _getServer(environ)
values['methods'] = sorted(server._listapi(), key=lambda x: x['name'])
return _genHTML(environ, 'api.chtml')
def watchlogs(environ, taskID):
values = _initValues(environ)
if isinstance(taskID, list):

View file

@ -146,7 +146,8 @@ body#users #mainNav li#usersTab a,
body#hosts #mainNav li#hostsTab a,
body#buildtargets #mainNav li#buildtargetsTab a,
body#reports #mainNav li#reportsTab a,
body#search #mainNav li#searchTab a {
body#search #mainNav li#searchTab a,
body#api #mainNav li#apiTab a {
background-color: #eee;
color: #000;
}