api: manual revert of e1f785c370 (by @Aevann1's request)

pull/24/head
justcool393 2022-11-26 15:25:00 -06:00 committed by geese_suck
parent 43c759b04a
commit 62048af3e5
Signed by: geese_suck
GPG Key ID: 4D09E4B0A7264746
3 changed files with 0 additions and 335 deletions

View File

@ -1,241 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<wadl:application xmlns="http://docbook.org/ns/docbook"
xmlns:wadl="http://wadl.dev.java.net/2009/02"
xmlns:rax="http://docs.rackspace.com/api"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--
Want to read this? Lololol fuck you :3
Written in a deprecated format due to it's verbosity and
easy porting to OpenAPI's Swagger, which supports nice
frontends.
View it at /dev/api
-->
<resources xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns:dbaas="http://docs.openstack.org/database/api/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
base="http://docs.openstack.org/database/api/v1.0"
xml:id="rdrama">
<!-- ################################################## -->
<resource path="/submit"> <!-- INCOMPLETE -->
<method name="POST">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create post">
<para role="shortdesc">
Submits a post.
</para>
</wadl:doc>
<request>
<param required="true"
name="title"
style="plain"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN">
<para>The posts title. :emojis: will be parsed as well. Plaintext. No markdown.</para>
</wadl:doc>
</param>
<param required="false"
name="url"
style="plain"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Post URL. Be wary of duplicates.</para>
</wadl:doc>
</param>
<param required="true"
name="body"
style="markdown"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The post in markdown.</para>
</wadl:doc>
</param>
<!-- TODO a fuck ton more -->
</request>
<response status="200">
<param required="false"
name="body"
style="html"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The post you were looking for.</para>
</wadl:doc>
</param>
<!-- Example -->
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code xmlns:db="http://docbook.org/ns/docbook">
<programlisting language="javascript">{
"our": "example, here",
"our": "example, here"
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="400">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Not found</para>
</wadl:doc>
</response>
</method>
</resource>
<!-- ################################################## -->
<resource path="/@{username}/message"> <!-- INCOMPLETE -->
<method name="POST">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create post">
<para role="shortdesc">
Sends a user a message
</para>
</wadl:doc>
<request>
<param required="true"
name="username"
style="url"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>User URL</para>
</wadl:doc>
</param>
<param required="true"
name="data"
style="markdown"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Message data to the user.</para>
</wadl:doc>
</param>
<!-- TODO a fuck ton more -->
</request>
<response status="200">
<!-- <param required="false" -->
<!-- name="body" -->
<!-- style="html" -->
<!-- type="xsd:string"> -->
<!-- <wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN"> -->
<!-- <para></para> -->
<!-- </wadl:doc> -->
<!-- </param> -->
<!-- Example -->
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code xmlns:db="http://docbook.org/ns/docbook">
<programlisting language="javascript">{
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="400">
<representation mediaType="application/xml" element="csapi:badRequest"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<!-- ################################################## -->
<resource path="/comment"> <!-- INCOMPLETE -->
<method name="POST">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create post">
<para role="shortdesc">
Creates a comment on a post, or replies to a comment
</para>
</wadl:doc>
<request>
<param required="true"
name="parent_fullname"
style="plain"
type="xsd:url">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>ID of the parent post. Starts with <code>p_</code> for a parent submission, and <code>c_</code> for a comment submission. Anything else will emit a 400.</para>
</wadl:doc>
</param>
<param required="true"
name="submission"
style="plain"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Parent submission (the id, right?)</para>
</wadl:doc>
</param>
<param required="true"
name="body"
style="markdown"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Your messages content</para>
</wadl:doc>
</param>
<param required="true"
name="submission"
style="plain"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Parent submission (the id, right?)</para>
</wadl:doc>
</param>
<param required="true"
name="over_18"
style="plain"
type="xsd:boolean">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>If this post is marked as sensitive.</para>
</wadl:doc>
</param>
<!-- TODO a fuck ton more -->
</request>
<!-- SUCCESS -->
<response status="200">
<param required="false"
name="body"
style="html"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para></para>
</wadl:doc>
</param>
<!-- Example -->
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code xmlns:db="http://docbook.org/ns/docbook">
<programlisting language="javascript">{
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<!-- ERRORS -->
<response status="400">
<representation mediaType="application/xml" element="csapi:badRequest"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>User is exiled from the hole, or needs extra permissions.</para>
<para>User is banned and needs to do better.</para>
</wadl:doc>
<representation mediaType="application/xml" element="csapi:badRequest"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<!-- ################################################## -->
</resources>
</wadl:application>

View File

@ -1,13 +0,0 @@
import xml
import xml.etree.ElementTree as ET
from files.__main__ import app, cache, limiter
tree = ET.parse('docs/api.xml')
@app.get("/dev/api")
@auth_desired
def get_docs_page():
# TODO cache
root = tree.getroot()
return render_template("docs.html", root=tree.getroot())

View File

@ -1,81 +0,0 @@
{% extends "default.html" %}
{#% Some macros %#}
{% macro docbook_read(info) -%}
{% for p in info -%}
{#% Lazy hack, not """conforming""" to docbook %#}
<p>
{{- p.text -}}
</p>
{%- endfor %}
{%- endmacro %}
{%- macro param_table(info) -%}
<table>
<tr>
<th>Param</th>
<th>Description</th>
<th>Type</th>
<th>Format</th>
<th>Required</th>
</tr>
{% for param in info %}
<tr>
<td><b>{{ param.attrib.name }}</b></td>
<td>{{- docbook_read(param[0]) -}}</td>
<td><i>{{ param.attrib.type }}</i></td>
<td>{{ param.attrib.style }}</td>
<td>{{ param.attrib.required }}</td>
</tr>
{% endfor %}
</table>
{%- endmacro -%}
{% block pagetitle %}Documentation{% endblock %}
{% block content %}
<div id="docs-page">
<h1>rDrama REST Api Documentaion</h1>
<p><em class="text-warning">Warning: This documentation is SHIT, so get
used to it</em></p>
<p>You're probably here because you want to create your own application
which calls our REST api. Some of the stuff you see here might seem
ugly (it is), but it's mainly inherited from the old Ruqqus API.</p>
<p><em class="text-info">This documentation is generated from an XML WADL file.</em></p>
<hr>
{% for res in root[0] %}
<div class="doc-snippet">
{#% There's usually only one method, but this is more correct %#}
{% for method in res %}
<h1 class="docs-path">
<span class="docs-request">
{{- method.attrib.name -}}
</span>
{{ res.attrib.path }}
</h1>
{% for info in method %}
{% if info.tag == "{http://wadl.dev.java.net/2009/02}doc" %}
{{ docbook_read(info) }}
{% elif info.tag == "{http://wadl.dev.java.net/2009/02}request" %}
{{ param_table(info) }}
{% elif info.tag == "{http://wadl.dev.java.net/2009/02}response" %}
<h4>Response <span class="docs-response">{{ info.attrib.status }}</span></h4>
{% for response_child in info %}
{% if response_child.tag == "{http://wadl.dev.java.net/2009/02}param" %}
{{ param_table(info) }}
{% elif response_child.tag == "{http://wadl.dev.java.net/2009/02}doc" %}
{{ docbook_read(response_child) }}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
</div>
{% endfor %}
</div>
{% endblock %}