diff options
| author | Shulhan <ms@kilabit.info> | 2023-02-25 19:36:18 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2023-02-25 19:56:24 +0700 |
| commit | fee20f0aeb51113a995c8fe21ff1e34f4244eb8f (patch) | |
| tree | 79e25493dde2931cefa5fbb812717355bcef8cce /lib/http | |
| parent | 4100f2dbd433ec885c3c9f5eb963ba98bb1ab1e4 (diff) | |
| download | pakakeh.go-fee20f0aeb51113a995c8fe21ff1e34f4244eb8f.tar.xz | |
all: access embedded field or methods using the type name
This is for clarity in the code, better to be explicit by typing where
the field or methods come from.
Diffstat (limited to 'lib/http')
| -rw-r--r-- | lib/http/endpoint_response.go | 4 | ||||
| -rw-r--r-- | lib/http/endpoint_response_example_test.go | 8 | ||||
| -rw-r--r-- | lib/http/endpoint_response_test.go | 16 | ||||
| -rw-r--r-- | lib/http/server.go | 18 |
4 files changed, 29 insertions, 17 deletions
diff --git a/lib/http/endpoint_response.go b/lib/http/endpoint_response.go index b91e5836..ff16d6b9 100644 --- a/lib/http/endpoint_response.go +++ b/lib/http/endpoint_response.go @@ -38,6 +38,10 @@ type EndpointResponse struct { Total int64 `json:"total,omitempty"` } +func (epr *EndpointResponse) Error() string { + return epr.E.Error() +} + // Unwrap return the error as instance of *liberror.E. func (epr *EndpointResponse) Unwrap() (err error) { return &epr.E diff --git a/lib/http/endpoint_response_example_test.go b/lib/http/endpoint_response_example_test.go index f0bbec6d..91829346 100644 --- a/lib/http/endpoint_response_example_test.go +++ b/lib/http/endpoint_response_example_test.go @@ -38,17 +38,17 @@ func ExampleEndpointResponse() { res := &EndpointResponse{} id := epr.HttpRequest.Form.Get("id") if len(id) == 0 { - res.Code = http.StatusBadRequest - res.Message = "empty parameter id" + res.E.Code = http.StatusBadRequest + res.E.Message = "empty parameter id" return nil, res } if id == "0" { // If the EndpointResponse.Code is 0, it will // default to http.StatusInternalServerError - res.Message = "id value 0 cause internal server error" + res.E.Message = "id value 0 cause internal server error" return nil, res } - res.Code = http.StatusOK + res.E.Code = http.StatusOK res.Data = &myData{ ID: id, } diff --git a/lib/http/endpoint_response_test.go b/lib/http/endpoint_response_test.go index 1e777b31..6acb25cd 100644 --- a/lib/http/endpoint_response_test.go +++ b/lib/http/endpoint_response_test.go @@ -12,15 +12,23 @@ import ( "github.com/shuLhan/share/lib/test" ) -type myResponse EndpointResponse +type myResponse struct { + EndpointResponse +} + +func (myres *myResponse) Error() string { + return myres.EndpointResponse.Error() +} // The EndpointResponse when returned as error should be able to converted // to liberrors.E using errors.As(). func TestEndpointResponse_errors_As(t *testing.T) { myres := &myResponse{ - E: liberrors.E{ - Code: 400, - Message: "bad request", + EndpointResponse: EndpointResponse{ + E: liberrors.E{ + Code: 400, + Message: "bad request", + }, }, } diff --git a/lib/http/server.go b/lib/http/server.go index b81e414f..bbdc8007 100644 --- a/lib/http/server.go +++ b/lib/http/server.go @@ -56,13 +56,13 @@ func NewServer(opts *ServerOptions) (srv *Server, err error) { srv.Server = opts.Conn srv.Server.Addr = opts.Address - srv.Handler = srv + srv.Server.Handler = srv - if srv.ReadTimeout == 0 { - srv.ReadTimeout = defRWTimeout + if srv.Server.ReadTimeout == 0 { + srv.Server.ReadTimeout = defRWTimeout } - if srv.WriteTimeout == 0 { - srv.WriteTimeout = defRWTimeout + if srv.Server.WriteTimeout == 0 { + srv.Server.WriteTimeout = defRWTimeout } if srv.Options.Memfs != nil { err = srv.Options.Memfs.Init() @@ -278,10 +278,10 @@ func (srv *Server) ServeHTTP(res http.ResponseWriter, req *http.Request) { // Start the HTTP server. func (srv *Server) Start() (err error) { - if srv.TLSConfig == nil { - err = srv.ListenAndServe() + if srv.Server.TLSConfig == nil { + err = srv.Server.ListenAndServe() } else { - err = srv.ListenAndServeTLS("", "") + err = srv.Server.ListenAndServeTLS("", "") } if errors.Is(err, http.ErrServerClosed) { err = nil @@ -298,7 +298,7 @@ func (srv *Server) Stop(wait time.Duration) (err error) { } ctx, cancel := context.WithTimeout(context.Background(), wait) defer cancel() - return srv.Shutdown(ctx) + return srv.Server.Shutdown(ctx) } func (srv *Server) getFSNode(reqPath string) (node *memfs.Node) { |
