github.com/christoph-karpowicz/db_mediator@v0.0.0-20210207102849-61a28a1071d8/internal/server/application/response.go (about) 1 package application 2 3 import "github.com/christoph-karpowicz/db_mediator/internal/server/synch" 4 5 type response struct { 6 Err bool `json:"err"` 7 Message string `json:"message"` 8 Payload string `json:"payload"` 9 } 10 11 func createResponseChannel() chan *response { 12 return make(chan *response) 13 } 14 15 func createResponse(synchResult interface{}) *response { 16 var res *response 17 18 switch synchResult.(type) { 19 case error: 20 panic(synchResult.(error)) 21 res = &response{ 22 Err: true, 23 Message: synchResult.(error).Error(), 24 } 25 case string: 26 res = &response{ 27 Err: false, 28 Message: synchResult.(string), 29 } 30 case *synch.Result: 31 res = &response{ 32 Err: false, 33 Message: synchResult.(*synch.Result).Message, 34 Payload: synchResult.(*synch.Result).OperationsToJSON(), 35 } 36 } 37 38 return res 39 }