Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

76 lines
1.8KB

  1. package main
  2. import "log"
  3. //abstract CRUD operation for espoCRM Entity
  4. var crmSite = "https://c.hitxy.org.au/"
  5. func createEntity(entityType string, jsonB []byte) (entity interface{}, err error) {
  6. url := crmSite + "api/v1/" + entityType
  7. json, err := postRAW(jsonB, url, crmBuildCommonAPIHeader())
  8. if err != nil {
  9. log.Println(err)
  10. return
  11. }
  12. return json, err
  13. }
  14. func updateEntity(entityType string, id string, jsonB []byte) (entity interface{}, err error) {
  15. url := crmSite + "api/v1/" + entityType + "/" + id
  16. json, err := patchRAW(jsonB, url, crmBuildCommonAPIHeader())
  17. if err != nil {
  18. log.Println(err)
  19. return
  20. }
  21. return json, err
  22. }
  23. func replaceEntity(entityType string, id string, jsonB []byte) (entity interface{}, err error) {
  24. url := crmSite + "api/v1/" + entityType + "/" + id
  25. json, err := putRAW(jsonB, url, crmBuildCommonAPIHeader())
  26. if err != nil {
  27. log.Println(err)
  28. return
  29. }
  30. return json, err
  31. }
  32. func deleteEntity(entityType string, id string) (json string, err error) {
  33. url := crmSite + "api/v1/" + entityType + "/" + id
  34. json, err = deleteRAW(url, crmBuildCommonAPIHeader())
  35. if err != nil {
  36. log.Println(err)
  37. return
  38. }
  39. return
  40. }
  41. //give an id, return json
  42. func crmGetEntity(entityType string, id string) (json string, err error) {
  43. url := crmSite + "api/v1/" + entityType + "/" + id
  44. json, err = getRAW(url, crmBuildCommonAPIHeader())
  45. if err != nil {
  46. log.Println(err)
  47. return
  48. }
  49. return json, err
  50. }
  51. func crmBuildCommonAPIHeader() (headers map[string]string) {
  52. headers = map[string]string{}
  53. headers["Authorization"] = crmAuthHeader()
  54. headers["Accept"] = "application/json"
  55. headers["Content-Type"] = "application/json"
  56. return headers
  57. }
  58. //given a json string, convert it to Typed structure
  59. func json2Entity(entityType string, json string) (r interface{}) {
  60. switch entityType {
  61. case "Lead":
  62. r = crmdLeadInfo
  63. case "Account":
  64. }
  65. return
  66. }