Jump to content

Samar

Retired Forum Member
  • Posts

    1
  • Joined

  • Last visited

Everything posted by Samar

  1. Hi there, I was trying to create an api that updates the customfields of WHMCS. Our api backend is in golang using the echo framework. This is how I am trying to make the request func updateShowOnboard(c echo.Context) error { var customFieldsArray []*CustomFields customField := &CustomFields{} customField.id = 3 customField.value = "panelPassword" customFieldsArray = append(customFieldsArray, customField) customField1 := &CustomFields{} customField1.id = 7 customField1.value = "howdidyoufindus" customFieldsArray = append(customFieldsArray, customField1) customField2 := &CustomFields{} customField2.id = 8 customField2.value = "gstinhere" customFieldsArray = append(customFieldsArray, customField2) customField3 := &CustomFields{} customField3.id = 11 customField3.value = "No" customFieldsArray = append(customFieldsArray, customField3) finalcustomfieldArray, err8 := json.Marshal(customFieldsArray) if err8 != nil { return c.JSON(http.StatusBadRequest, errorMsg(err8)) } url := os.Getenv("WHMCS_ENDPOINT") method := "POST" payload := &bytes.Buffer{} writer := multipart.NewWriter(payload) _ = writer.WriteField("username", os.Getenv("WHMCS_IDENTIFIER")) _ = writer.WriteField("password", os.Getenv("WHMCS_SECRET")) _ = writer.WriteField("clientid", "490") _ = writer.WriteField("customfields", string(finalcustomfieldArray)) _ = writer.WriteField("responsetype", "json") _ = writer.WriteField("action", "UpdateClient") err1 := writer.Close() if err1 != nil { return c.JSON(http.StatusBadRequest, errorMsg(err1)) } client := &http.Client{} req, err2 := http.NewRequest(method, url, payload) if err2 != nil { return c.JSON(http.StatusBadRequest, errorMsg(err2)) } req.Header.Set("Content-Type", writer.FormDataContentType()) res, err3 := client.Do(req) if err3 != nil { return c.JSON(http.StatusBadRequest, errorMsg(err3)) } defer res.Body.Close() body, err4 := io.ReadAll(res.Body) if err4 != nil { return c.JSON(http.StatusBadRequest, errorMsg(err4)) } m := map[string]string{} json.Unmarshal(body, &m) if m["result"] != "success" { return c.JSON(http.StatusBadRequest, errorJSON{"Some error occured"}) } return c.JSON(http.StatusOK, m) } as you can see that I am creating an array and appending customfields object with id and value to it, later I am converting it into json and converting the json to a string value and passing it to the customfields field in the payload. I get success message from the api but the values don’t change. If you could point me to right direction that would be immensely helpful thanks.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated