Commit Graph

110 Commits (a20a49abf6ef89bae56e3033fd487673c5a86ee2)

Author SHA1 Message Date
Richard van der Hoff 9fb26f7c85 Merge pull request #163 from matrix-org/rav/rework_objects
Updates to swagger table generation
9 years ago
Daniel Wagner-Hall 4faede73a1 Merge branch 'master' into daniel/multipleexamples 9 years ago
Richard van der Hoff 34ac544290 Merge branch 'master' into rav/rework_objects
Conflicts:
	templating/matrix_templates/units.py
9 years ago
Kegan Dougal d1c685f296 Merge branch 'master' into rav/refactor_tables 9 years ago
Kegan Dougal 8648f86032 Moar spaces 9 years ago
Erik Johnston 96be7ff241 Support more nesting 9 years ago
Richard van der Hoff 838af2a23e Updates to swagger table generation
A bunch of related fixes to the code for parsing the state and API yaml files:

1. Some of our objects are {key: {key: value}} - style nested key/value
   dictionaries. Handle this by refactoring get_json_schema_object_fields so
   that such objects are handled wherever they appear, rather than when they
   are just subproperties of a 'proper' object.

2. Fix multi-level inheritance (so an object can have an 'allOf' property which
   can successfully refer to an object which itself has an 'allOf' property).

3. $ref fields in event schemas weren't being expanded correctly

4. sort type tables breadth-first rather than depth-first so that the ordering
   in complex structures like the /sync response makes a bit more sense.
9 years ago
Richard van der Hoff cc8ef691fb Rewrite the table templates
Allow columns to stretch if they end up with wide content.

Apart from the hassle of having to manually update the calculations, having the
columns wide enough to hold the widest thing they might ever have leads to
tables with lots of whitespace in the results.
9 years ago
Daniel Wagner-Hall d7357ef9b7 Specify /publicRooms 9 years ago
Daniel Wagner-Hall c00abe9f2f Fix msgtype display 9 years ago
Daniel Wagner-Hall 071edcd86e Merge branch 'master' into daniel/multipleexamples 9 years ago
Daniel Wagner-Hall e72151f2c3 Specify guest room access
This was reviewed as PR #150 and merged from daniel/anonymousaccess
9 years ago
Daniel Wagner-Hall 2734f9f9f2 Merge branch 'master' into daniel/multipleexamples
Conflicts:
	specification/modules/third_party_invites.rst
9 years ago
Mark Haines b7cc5b1018 Merge pull request #141 from matrix-org/markjh/full_http_api_docs
Include the full schema for an http API in the docs
9 years ago
Mark Haines c719946370 Enable syntax highlighting for message type examples 9 years ago
Mark Haines 8070489080 Handle lists of types in arrays 9 years ago
Mark Haines e49ea9015f Deduplicate tables with the same title 9 years ago
Mark Haines 8322151661 Don't put a space when appending the "Must be" strings to the desciption if there isn't a description, otherwise it will mess up the indent 9 years ago
Mark Haines 91eb25b76d Include the full schema for an http API in the docs by resolving references to other files 9 years ago
Daniel Wagner-Hall 176f919fc8 Show multiple examples where present 9 years ago
Mark Haines 71874870c8 Enable syntax highlighting for example http requests 9 years ago
Mark Haines 3f1cbb22bb Enable syntax highlighting for the JSON event examples 9 years ago
Kegan Dougal 30d46a19d5 Review comments 9 years ago
Kegan Dougal 3b7585cbda Make nested request objects display correctly (search API)
This now displays search_categories.room_events.filter and co correctly.
Also make arrays of enums display correctly.
9 years ago
Kegan Dougal f95d19cecd Merge branch 'master' into appservice-swagger
Conflicts:
	specification/application_service_api.rst
9 years ago
Kegan Dougal bbd3f8072c Review comments 9 years ago
Kegan Dougal d39a9082a0 Add invite_room_state to spec. Flesh out info. 9 years ago
Kegan Dougal f20faa80e5 Swagger validation 9 years ago
Daniel Wagner-Hall 2502ca7ac6 Merge branch 'master' into daniel/threepidinvites-2
Conflicts:
	specification/targets.yaml
9 years ago
Kegan Dougal 213cb25290 Wrap correctly 9 years ago
Kegan Dougal f2a6950cc3 Minor tweaks; allow objects without props/parents if a title is set
This allows us to do things like {Tweaks} where Tweaks is defined somewhere
else.
9 years ago
Daniel Wagner-Hall 21a40b317d Merge branch 'master' into daniel/threepidinvites-2 9 years ago
Kegan Dougal 65504db7bb Display nested keys on arrays of objects. Make it valid swagger. 9 years ago
Kegan Dougal 31ae4b3859 Swaggerify push notification API
Edit units.py to support nested JSON request keys
9 years ago
Kegan Dougal a9618a981b Swaggerify the /enabled endpoint 9 years ago
Kegan Dougal 56ce432399 Get profile tag keys displaying correctly. 9 years ago
Kegan Dougal c5edc60c4c Add push YAML for pushers endpoint.
Also display "required" text on required JSON body request params. Also
increase the size of the request param column to support longer param names
present in the pushers API.
9 years ago
Kegan Dougal 09ac367847 Merge branch 'master' into module-content-repo
Conflicts:
	templating/matrix_templates/units.py
9 years ago
Kegan Dougal 4dabcd112e Remove redundant info now we have the http api template. Minor tweaks to display of schema with no names but a type 9 years ago
Daniel Wagner-Hall d2c56fb7a3 Merge branch 'master' into daniel/threepidinvites-2 9 years ago
Kegan Dougal 87b6dd845e Flesh out content repo; modify templating to support headers
Edit content-repo.yaml to include examples and headers.
Restructure content module to conform to the module template.
Adjust the HTTP API template to give 1 more char to the response
param to fit "Content-Disposition" correctly.
Edit the templating system to support displaying enums for
swagger APIs (before it was just JSON schema). Also add support
for introspecting headers from swagger. Finally, replace - with
_ when forming the {{ template_var }} else things whine.
9 years ago
Kegan Dougal 560cd7a58f This isn't javascript. s/,/%/ 9 years ago
Kegan Dougal c972dad8b3 Flesh out receipts module. Add receipts swagger
Add templating support for v2 apis.
9 years ago
Kegan Dougal 365a9076b9 Add nested dict template support; Add x-pattern
For cases where event schema specify `patternProperties` it would be nice
to give that pattern a "human-readable" form rather than a raw regex. This
is now supported by specifying `x-pattern` in the value part of the specified
pattern e.g. `patternProperties:{ "^.*":{ x-pattern: "$THING", ... } }`

Templating had limited record type descriptions limited to value primitives
e.g. `{string: integer}`. It now supports inspecting the values recursively
if the value is `object`.

Updated `m.receipt` to take both these points into account to make it read
better. Tweak receipt module text.
9 years ago
Kegan Dougal 6afdfc0771 Add more logging and make logging context clearer
This is now actually useful if you want to debug why your swagger YAML
isn't producing a table you think it should be.
9 years ago
Kegan Dougal 5115346297 Add instant_messaging module; modify batesian section rules
Previously, all `m.room.*` events were wodged into `{{room_events}}` which
isn't great when you want to pull specific ones out. Batesian had a 1:1
mapping of `render_foo()` to a section `{{foo}}`, and having to constantly
add functions for new types is a PITA. Batesian now supports returning a
`dict` instead of a section `string` where the keys are the `{{foo}}` and
the value is what will be inserted. Also add conflicting section key checks
to avoid multiple definitions of the same `{{foo}}`. Define dicts for
event schemata and swagger HTTP APIs.

Using this new feature, split out the instant messaging stuff from the events
section, and replace `{{room_events}}` with a list of specific events e.g.
`{{m_room_member_event}}`.
9 years ago
Kegan Dougal 5b134119bd Add presence module; fix relative title bug
If a relative title appeared after an HTTP API table, it
would insert the wrong level because it thought that part
of the table was a title.
9 years ago
Kegan Dougal 388aeefac0 Remove obsolete key 9 years ago
Kegan Dougal b0eb985523 Merge branch 'master' into spec-restructure-modules 9 years ago
Kegan Dougal 056b5eba22 Partially handle representing top-level array responses
If an HTTP API returned a top-level array response, the templating system
would fail to create a table for it. This is now partially fixed by pulling
out the type of the elements (no recursion is done to populate nested tables)
9 years ago