-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite #36
Merged
Merged
Rewrite #36
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Goals include: * Using a listener based approach * Reduce complexity * Better user/develop experience
Support no argument actions Support passing request to actions Dispatch Response, ActionArguments, and Terminate events
Remove some now unneeded code
Some minor polish here and there Add some more DI specs
Cleanup some services
Remove some invalid requirements Better param type conversion error handling Support converters on query params Only return 204 no content if the response is nil and the return type is Nil
Allows for using DI as well as generics
Use E2E tests to avoid the compiler errors with unit testing Minor fixes to argumentResolver
Add some more specs
Add specs Return 204 is action's return type is nil regardless of the response value
MrSorcus
reviewed
Dec 21, 2019
Initial CORs listener/config work
Revamp DI documentation
MrSorcus
reviewed
Jan 2, 2020
MrSorcus
reviewed
Jan 2, 2020
Default macro DSL to String Add specs for macro DSL
Switch to GH actions Remove need for "routing/" Rename base file routing => athena Fix some typos Use a more common domain name
MrSorcus
reviewed
Jan 8, 2020
Fix link in readme
Replace ART::Types.convert_type with a class method defined directly on the type Remove ActionArguments event Remove ability to get/set a specific argument Make Controller a generic arg
Some reorganization of param converters/controller code Part 1 of documentation pass
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
Use EventListenerInterface More documentation Fix some typos
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
MrSorcus
reviewed
Jan 11, 2020
Fix more typos Add more documentation
Last bit of documentation added
Final cleanup/doc pass
MrSorcus
reviewed
Jan 12, 2020
MrSorcus
reviewed
Jan 12, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
CLI
Config
Athena::Routing::Config
andAthena::Routing::Config::Cors
is an example of thisConfigurationResolver
service#resolve(_type)
method typed to that objectDI
ServiceContainer#has
toServiceContainer#has?
StructService
andClassService
into aService
module now that Add method to get an array of types a module is directly included in crystal-lang/crystal#8133 is releasednil
Routing
HTTP::Handler
architecture with an event dispatcher observer/mediator pattern.body
HTTP::Request
Response
objectHTTP::Server::Response
CrSerializer
andCrylog
routing/
directoryrouting.cr
toathena.cr
HEAD
route for eachGET
route#convert
is not passed theHTTP::Request
object in order to be more flexibleTODO
Possibly as a future PR since it'll require the configuration stuff