Skip to content

Instantly share code, notes, and snippets.

@talbright
Created May 30, 2014 14:14
Show Gist options
  • Save talbright/3e4b99ec870c416e61b8 to your computer and use it in GitHub Desktop.
Save talbright/3e4b99ec870c416e61b8 to your computer and use it in GitHub Desktop.
//Not very DRY at all, there should be a better way...
type Case struct {
ID *int `json:"id,omitempty"`
ExternalID *string `json:"external_id,omitempty"`
Type *string `json:"type,omitempty"`
}
type caseBuilder builder.Builder
func (b caseBuilder) Build() Case {
return builder.GetStruct(b).(Case)
}
func (b caseBuilder) SetStringField(field string,value string) caseBuilder {
return builder.Set(b, field, &value).(caseBuilder)
}
var CaseBuilder = builder.Register(caseBuilder{}, Case{}).(caseBuilder)
//rinse and repeat...
type Customer struct {
ID *int `json:"id,omitempty"`
ExternalID *string `json:"external_id,omitempty"`
Name *string `json:"name,omitempty"`
}
type customerBuilder builder.Builder
func (b customerBuilder) Build() Case {
return builder.GetStruct(b).(Customer)
}
func (b caseBuilder) SetStringField(field string,value string) customerBuilder {
return builder.Set(b, field, &value).(customerBuilder)
}
var CustomerBuilder = builder.Register(customerBuilder{}, Customer{}).(customerBuilder)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment