Ability to describe custom actions using Attribute #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This is a very basic attempt to support custom actions (or default actions that are not coming from a Trait) through adding an Attribute to the controller method you want to appear in the output.
The attribute takes decriptor class strings as arguments, which allows users full control of the output for the endpoint.
To note:
src/Builders/Paths/Operation/SchemaBuilder.php
is a bit hacky, if the custom action is not one of the default actions (store, update, show etc..) it would just exit. The change makes it so it assumes you want the default schema for that controller. There is definitely a better way to handle this but limited by time here.Motivation and context
In our case, we reimplemented the Users > store action as our app needs to invite users on creation and we don't always need to create a user record in our db.
We needed this package to support custom actions so our new Users > store action would be automatically documented.
How has this been tested?
Added a test case and supporting classes.
Have extensively tested locally with our own production app too.
Screenshots (if appropriate)
Types of changes
What types of changes does your code introduce? Put an
x
in all the boxes that apply:Checklist:
Go over all the following points, and put an
x
in all the boxes that apply.Please, please, please, don't send your pull request until all of the boxes are ticked. Once your pull request is created, it will trigger a build on our continuous integration server to make sure your tests and code style pass.
If you're unsure about any of these, don't hesitate to ask. We're here to help!