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  }