Remove Prototype method (require creation), increase factory clarity
This commit is contained in:
parent
64fe69244c
commit
3c64d0b477
179
default.go
179
default.go
@ -64,8 +64,6 @@ func (e DefaultError) BodyBytes() (body []byte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DefaultRequestBuilder struct {
|
type DefaultRequestBuilder struct {
|
||||||
requestBuilder RequestBuilder
|
|
||||||
prototype PrototypeRequestBuilder
|
|
||||||
errorHandler ErrorHandler
|
errorHandler ErrorHandler
|
||||||
allowedMethods *[]string
|
allowedMethods *[]string
|
||||||
header struct {
|
header struct {
|
||||||
@ -82,63 +80,65 @@ type DefaultRequestBuilder struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDefaultRequestBuilder(rb RequestBuilder, rbp PrototypeRequestBuilder, eh ErrorHandler, am *[]string, h *Header, hf header, v *Values, vf values, b *Body, bf body) DefaultRequestBuilder {
|
func NewDefaultRequestBuilder() *DefaultRequestBuilder {
|
||||||
if eh == nil {
|
return &DefaultRequestBuilder{}
|
||||||
eh = &DefaultErrorHandler{}
|
|
||||||
}
|
|
||||||
if am == nil {
|
|
||||||
amd := make([]string, 0)
|
|
||||||
am = &amd
|
|
||||||
}
|
|
||||||
if h == nil || hf == nil {
|
|
||||||
hd := make(Header)
|
|
||||||
h = &hd
|
|
||||||
hfd := struct{ Header }{Header: hd}
|
|
||||||
hf = &hfd
|
|
||||||
}
|
|
||||||
if v == nil || vf == nil {
|
|
||||||
vd := make(Values)
|
|
||||||
v = &vd
|
|
||||||
vfd := struct{ Values }{Values: vd}
|
|
||||||
vf = &vfd
|
|
||||||
}
|
|
||||||
if b == nil || bf == nil {
|
|
||||||
bd := make(Body, 0)
|
|
||||||
b = &bd
|
|
||||||
bfd := struct{ Body }{Body: bd}
|
|
||||||
bf = &bfd
|
|
||||||
}
|
|
||||||
return DefaultRequestBuilder{
|
|
||||||
requestBuilder: rb,
|
|
||||||
prototype: rbp,
|
|
||||||
errorHandler: eh,
|
|
||||||
allowedMethods: am,
|
|
||||||
header: struct {
|
|
||||||
*Header
|
|
||||||
fields header
|
|
||||||
}{
|
|
||||||
Header: h,
|
|
||||||
fields: hf,
|
|
||||||
},
|
|
||||||
values: struct {
|
|
||||||
*Values
|
|
||||||
fields values
|
|
||||||
}{
|
|
||||||
Values: v,
|
|
||||||
fields: vf,
|
|
||||||
},
|
|
||||||
body: struct {
|
|
||||||
*Body
|
|
||||||
fields body
|
|
||||||
}{
|
|
||||||
Body: b,
|
|
||||||
fields: bf,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rb *DefaultRequestBuilder) Prototype() PrototypeRequestBuilder {
|
func (rb *DefaultRequestBuilder) SetErrorHandler(errorHandler ErrorHandler) *DefaultRequestBuilder {
|
||||||
return rb.prototype
|
rb.errorHandler = errorHandler
|
||||||
|
return rb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rb *DefaultRequestBuilder) SetAllowedMethods(allowedMethods []string) *DefaultRequestBuilder {
|
||||||
|
rb.allowedMethods = &allowedMethods
|
||||||
|
return rb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rb *DefaultRequestBuilder) SetHeader(parsed *Header, fields header) *DefaultRequestBuilder {
|
||||||
|
rb.header.Header = parsed
|
||||||
|
rb.header.fields = fields
|
||||||
|
return rb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rb *DefaultRequestBuilder) SetValues(parsed *Values, fields values) *DefaultRequestBuilder {
|
||||||
|
rb.values.Values = parsed
|
||||||
|
rb.values.fields = fields
|
||||||
|
return rb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rb *DefaultRequestBuilder) SetBody(parsed *Body, fields body) *DefaultRequestBuilder {
|
||||||
|
rb.body.Body = parsed
|
||||||
|
rb.body.fields = fields
|
||||||
|
return rb
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rb *DefaultRequestBuilder) SetDefaults() *DefaultRequestBuilder {
|
||||||
|
if rb.errorHandler == nil {
|
||||||
|
rb.errorHandler = &DefaultErrorHandler{}
|
||||||
|
}
|
||||||
|
if rb.allowedMethods == nil {
|
||||||
|
amd := make([]string, 0)
|
||||||
|
rb.allowedMethods = &amd
|
||||||
|
}
|
||||||
|
if rb.header.Header == nil || rb.header.fields == nil {
|
||||||
|
hd := make(Header)
|
||||||
|
rb.header.Header = &hd
|
||||||
|
hfd := struct{ Header }{Header: hd}
|
||||||
|
rb.header.fields = &hfd
|
||||||
|
}
|
||||||
|
if rb.values.Values == nil || rb.values.fields == nil {
|
||||||
|
vd := make(Values)
|
||||||
|
rb.values.Values = &vd
|
||||||
|
vfd := struct{ Values }{Values: vd}
|
||||||
|
rb.values.fields = &vfd
|
||||||
|
}
|
||||||
|
if rb.body.Body == nil || rb.body.fields == nil {
|
||||||
|
bd := make(Body, 0)
|
||||||
|
rb.body.Body = &bd
|
||||||
|
bfd := struct{ Body }{Body: bd}
|
||||||
|
rb.body.fields = &bfd
|
||||||
|
}
|
||||||
|
return rb
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rb *DefaultRequestBuilder) Allowed(method string) (errRes ErrorResponse) {
|
func (rb *DefaultRequestBuilder) Allowed(method string) (errRes ErrorResponse) {
|
||||||
@ -177,9 +177,7 @@ func (rb *DefaultRequestBuilder) Values(values Values) (errRes ErrorResponse) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DefaultResponse struct {
|
type DefaultResponse struct {
|
||||||
response Response
|
header struct {
|
||||||
prototype PrototypeResponse
|
|
||||||
header struct {
|
|
||||||
*Header
|
*Header
|
||||||
fields header
|
fields header
|
||||||
}
|
}
|
||||||
@ -189,41 +187,36 @@ type DefaultResponse struct {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDefaultResponse(r Response, rp PrototypeResponse, h *Header, hf header, b *Body, bf body) DefaultResponse {
|
func NewDefaultResponse() *DefaultResponse {
|
||||||
if h == nil || hf == nil {
|
return &DefaultResponse{}
|
||||||
hd := make(Header)
|
|
||||||
h = &hd
|
|
||||||
hfd := struct{ Header }{Header: hd}
|
|
||||||
hf = &hfd
|
|
||||||
}
|
|
||||||
if b == nil || bf == nil {
|
|
||||||
bd := make(Body, 0)
|
|
||||||
b = &bd
|
|
||||||
bfd := struct{ Body }{Body: bd}
|
|
||||||
bf = &bfd
|
|
||||||
}
|
|
||||||
return DefaultResponse{
|
|
||||||
response: r,
|
|
||||||
prototype: rp,
|
|
||||||
header: struct {
|
|
||||||
*Header
|
|
||||||
fields header
|
|
||||||
}{
|
|
||||||
Header: h,
|
|
||||||
fields: hf,
|
|
||||||
},
|
|
||||||
body: struct {
|
|
||||||
*Body
|
|
||||||
fields body
|
|
||||||
}{
|
|
||||||
Body: b,
|
|
||||||
fields: bf,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *DefaultResponse) Prototype() PrototypeResponse {
|
func (r *DefaultResponse) SetHeader(parsed *Header, fields header) *DefaultResponse {
|
||||||
return r.prototype
|
r.header.Header = parsed
|
||||||
|
r.header.fields = fields
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *DefaultResponse) SetBody(parsed *Body, fields body) *DefaultResponse {
|
||||||
|
r.body.Body = parsed
|
||||||
|
r.body.fields = fields
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *DefaultResponse) SetDefaults() *DefaultResponse {
|
||||||
|
if r.header.Header == nil || r.header.fields == nil {
|
||||||
|
hd := make(Header)
|
||||||
|
r.header.Header = &hd
|
||||||
|
hfd := struct{ Header }{Header: hd}
|
||||||
|
r.header.fields = &hfd
|
||||||
|
}
|
||||||
|
if r.body.Body == nil || r.body.fields == nil {
|
||||||
|
bd := make(Body, 0)
|
||||||
|
r.body.Body = &bd
|
||||||
|
bfd := struct{ Body }{Body: bd}
|
||||||
|
r.body.fields = &bfd
|
||||||
|
}
|
||||||
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *DefaultResponse) Header() (header Header) {
|
func (r *DefaultResponse) Header() (header Header) {
|
||||||
|
Loading…
Reference in New Issue
Block a user