api/clearancelevel.go
package api
import (
"encoding/json"
)
// ClearanceLevel is a basic input.
type ClearanceLevel struct {
PayloadLevel Payload `json:"Level" sql:"-"`
PayloadExplanation Payload `json:"Explanation" sql:"-"`
Level *Radio `json:"-"`
Explanation *Textarea `json:"-"`
}
// Unmarshal bytes in to the entity properties.
func (entity *ClearanceLevel) Unmarshal(raw []byte) error {
err := json.Unmarshal(raw, entity)
if err != nil {
return err
}
level, err := entity.PayloadLevel.Entity()
if err != nil {
return err
}
entity.Level = level.(*Radio)
explanation, err := entity.PayloadExplanation.Entity()
if err != nil {
return err
}
entity.Explanation = explanation.(*Textarea)
return err
}
// Marshal to payload structure
func (entity *ClearanceLevel) Marshal() Payload {
if entity.Level != nil {
entity.PayloadLevel = entity.Level.Marshal()
}
if entity.Explanation != nil {
entity.PayloadExplanation = entity.Explanation.Marshal()
}
return MarshalPayloadEntity("clearancelevel", entity)
}