From 4fac27656b6c3d1e17e575a1388e386a63950981 Mon Sep 17 00:00:00 2001 From: Josh Hayes-Sheen Date: Sat, 18 Mar 2023 12:30:38 -0400 Subject: [PATCH] Replace generator stubs with our own service implementation stubs --- .gitattributes | 3 +- Makefile | 5 +- api/.openapi-generator/FILES | 7 +- api/README.md | 2 +- api/go/api_pet_service.go | 141 ----------------------------------- api/go/api_store_service.go | 84 --------------------- api/go/api_user_service.go | 120 ----------------------------- main.go | 7 +- service/pet.go | 57 ++++++++++++++ service/store.go | 36 +++++++++ service/user.go | 51 +++++++++++++ 11 files changed, 154 insertions(+), 359 deletions(-) delete mode 100644 api/go/api_pet_service.go delete mode 100644 api/go/api_store_service.go delete mode 100644 api/go/api_user_service.go create mode 100644 service/pet.go create mode 100644 service/store.go create mode 100644 service/user.go diff --git a/.gitattributes b/.gitattributes index f948bd6..2f4663b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ # See https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github for details -api/** linguist-generated=true \ No newline at end of file +api/** linguist-generated=true +go.sum linguist-generated=true \ No newline at end of file diff --git a/Makefile b/Makefile index e4e3092..467edda 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ .PHONY: generate generate: - docker run --rm -v ${CURDIR}:/local openapitools/openapi-generator-cli generate -i /local/petstore-openapi.yaml -g go-server --additional-properties=addResponseHeaders=true,router=chi -o /local/api - # The generated demo service and module configuration confuse the compiler, and we're not using them, so remove them - del api\main.go api\go.mod + docker run --rm -v ${CURDIR}:/local openapitools/openapi-generator-cli generate -i /local/petstore-openapi.yaml -g go-server --additional-properties=addResponseHeaders=true,outputAsLibrary=true,onlyInterfaces=true,router=chi -o /local/api + diff --git a/api/.openapi-generator/FILES b/api/.openapi-generator/FILES index 2709ec8..f37dc86 100644 --- a/api/.openapi-generator/FILES +++ b/api/.openapi-generator/FILES @@ -1,14 +1,10 @@ -Dockerfile +.openapi-generator-ignore README.md api/openapi.yaml -go.mod go/api.go go/api_pet.go -go/api_pet_service.go go/api_store.go -go/api_store_service.go go/api_user.go -go/api_user_service.go go/error.go go/helpers.go go/impl.go @@ -22,4 +18,3 @@ go/model_pet.go go/model_tag.go go/model_user.go go/routers.go -main.go diff --git a/api/README.md b/api/README.md index cb5f068..e7a2e55 100644 --- a/api/README.md +++ b/api/README.md @@ -20,7 +20,7 @@ To see how to make this your own, look here: [README](https://openapi-generator.tech) - API version: 1.0.17 -- Build date: 2023-03-18T15:52:57.387786Z[Etc/UTC] +- Build date: 2023-03-18T16:16:35.573051Z[Etc/UTC] ### Running the server diff --git a/api/go/api_pet_service.go b/api/go/api_pet_service.go deleted file mode 100644 index 54a586a..0000000 --- a/api/go/api_pet_service.go +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Swagger Petstore - OpenAPI 3.0 - * - * This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about Swagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach! You can now help us improve the API whether it's by making changes to the definition itself or to the code. That way, with time, we can improve the API in general, and expose some of the new features in OAS3. Some useful links: - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore) - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml) - * - * API version: 1.0.17 - * Contact: apiteam@swagger.io - * Generated by: OpenAPI Generator (https://openapi-generator.tech) - */ - -package openapi - -import ( - "context" - "errors" - "net/http" - "os" -) - -// PetApiService is a service that implements the logic for the PetApiServicer -// This service should implement the business logic for every endpoint for the PetApi API. -// Include any external packages or services that will be required by this service. -type PetApiService struct { -} - -// NewPetApiService creates a default api service -func NewPetApiService() PetApiServicer { - return &PetApiService{} -} - -// AddPet - Add a new pet to the store -func (s *PetApiService) AddPet(ctx context.Context, pet Pet) (ImplResponse, error) { - // TODO - update AddPet with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, Pet{}) or use other options such as http.Ok ... - //return Response(200, Pet{}), nil - - //TODO: Uncomment the next line to return response Response(405, {}) or use other options such as http.Ok ... - //return Response(405, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("AddPet method not implemented") -} - -// DeletePet - Deletes a pet -func (s *PetApiService) DeletePet(ctx context.Context, petId int64, apiKey string) (ImplResponse, error) { - // TODO - update DeletePet with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("DeletePet method not implemented") -} - -// FindPetsByStatus - Finds Pets by status -func (s *PetApiService) FindPetsByStatus(ctx context.Context, status string) (ImplResponse, error) { - // TODO - update FindPetsByStatus with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, []Pet{}) or use other options such as http.Ok ... - //return Response(200, []Pet{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("FindPetsByStatus method not implemented") -} - -// FindPetsByTags - Finds Pets by tags -func (s *PetApiService) FindPetsByTags(ctx context.Context, tags []string) (ImplResponse, error) { - // TODO - update FindPetsByTags with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, []Pet{}) or use other options such as http.Ok ... - //return Response(200, []Pet{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("FindPetsByTags method not implemented") -} - -// GetPetById - Find pet by ID -func (s *PetApiService) GetPetById(ctx context.Context, petId int64) (ImplResponse, error) { - // TODO - update GetPetById with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, Pet{}) or use other options such as http.Ok ... - //return Response(200, Pet{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("GetPetById method not implemented") -} - -// UpdatePet - Update an existing pet -func (s *PetApiService) UpdatePet(ctx context.Context, pet Pet) (ImplResponse, error) { - // TODO - update UpdatePet with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, Pet{}) or use other options such as http.Ok ... - //return Response(200, Pet{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - //TODO: Uncomment the next line to return response Response(405, {}) or use other options such as http.Ok ... - //return Response(405, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("UpdatePet method not implemented") -} - -// UpdatePetWithForm - Updates a pet in the store with form data -func (s *PetApiService) UpdatePetWithForm(ctx context.Context, petId int64, name string, status string) (ImplResponse, error) { - // TODO - update UpdatePetWithForm with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(405, {}) or use other options such as http.Ok ... - //return Response(405, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("UpdatePetWithForm method not implemented") -} - -// UploadFile - uploads an image -func (s *PetApiService) UploadFile(ctx context.Context, petId int64, additionalMetadata string, body *os.File) (ImplResponse, error) { - // TODO - update UploadFile with the required logic for this service method. - // Add api_pet_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, ApiResponse{}) or use other options such as http.Ok ... - //return Response(200, ApiResponse{}), nil - - return Response(http.StatusNotImplemented, nil), errors.New("UploadFile method not implemented") -} diff --git a/api/go/api_store_service.go b/api/go/api_store_service.go deleted file mode 100644 index 97b87b8..0000000 --- a/api/go/api_store_service.go +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Swagger Petstore - OpenAPI 3.0 - * - * This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about Swagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach! You can now help us improve the API whether it's by making changes to the definition itself or to the code. That way, with time, we can improve the API in general, and expose some of the new features in OAS3. Some useful links: - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore) - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml) - * - * API version: 1.0.17 - * Contact: apiteam@swagger.io - * Generated by: OpenAPI Generator (https://openapi-generator.tech) - */ - -package openapi - -import ( - "context" - "errors" - "net/http" -) - -// StoreApiService is a service that implements the logic for the StoreApiServicer -// This service should implement the business logic for every endpoint for the StoreApi API. -// Include any external packages or services that will be required by this service. -type StoreApiService struct { -} - -// NewStoreApiService creates a default api service -func NewStoreApiService() StoreApiServicer { - return &StoreApiService{} -} - -// DeleteOrder - Delete purchase order by ID -func (s *StoreApiService) DeleteOrder(ctx context.Context, orderId int64) (ImplResponse, error) { - // TODO - update DeleteOrder with the required logic for this service method. - // Add api_store_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("DeleteOrder method not implemented") -} - -// GetInventory - Returns pet inventories by status -func (s *StoreApiService) GetInventory(ctx context.Context) (ImplResponse, error) { - // TODO - update GetInventory with the required logic for this service method. - // Add api_store_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, map[string]int32{}) or use other options such as http.Ok ... - //return Response(200, map[string]int32{}), nil - - return Response(http.StatusNotImplemented, nil), errors.New("GetInventory method not implemented") -} - -// GetOrderById - Find purchase order by ID -func (s *StoreApiService) GetOrderById(ctx context.Context, orderId int64) (ImplResponse, error) { - // TODO - update GetOrderById with the required logic for this service method. - // Add api_store_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, Order{}) or use other options such as http.Ok ... - //return Response(200, Order{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("GetOrderById method not implemented") -} - -// PlaceOrder - Place an order for a pet -func (s *StoreApiService) PlaceOrder(ctx context.Context, order Order) (ImplResponse, error) { - // TODO - update PlaceOrder with the required logic for this service method. - // Add api_store_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, Order{}) or use other options such as http.Ok ... - //return Response(200, Order{}), nil - - //TODO: Uncomment the next line to return response Response(405, {}) or use other options such as http.Ok ... - //return Response(405, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("PlaceOrder method not implemented") -} diff --git a/api/go/api_user_service.go b/api/go/api_user_service.go deleted file mode 100644 index 786610f..0000000 --- a/api/go/api_user_service.go +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Swagger Petstore - OpenAPI 3.0 - * - * This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about Swagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach! You can now help us improve the API whether it's by making changes to the definition itself or to the code. That way, with time, we can improve the API in general, and expose some of the new features in OAS3. Some useful links: - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore) - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml) - * - * API version: 1.0.17 - * Contact: apiteam@swagger.io - * Generated by: OpenAPI Generator (https://openapi-generator.tech) - */ - -package openapi - -import ( - "context" - "errors" - "net/http" -) - -// UserApiService is a service that implements the logic for the UserApiServicer -// This service should implement the business logic for every endpoint for the UserApi API. -// Include any external packages or services that will be required by this service. -type UserApiService struct { -} - -// NewUserApiService creates a default api service -func NewUserApiService() UserApiServicer { - return &UserApiService{} -} - -// CreateUser - Create user -func (s *UserApiService) CreateUser(ctx context.Context, user User) (ImplResponse, error) { - // TODO - update CreateUser with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(0, User{}) or use other options such as http.Ok ... - //return Response(0, User{}), nil - - return Response(http.StatusNotImplemented, nil), errors.New("CreateUser method not implemented") -} - -// CreateUsersWithListInput - Creates list of users with given input array -func (s *UserApiService) CreateUsersWithListInput(ctx context.Context, user []User) (ImplResponse, error) { - // TODO - update CreateUsersWithListInput with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, User{}) or use other options such as http.Ok ... - //return Response(200, User{}), nil - - //TODO: Uncomment the next line to return response Response(0, {}) or use other options such as http.Ok ... - //return Response(0, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("CreateUsersWithListInput method not implemented") -} - -// DeleteUser - Delete user -func (s *UserApiService) DeleteUser(ctx context.Context, username string) (ImplResponse, error) { - // TODO - update DeleteUser with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("DeleteUser method not implemented") -} - -// GetUserByName - Get user by user name -func (s *UserApiService) GetUserByName(ctx context.Context, username string) (ImplResponse, error) { - // TODO - update GetUserByName with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, User{}) or use other options such as http.Ok ... - //return Response(200, User{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - //TODO: Uncomment the next line to return response Response(404, {}) or use other options such as http.Ok ... - //return Response(404, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("GetUserByName method not implemented") -} - -// LoginUser - Logs user into the system -func (s *UserApiService) LoginUser(ctx context.Context, username string, password string) (ImplResponse, error) { - // TODO - update LoginUser with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(200, string{}) or use other options such as http.Ok ... - //return Response(200, string{}), nil - - //TODO: Uncomment the next line to return response Response(400, {}) or use other options such as http.Ok ... - //return Response(400, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("LoginUser method not implemented") -} - -// LogoutUser - Logs out current logged in user session -func (s *UserApiService) LogoutUser(ctx context.Context) (ImplResponse, error) { - // TODO - update LogoutUser with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(0, {}) or use other options such as http.Ok ... - //return Response(0, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("LogoutUser method not implemented") -} - -// UpdateUser - Update user -func (s *UserApiService) UpdateUser(ctx context.Context, username string, user User) (ImplResponse, error) { - // TODO - update UpdateUser with the required logic for this service method. - // Add api_user_service.go to the .openapi-generator-ignore to avoid overwriting this service implementation when updating open api generation. - - //TODO: Uncomment the next line to return response Response(0, {}) or use other options such as http.Ok ... - //return Response(0, nil),nil - - return Response(http.StatusNotImplemented, nil), errors.New("UpdateUser method not implemented") -} diff --git a/main.go b/main.go index 5773567..be9f9db 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "time" openapi "github.com/grevian/petstore-demo/api/go" + "github.com/grevian/petstore-demo/service" ) func main() { @@ -24,13 +25,13 @@ func main() { }() // Construct an API implementation using the default generated implementation - PetApiService := openapi.NewPetApiService() + PetApiService := service.NewPetAPIService() PetApiController := openapi.NewPetApiController(PetApiService) - StoreApiService := openapi.NewStoreApiService() + StoreApiService := service.NewStoreApiService() StoreApiController := openapi.NewStoreApiController(StoreApiService) - UserApiService := openapi.NewUserApiService() + UserApiService := service.NewUserApiService() UserApiController := openapi.NewUserApiController(UserApiService) router := openapi.NewRouter(PetApiController, StoreApiController, UserApiController) diff --git a/service/pet.go b/service/pet.go new file mode 100644 index 0000000..6168545 --- /dev/null +++ b/service/pet.go @@ -0,0 +1,57 @@ +package service + +import ( + "context" + "os" + + openapi "github.com/grevian/petstore-demo/api/go" +) + +var _ openapi.PetApiServicer = (*petAPIService)(nil) + +type petAPIService struct { +} + +func NewPetAPIService() *petAPIService { + return &petAPIService{} +} + +func (p petAPIService) AddPet(ctx context.Context, pet openapi.Pet) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) DeletePet(ctx context.Context, petId int64, apiKey string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) FindPetsByStatus(ctx context.Context, status string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) FindPetsByTags(ctx context.Context, tags []string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) GetPetById(ctx context.Context, petId int64) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) UpdatePet(ctx context.Context, pet openapi.Pet) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) UpdatePetWithForm(ctx context.Context, petId int64, petName string, petStatus string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (p petAPIService) UploadFile(ctx context.Context, petId int64, additionalMetadata string, file *os.File) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} diff --git a/service/store.go b/service/store.go new file mode 100644 index 0000000..0dd29f9 --- /dev/null +++ b/service/store.go @@ -0,0 +1,36 @@ +package service + +import ( + "context" + + openapi "github.com/grevian/petstore-demo/api/go" +) + +var _ openapi.StoreApiServicer = (*storeAPIService)(nil) + +type storeAPIService struct { +} + +func NewStoreApiService() *storeAPIService { + return &storeAPIService{} +} + +func (s storeAPIService) DeleteOrder(ctx context.Context, orderId int64) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (s storeAPIService) GetInventory(ctx context.Context) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (s storeAPIService) GetOrderById(ctx context.Context, orderId int64) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (s storeAPIService) PlaceOrder(ctx context.Context, order openapi.Order) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} diff --git a/service/user.go b/service/user.go new file mode 100644 index 0000000..d105e3c --- /dev/null +++ b/service/user.go @@ -0,0 +1,51 @@ +package service + +import ( + "context" + + openapi "github.com/grevian/petstore-demo/api/go" +) + +var _ openapi.UserApiServicer = (*userAPIService)(nil) + +type userAPIService struct { +} + +func NewUserApiService() *userAPIService { + return &userAPIService{} +} + +func (u userAPIService) CreateUser(ctx context.Context, user openapi.User) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) CreateUsersWithListInput(ctx context.Context, users []openapi.User) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) DeleteUser(ctx context.Context, username string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) GetUserByName(ctx context.Context, username string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) LoginUser(ctx context.Context, username string, password string) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) LogoutUser(ctx context.Context) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +} + +func (u userAPIService) UpdateUser(ctx context.Context, username string, user openapi.User) (openapi.ImplResponse, error) { + //TODO implement me + panic("implement me") +}