diff --git a/go.mod b/go.mod index a7f2a5e..a94ac65 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.1 require ( somehole.com/common/log v0.1.3 somehole.com/common/security v0.2.1 - somehole.com/service/router v0.8.0 + somehole.com/service/router v0.12.0 ) require ( diff --git a/go.sum b/go.sum index 4e9c791..880fd00 100644 --- a/go.sum +++ b/go.sum @@ -8,5 +8,5 @@ somehole.com/common/log v0.1.3 h1:2PAui0+5EryTAHqVUZQeepLcJTGssHKz2OL+jBknHI0= somehole.com/common/log v0.1.3/go.mod h1:NS2eHnN120GA6oFbBm3XhB5yHww0eXTbLuMQYZxYNyA= somehole.com/common/security v0.2.1 h1:H7TpErYKsCOxKYYie75jU7azO5vEgeqrQ9uA+AjXafA= somehole.com/common/security v0.2.1/go.mod h1:6SMKdIrfxT460XXWafpD6A9yT/ykwipGsGztA5g5vVM= -somehole.com/service/router v0.8.0 h1:93+qKPpllgWSXGQTvBYLVK565rrFSWTxvMevepDCesY= -somehole.com/service/router v0.8.0/go.mod h1:F+/sNY4/ei7C9QD5+iA+gUHugcOAcrWspHKwX8d8oiM= +somehole.com/service/router v0.12.0 h1:nrBn+OJF9cN22vgXcZYdcSbLTamPwMEvu4NG2lJLO88= +somehole.com/service/router v0.12.0/go.mod h1:F+/sNY4/ei7C9QD5+iA+gUHugcOAcrWspHKwX8d8oiM= diff --git a/server/callback.go b/server/callback.go index 2b3d53b..b19c793 100644 --- a/server/callback.go +++ b/server/callback.go @@ -1,17 +1,14 @@ package server import ( - "io" + "encoding/json" "somehole.com/service/oauth2/session" "somehole.com/service/router" ) type CallbackRequestBuilder struct { - allowedMethods []string - header struct { - router.Header - } + router.UnimplementedRequestBuilder values struct { router.Values State session.State `form:"state"` @@ -19,38 +16,8 @@ type CallbackRequestBuilder struct { } } -func (crb CallbackRequestBuilder) RequestBuilder() router.RequestBuilder { - return &crb -} - -func (crb *CallbackRequestBuilder) Allowed(method string) (errRes router.ErrorResponse) { - var ok bool - for _, m := range crb.allowedMethods { - if m == method { - ok = true - } - } - if !ok { - return ErrorMethodNotAllowed - } - return Ok -} - -func (crb *CallbackRequestBuilder) Header(header router.Header) (errRes router.ErrorResponse) { - err := crb.header.Header.Parse(header) - if err != nil { - return ErrorBadRequest - } - return Ok -} - -func (crb *CallbackRequestBuilder) ReadBody(body io.ReadCloser) (errRes router.ErrorResponse) { - defer body.Close() - return Ok -} - -func (crb *CallbackRequestBuilder) Values(values router.Values) (errRes router.ErrorResponse) { - err := crb.values.Values.Parse(values) +func (rb *CallbackRequestBuilder) Values(values router.Values) (errRes router.ErrorResponse) { + err := rb.values.Values.Parse(values) if err != nil { return ErrorBadRequest } @@ -58,27 +25,15 @@ func (crb *CallbackRequestBuilder) Values(values router.Values) (errRes router.E } type CallbackResponse struct { - header struct { - router.Header - } + router.UnimplementedResponse Body struct { Message string `json:"message"` } } -func (cr CallbackResponse) Response() router.Response { - return &cr -} - -func (cr *CallbackResponse) Header() (header router.Header) { - if cr.header.Header == nil { - cr.header.Header.Parse(cr.header) - } - return cr.header.Header -} - -func (cr *CallbackResponse) BodyBytes() []byte { - return mustMarshalJson(cr.Body) +func (r *CallbackResponse) BodyBytes() (body []byte) { + body, _ = json.Marshal(r.Body) + return } type UnimplementedCallbackServer struct{} diff --git a/server/common.go b/server/common.go deleted file mode 100644 index 156602c..0000000 --- a/server/common.go +++ /dev/null @@ -1,14 +0,0 @@ -package server - -import ( - "encoding/json" - "fmt" -) - -func mustMarshalJson(in any) []byte { - out, err := json.Marshal(in) - if err != nil { - panic(fmt.Errorf("could not marshal %#v: %v", in, err)) - } - return out -} diff --git a/server/error.go b/server/error.go index 0146651..ad17457 100644 --- a/server/error.go +++ b/server/error.go @@ -1,9 +1,9 @@ package server import ( + "encoding/json" "fmt" "net/http" - "strings" ) type Error uint32 @@ -50,14 +50,6 @@ func (e Error) Error() (out string) { } func (e Error) BodyBytes() (body []byte) { - var msg string - switch e { - default: - msg = strings.Join(strings.Split(e.String(), " "), "_") - } - return mustMarshalJson(struct { - Error string `json:"error"` - }{ - Error: msg, - }) + body, _ = json.Marshal(struct{ Error string }{Error: e.String()}) + return } diff --git a/server/token.go b/server/token.go index 6fa6146..efd40af 100644 --- a/server/token.go +++ b/server/token.go @@ -1,17 +1,14 @@ package server import ( - "io" + "encoding/json" "somehole.com/service/oauth2/session" "somehole.com/service/router" ) type TokenRequestBuilder struct { - allowedMethods []string - header struct { - router.Header - } + router.UnimplementedRequestBuilder values struct { router.Values ResponseType string `form:"response_type"` @@ -20,38 +17,8 @@ type TokenRequestBuilder struct { } } -func (trb TokenRequestBuilder) RequestBuilder() router.RequestBuilder { - return &trb -} - -func (trb *TokenRequestBuilder) Allowed(method string) (errRes router.ErrorResponse) { - var ok bool - for _, m := range trb.allowedMethods { - if m == method { - ok = true - } - } - if !ok { - return ErrorMethodNotAllowed - } - return Ok -} - -func (trb *TokenRequestBuilder) Header(header router.Header) (errRes router.ErrorResponse) { - err := trb.header.Header.Parse(header) - if err != nil { - return ErrorBadRequest - } - return Ok -} - -func (trb *TokenRequestBuilder) ReadBody(body io.ReadCloser) (errRes router.ErrorResponse) { - defer body.Close() - return Ok -} - -func (trb *TokenRequestBuilder) Values(values router.Values) (errRes router.ErrorResponse) { - err := trb.values.Values.Parse(values) +func (rb *TokenRequestBuilder) Values(values router.Values) (errRes router.ErrorResponse) { + err := rb.values.Values.Parse(values) if err != nil { return ErrorBadRequest } @@ -59,9 +26,7 @@ func (trb *TokenRequestBuilder) Values(values router.Values) (errRes router.Erro } type TokenResponse struct { - header struct { - router.Header - } + router.UnimplementedResponse Body struct { VerificationUri string `json:"verification_uri"` UserCode session.Code `json:"user_code"` @@ -71,19 +36,9 @@ type TokenResponse struct { } } -func (tr TokenResponse) Response() router.Response { - return &tr -} - -func (tr *TokenResponse) Header() (header router.Header) { - if tr.header.Header == nil { - tr.header.Header.Parse(tr.header) - } - return tr.header.Header -} - -func (tr *TokenResponse) BodyBytes() []byte { - return mustMarshalJson(tr.Body) +func (r *TokenResponse) BodyBytes() (body []byte) { + body, _ = json.Marshal(r.Body) + return } type UnimplementedTokenServer struct{}