func()

in hugegraph-client-go/api/v1/vertexlabel/vertexlabel.go [246:292]


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.IDStrategy) <= 0 {
       return nil, errors.New("create property must set id_strategy")
   }
   if len(r.reqData.Properties) <= 0 {
       return nil, errors.New("create property 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/vertexlabels", 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
}