in hugegraph-client-go/api/v1/edgelabel/edgelabel.go [175:224]
func (r CreateRequest) Do(ctx context.Context, transport api.Transport) (*CreateResponse, error) {
if len(r.reqData.Name) <= 0 {
return nil, errors.New("create edgeLabel must set name")
}
if len(r.reqData.SourceLabel) <= 0 {
return nil, errors.New("create edgeLabel must set source_label")
}
if len(r.reqData.TargetLabel) <= 0 {
return nil, errors.New("create edgeLabel must set target_label")
}
if len(r.reqData.Properties) <= 0 {
return nil, errors.New("create edgeLabel must set properties")
}
byteBody, err := json.Marshal(&r.reqData)
if err != nil {
return nil, err
}
reader := strings.NewReader(string(byteBody))
req, err := api.NewRequest("POST", fmt.Sprintf("/graphs/%s/schema/edgelabels", transport.GetConfig().Graph), nil, reader)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := transport.Perform(req)
if err != nil {
return nil, err
}
resp := &CreateResponse{}
respData := CreateResponseData{}
bytes, err := ioutil.ReadAll(res.Body)
if err != nil {
return nil, err
}
err = json.Unmarshal(bytes, &respData)
if err != nil {
return nil, err
}
resp.StatusCode = res.StatusCode
resp.Header = res.Header
resp.Body = res.Body
resp.Data = respData
return resp, nil
}