aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-02-25 19:36:18 +0700
committerShulhan <ms@kilabit.info>2023-02-25 19:56:24 +0700
commitfee20f0aeb51113a995c8fe21ff1e34f4244eb8f (patch)
tree79e25493dde2931cefa5fbb812717355bcef8cce
parent4100f2dbd433ec885c3c9f5eb963ba98bb1ab1e4 (diff)
downloadpakakeh.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.go2
-rw-r--r--lib/http/endpoint_response.go4
-rw-r--r--lib/http/endpoint_response_example_test.go8
-rw-r--r--lib/http/endpoint_response_test.go16
-rw-r--r--lib/http/server.go18
-rw-r--r--lib/ssh/client.go2
-rw-r--r--lib/xmlrpc/response.go10
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
}