44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
|
package envelope
|
||
|
|
||
|
import "time"
|
||
|
import "encoding/json"
|
||
|
import "bytes"
|
||
|
import "io"
|
||
|
|
||
|
//Envelope -- Standard daplie response structure
|
||
|
type Envelope struct {
|
||
|
TransactionType string `json:"type"`
|
||
|
Schema string `json:"schema"`
|
||
|
TransactionTimeStamp int64 `json:"txts"`
|
||
|
TransactionID int64 `json:"txid"`
|
||
|
Error string `json:"error"`
|
||
|
ErrorDescription string `json:"error_description"`
|
||
|
ErrorURI string `json:"error_uri"`
|
||
|
Result interface{} `json:"result"`
|
||
|
}
|
||
|
|
||
|
//NewEnvelope -- Constructor
|
||
|
func NewEnvelope(transactionType string) (p *Envelope) {
|
||
|
transactionID++
|
||
|
|
||
|
p = new(Envelope)
|
||
|
p.TransactionType = transactionType
|
||
|
p.TransactionID = transactionID
|
||
|
p.TransactionTimeStamp = time.Now().Unix()
|
||
|
p.Error = "ok"
|
||
|
|
||
|
return
|
||
|
}
|
||
|
|
||
|
//Generate -- encode into JSON and return string
|
||
|
func (e *Envelope) Generate() string {
|
||
|
buf := new(bytes.Buffer)
|
||
|
json.NewEncoder(buf).Encode(e)
|
||
|
return buf.String()
|
||
|
}
|
||
|
|
||
|
//GenerateWriter --
|
||
|
func (e *Envelope) GenerateWriter(w io.Writer) {
|
||
|
json.NewEncoder(w).Encode(e)
|
||
|
}
|