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 | |
| 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.
| -rw-r--r-- | api/slack/webhook_client.go | 2 | ||||
| -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 | ||||
| -rw-r--r-- | lib/ssh/client.go | 2 | ||||
| -rw-r--r-- | lib/xmlrpc/response.go | 10 |
7 files changed, 36 insertions, 24 deletions
diff --git a/api/slack/webhook_client.go b/api/slack/webhook_client.go index 166b5189..abff49bd 100644 --- a/api/slack/webhook_client.go +++ b/api/slack/webhook_client.go @@ -51,7 +51,7 @@ func (wcl *WebhookClient) Post(msg *Message) (err error) { if wcl.Client == nil { return nil } - httpRes, resBody, err := wcl.PostJSON(wcl.webhookPath, nil, msg) + httpRes, resBody, err := wcl.Client.PostJSON(wcl.webhookPath, nil, msg) if err != nil { return fmt.Errorf("WebhookClient.Post: %w", err) } 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) { diff --git a/lib/ssh/client.go b/lib/ssh/client.go index 3063153c..ea624066 100644 --- a/lib/ssh/client.go +++ b/lib/ssh/client.go @@ -112,7 +112,7 @@ func NewClientFromConfig(cfg *config.Section) (cl *Client, err error) { // Execute a command on remote server. func (cl *Client) Execute(cmd string) (err error) { - sess, err := cl.NewSession() + sess, err := cl.Client.NewSession() if err != nil { return fmt.Errorf("ssh: NewSession: " + err.Error()) } diff --git a/lib/xmlrpc/response.go b/lib/xmlrpc/response.go index 85e2d4bf..ada93acb 100644 --- a/lib/xmlrpc/response.go +++ b/lib/xmlrpc/response.go @@ -24,15 +24,15 @@ func (resp *Response) MarshalText() (out []byte, err error) { buf.WriteString(xml.Header) buf.WriteString("<methodResponse>") - if resp.Code <= 200 { + if resp.E.Code <= 200 { fmt.Fprintf(&buf, "<params><param>%s</param></params>", resp.Param) } else { buf.WriteString("<fault><value><struct>") fmt.Fprintf(&buf, "<member><name>faultCode</name><value><int>%d</int></value></member>", - resp.Code) + resp.E.Code) fmt.Fprintf(&buf, "<member><name>faultString</name><value><string>%s</string></value></member>", - resp.Message) + resp.E.Message) buf.WriteString("</struct></value></fault>") } @@ -113,8 +113,8 @@ func (resp *Response) unmarshalFault(dec *xml.Decoder) (err error) { return fmt.Errorf("unmarshalFault: %w", err) } - resp.Code = v.GetFieldAsInteger(memberNameFaultCode) - resp.Message = v.GetFieldAsString(memberNameFaultString) + resp.E.Code = v.GetFieldAsInteger(memberNameFaultCode) + resp.E.Message = v.GetFieldAsString(memberNameFaultString) return nil } |
