Repository navigation
mains: pass FS nils for Files() DSL; mark Files-only services as HTTP (fixes #223) - #224
Merged
Merged
Conversation
This fixes issue #206 where the testing plugin was generating invalid Go syntax for method return types. The problem occurred when the result type was an array or slice - the template was incorrectly placing the pointer operator before the package qualifier and array brackets. For example, a method returning []*AccessControl would generate: func GetAccessControl(...) (*bff.[]*AccessControl, error) This is syntactically invalid. The correct syntax should be: func GetAccessControl(...) ([]*bff.AccessControl, error) The fix: - Added PkgResultRef field to clientMethodData to store the properly package-qualified result type reference - Use Goa's GoFullTypeRef method to generate the package-qualified type reference, which correctly handles arrays, maps, primitives, and user types - Updated the client_methods template to use PkgResultRef instead of manually constructing the type reference This leverages Goa's existing codegen infrastructure which properly handles all type cases including: - Pointer types: *Result -> *pkg.Result - Array/slice types: []*Result -> []*pkg.Result - Map types: map[K]*Result -> map[K]*pkg.Result - Nested types: []map[K]*Result -> []map[K]*pkg.Result Fixes #206
…r file servers (fixes #223)
This file contains hidden or 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
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.
What
nilper Files() endpoint when calling the generated HTTP server constructor, avoiding "not enough arguments" compile errors when FILES() DSL is used.Why
http.FileSystemargument for each Files() endpoint. The previous mains template always passed a fixed pair ofnilarguments (errhandler + formatter), which is insufficient when Files() is present (see Mains Plugin does not work with FILES() DSL #223).How
http.goviahttpcodegen.ServiceData.FileServersand fallback to the design (expr.HTTPServiceExpr.FileServers) when needed.FileServerNils []intto the mains template and append onenilargument per file server.len(FileServers) > 0asHasHTTPwhen building mains template data.Backwards compatibility
Tests
TestMainsAddsFileServerNilsto assert a service with 3 Files() endpoints results in aNew(...)call that ends with 5 consecutive, nilarguments (2 standard + 3 file servers).Fixes #223