Commit graph

173 commits

Author SHA1 Message Date
Kegan Dougal bbd3f8072c Review comments 2015-10-19 13:28:44 +01:00
Kegan Dougal d39a9082a0 Add invite_room_state to spec. Flesh out info. 2015-10-16 16:43:33 +01:00
Kegan Dougal f20faa80e5 Swagger validation 2015-10-15 14:58:00 +01:00
Daniel Wagner-Hall 2502ca7ac6 Merge branch 'master' into daniel/threepidinvites-2
Conflicts:
	specification/targets.yaml
2015-10-12 18:11:01 +01:00
Kegan Dougal 213cb25290 Wrap correctly 2015-10-08 16:38:41 +01:00
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.
2015-10-08 16:21:26 +01:00
Daniel Wagner-Hall 21a40b317d Merge branch 'master' into daniel/threepidinvites-2 2015-10-08 09:41:17 -05:00
Kegan Dougal 65504db7bb Display nested keys on arrays of objects. Make it valid swagger. 2015-10-08 13:40:21 +01:00
Kegan Dougal 31ae4b3859 Swaggerify push notification API
Edit units.py to support nested JSON request keys
2015-10-08 13:08:21 +01:00
Kegan Dougal a9618a981b Swaggerify the /enabled endpoint 2015-10-08 11:16:42 +01:00
Kegan Dougal 56ce432399 Get profile tag keys displaying correctly. 2015-10-08 10:14:05 +01:00
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.
2015-10-07 16:01:36 +01:00
Kegan Dougal 09ac367847 Merge branch 'master' into module-content-repo
Conflicts:
	templating/matrix_templates/units.py
2015-10-02 10:46:46 +01:00
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 2015-10-02 10:44:50 +01:00
Daniel Wagner-Hall d2c56fb7a3 Merge branch 'master' into daniel/threepidinvites-2 2015-10-01 21:18:50 -05:00
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.
2015-10-01 17:55:16 +01:00
Kegan Dougal 560cd7a58f This isn't javascript. s/,/%/ 2015-10-01 15:54:45 +01:00
Kegan Dougal 6000887201 Merge branch 'master' into module-receipts
Conflicts:
	specification/modules/receipts.rst
2015-10-01 15:44:53 +01:00
Kegan Dougal c972dad8b3 Flesh out receipts module. Add receipts swagger
Add templating support for v2 apis.
2015-10-01 15:41:54 +01:00
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.
2015-10-01 12:11:26 +01:00
Kegan Dougal 11c586c560 Merge branch 'master' into spec-feature-profiles
Conflicts:
	templating/build.py
2015-09-25 16:34:47 +01:00
Kegan Dougal 9c882ea5e4 Detect unused {{ vars }} and whine loudly. 2015-09-25 16:24:31 +01:00
Kegan Dougal c6375ed3d1 Flesh out feature profiles section
Add table detailing the profiles. Add anchors to link through to each module
following a well-defined format (rather than the name of the module section).
Allow UTF-8 in the spec.
2015-09-25 15:09:15 +01:00
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.
2015-09-23 15:36:13 +01:00
Kegan Dougal f1adad5fb3 Add more logging with file prefixes
This makes the handoff between gendoc and batesian clearer in the logs.
2015-09-23 15:10:55 +01:00
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}}`.
2015-09-23 10:48:49 +01:00
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.
2015-09-23 09:59:54 +01:00
Kegan Dougal 388aeefac0 Remove obsolete key 2015-09-22 16:07:19 +01:00
Kegan Dougal b0eb985523 Merge branch 'master' into spec-restructure-modules 2015-09-22 16:04:41 +01:00
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)
2015-09-22 16:01:22 +01:00
Kegan Dougal 0c0ac3e814 Fix common event fields template to use subtitle char 2015-09-22 14:07:23 +01:00
Kegan Dougal f71763b0d3 Implement relative title styles
Templates don't know at what level they will be inserted. Previously, we
hard-coded the title style which is not compatible with the build target
system. Define a set of styles which will be replaced by the gendoc script
when it encounters them:
 '<' : Make this title a sub-heading
 '/' : Make this title a heading at the same level
 '>' : Make this title a super-heading

The build target system is now basically complete and functioning.
2015-09-22 13:08:15 +01:00
Mark Haines 2efadea583 Merge branch 'master' into markjh/document_v1_rooms_api 2015-09-21 16:35:31 +01:00
Mark Haines f33c0846c3 Merge remote-tracking branch 'origin/master' into markjh/document_v1_rooms_api 2015-09-18 17:38:03 +01:00
Mark Haines 6b5b8432b3 Turn on code highlighting for HTTP api responses and add a
code highlighting stylesheet for the specification.
2015-09-18 17:26:10 +01:00
Mark Haines 7c2ccb1aeb Merge remote-tracking branch 'origin/master' into markjh/swagger_examples 2015-09-18 16:11:26 +01:00
Mark Haines 7ac5c3766c Merge remote-tracking branch 'origin/master' into markjh/event-schema
Conflicts:
	templating/matrix_templates/units.py
2015-09-18 15:49:36 +01:00
Mark Haines f99a38ce72 Update the hard-coded paths in templating units.py.
Replace the hard code paths with global variables.
2015-09-18 14:43:57 +01:00
Mark Haines 63f08bace6 Fix the examples in the swagger API documentation to be valid JSON 2015-09-18 14:40:48 +01:00
Mark Haines 7f81501762 Allow relative references to schema to work in python and node.
Rename "schema/v1/core" to "schema/v1/core-event-schema".
Add self-referential symlinks to schema/v1/core-event-schema

The python json schema libraries expect that relative references are
relative to the file they are in. The node json schema libraries
expect that relateive references are relative to the first file loaded.

To support both kinds we reference the core event schema using
"core-event-schema/event.json". We then symlink the core-event-schema
directory to both the location of the file refering to "event.json" so
that it will work in python and to the location of the top level file
so that it will work in node.
2015-09-18 11:39:44 +01:00
Kegan Dougal 5b59c67510 Minor formatting fixes. Fix state event templating. 2015-09-17 16:34:20 +01:00
Mark Haines 315f97e36b Merge branch 'master' into markjh/document_v1_rooms_api 2015-09-17 15:25:00 +01:00
Mark Haines 380f186273 Log which file a json parse error occurred in 2015-09-17 14:42:43 +01:00
Mark Haines 2cf8da6b20 Update the gendoc script to load the core event schema from
separate files.
2015-09-17 10:28:57 +01:00
Daniel Wagner-Hall a19e18a4da Merge branch 'master' into daniel/threepidinvites-2 2015-09-15 16:46:35 +01:00
Mark Haines 7eb8b4fde2 Add new-style docs for the APIs for getting events for a room 2015-09-15 15:52:36 +01:00
Daniel Wagner-Hall 59a4e84361 s/registration/login/ 2015-09-14 17:10:46 +01:00
Daniel Wagner-Hall b8e2ac5c1b Swaggerify /login 2015-09-14 13:49:27 +01:00
Daniel Wagner-Hall c66a933640 Merge branch 'master' into daniel/threepidinvites-2 2015-09-10 16:47:50 +01:00
Daniel Wagner-Hall 306f91edb3 Specify third party room invitations
SYN-458
2015-09-10 16:46:22 +01:00
Kegsay 3011823c51 Merge pull request #27 from matrix-org/receipts
Document receipts
2015-09-10 16:18:19 +01:00
Daniel Wagner-Hall 99106bb6fe Add explanatory comments
Also, remove line which was accidentally removed
2015-09-10 13:54:00 +01:00
Daniel Wagner-Hall f67e27e843 Split on double-newlines not single
Otherwise all sorts of tables get horribly broken
2015-09-10 13:20:04 +01:00
Daniel Wagner-Hall 55f33736b2 Preserve newlines in wrapped text 2015-09-10 12:04:12 +01:00
Kegsay cf3475515e Merge pull request #33 from matrix-org/daniel/threepidinvites
Spec /room/{roomId}/join
2015-09-09 16:56:43 +01:00
Daniel Wagner-Hall d399e5b93b Use an alias object rather than flat fields 2015-09-09 13:16:46 +01:00
Kegan Dougal a92fa6392d Include patternProperties as normal properties (they basically are just patterns instead of keys; we could probably annotate this more nicely in the future) 2015-09-08 17:14:31 +01:00
Daniel Wagner-Hall 64cfc00f50 Remove unused fluff 2015-09-08 17:07:52 +01:00
Daniel Wagner-Hall 90f5dc370b Populate aliases from canonical endpoint
Swagger validates badly if you have endpoints without the full
specification of things, so instead let's generate them the other way
around.
2015-09-08 16:59:18 +01:00
Daniel Wagner-Hall d53943c8c2 Spec /room/{roomId}/join
This is just replacing the existing spec with a swagger version.

Subsequent pull requests will add 3pid join to this, as well as specing
the invite, leave, ban, and kick endpoints.
2015-09-08 16:35:08 +01:00
Daniel Wagner-Hall 26ebe3e68b Add ability to refer to aliases of endpoints 2015-09-08 16:27:20 +01:00
Daniel Wagner-Hall 5031c26f7b Make res optional, and rename to good_response 2015-09-08 11:25:03 +01:00
Daniel Wagner-Hall 0a9f61029a Allow for missing responses key 2015-09-08 11:16:48 +01:00
Daniel Wagner-Hall 94b13c0121 Show all responses, not just the successful one
This still filters out responses lacking either a description or an
example
2015-09-07 17:14:36 +01:00
Kegan Dougal e572cc662a Restructure the first few sections.
Remove unecessary sections; put presnece/profile sections on the right level.
Move Living Standard warning to the top of the Introduction section.
2015-06-02 16:27:52 +01:00
Kegan Dougal c42bfabaad Order the status API before presence lists because it is more important. 2015-06-02 16:12:23 +01:00
Kegan Dougal e10859a887 Replace presence API with new template. 2015-06-02 16:01:26 +01:00
Kegan Dougal 334e10468d Add presence swagger and template. 2015-06-02 15:10:44 +01:00
Kegan Dougal ec631c60d4 Add link to github commit for the spec as per request. 2015-06-02 13:48:52 +01:00
Kegan Dougal 14d004146b Implement nested tables for HTTP APIs. It even works(!) 2015-06-02 12:03:10 +01:00
Kegan Dougal 0275c2ffa0 Add sync API yaml. Add template for sync_http_api. 2015-06-02 11:44:27 +01:00
Kegan Dougal bb9537b824 Add a CHANGELOG. Modify table CSS.
Hook up templating system to read the CHANGELOG for version and changelog info.
Modified nature.css to make it clearer on table headings/sub-headings. Use the
full _matrix/client path on title links to make it clear it is for v1.
2015-06-01 17:48:16 +01:00
Kegan Dougal 8a676a2b9d Add sortFn for profile HTTP API. Add combined profile HTTP API. 2015-06-01 16:29:19 +01:00
Kegan Dougal 704cd14030 Add in response format for APIs. Standardise on 'key' rather than 'name'. 2015-06-01 15:54:16 +01:00
Kegan Dougal f6c98f41e9 Use table subsections for param locations instead of an extra column. 2015-06-01 15:26:48 +01:00
Kegan Dougal ba6ce16509 Modify how descriptions are shown. Add profile API descriptions. 2015-06-01 14:34:13 +01:00
Kegan Dougal 862f5a3a53 Add structure for adding examples to HTTP APIs.
Use 'x-example' to add examples to parameters which are not in 'body' (swagger
doesn't define that currently). Add profile API examples. Add necessary glue
and templates to make it all work.
2015-06-01 14:20:24 +01:00
Kegan Dougal c75fd6bcae Add HTTP API wip template. 2015-06-01 12:03:42 +01:00
Kegan Dougal 5795e1ceda Add profile API examples and extract examples for template usage. 2015-06-01 10:44:03 +01:00
Kegan Dougal fe7ffafc15 Factor out json schema object processing since swagger uses it too. Hook swagger up. 2015-05-29 17:19:45 +01:00
Kegan Dougal d090389d01 Start pre-processing swagger APIs before passing to sections. 2015-05-29 16:50:22 +01:00
Kegan Dougal 1dc3d82664 Load swagger APIs as templating units. Check sections return strings. 2015-05-29 15:58:33 +01:00
Kegan Dougal f134728268 Link to msgtypes from the description of m.room.message. 2015-05-28 11:57:44 +01:00
Kegan Dougal c3a298a5df Fix sort order for VoIP events. 2015-05-28 11:35:18 +01:00
Kegan Dougal ac7ccfa622 Add {{presence_events}}. Factor out common code in MatrixSections. 2015-05-28 10:45:00 +01:00
Kegan Dougal 9abadaf7af Add {{presence_events}} template. 2015-05-28 10:36:02 +01:00
Kegan Dougal e046402a4a Shift msgtype section order to have common (implemented) types first. 2015-05-27 16:51:07 +01:00
Kegan Dougal 6f330bd879 Gut the old msgtypes section and replace with {{msgtype_events}} 2015-05-27 16:42:01 +01:00
Kegan Dougal 59f856c7e6 Factor out ImageInfo into a core type. Refer to that in other msgtypes.
Add templating for msgtypes. ImageInfo core type is not referred to for
m.image in order for the ImageInfo table to render for it.
2015-05-27 16:30:11 +01:00
Kegan Dougal 06177740d4 Tweak how constants are represented. 2015-05-26 17:39:38 +01:00
Kegan Dougal 9d532f30e8 Add {{voip_events}}. Add more info on sections when asked via build.py -s 2015-05-26 17:32:51 +01:00
Kegsay 2a02b3494f Minor tweaks 2015-05-26 17:14:50 +01:00
Kegan Dougal 89083b3a86 Add {{spec_version}}. Update build.py module docs. 2015-05-26 17:09:30 +01:00
Kegsay c721bb7e61 Update template readme 2015-05-26 16:47:53 +01:00
Kegan Dougal 5b31c442f5 Completely split up the templating system from the Matrix Spec template code.
The two are now linked together in build.py by specifying the input module.
Updated gendoc.py to specify the right module.
2015-05-26 16:20:15 +01:00
Kegan Dougal 8e1d6899c2 Start encapsulating Units too. Add debug option which controls logging. 2015-05-26 14:50:45 +01:00
Kegan Dougal 96671ce833 Use the templating system to set {{git_version}}. Restructure sections code.
Restructured the sections code to be slightly more encapsulated than before.
This will be expanded to more clearly separate the templating system from
the specific implementation of the spec templates.
2015-05-26 14:33:32 +01:00
Kegan Dougal d3dca1f357 Sort keys alphabetically in tables. Sort event types alphabetically in sections. 2015-05-26 11:15:37 +01:00
Kegan Dougal dc5c01607b Sort out table layout and rejig where state_key is placed. 2015-05-26 10:40:04 +01:00
Kegan Dougal ed4ce6950c Template up common event fields from the 'core' json schema file. 2015-05-21 15:51:23 +01:00