in hugegraph-client-go/api/v1/propertykey/propertykey.go [244:290]
func (r CreateRequest) Do(ctx context.Context, transport api.Transport) (*CreateResponse, error) {
if len(r.reqData.Name) <= 0 {
return nil, errors.New("create property must set name")
}
if len(r.reqData.DataType) <= 0 {
return nil, errors.New("create property must set dataType")
}
if len(r.reqData.Cardinality) <= 0 {
return nil, errors.New("create property must set cardinality")
}
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/propertykeys", 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
}