您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

104 行
3.4KB

  1. package buildsvc
  2. import "strings"
  3. type GlobalDataInput struct {
  4. CompanyName string
  5. BusinessType string
  6. Username string
  7. Email string
  8. Phone string
  9. OrgNumber string
  10. StartDate string
  11. Mission string
  12. DescriptionShort string
  13. DescriptionLong string
  14. SiteLanguage string
  15. AddressLine1 string
  16. AddressLine2 string
  17. AddressCity string
  18. AddressRegion string
  19. AddressZIP string
  20. AddressCountry string
  21. }
  22. func BuildGlobalData(input GlobalDataInput) map[string]any {
  23. globalData := map[string]any{}
  24. setIfNotEmpty(globalData, "companyName", input.CompanyName)
  25. setIfNotEmpty(globalData, "businessType", input.BusinessType)
  26. setIfNotEmpty(globalData, "username", input.Username)
  27. setIfNotEmpty(globalData, "email", input.Email)
  28. setIfNotEmpty(globalData, "phone", input.Phone)
  29. setIfNotEmpty(globalData, "orgNumber", input.OrgNumber)
  30. setIfNotEmpty(globalData, "startDate", input.StartDate)
  31. setIfNotEmpty(globalData, "mission", input.Mission)
  32. setIfNotEmpty(globalData, "descriptionShort", input.DescriptionShort)
  33. setIfNotEmpty(globalData, "descriptionLong", input.DescriptionLong)
  34. setIfNotEmpty(globalData, "siteLanguage", input.SiteLanguage)
  35. address := map[string]any{}
  36. setIfNotEmpty(address, "line1", input.AddressLine1)
  37. setIfNotEmpty(address, "line2", input.AddressLine2)
  38. setIfNotEmpty(address, "city", input.AddressCity)
  39. setIfNotEmpty(address, "region", input.AddressRegion)
  40. setIfNotEmpty(address, "zip", input.AddressZIP)
  41. setIfNotEmpty(address, "country", input.AddressCountry)
  42. if len(address) > 0 {
  43. globalData["address"] = address
  44. }
  45. return globalData
  46. }
  47. func FilterGlobalData(input map[string]any) map[string]any {
  48. if len(input) == 0 {
  49. return map[string]any{}
  50. }
  51. globalData := map[string]any{}
  52. setStringIfPresent(globalData, "companyName", input["companyName"])
  53. setStringIfPresent(globalData, "businessType", input["businessType"])
  54. setStringIfPresent(globalData, "username", input["username"])
  55. setStringIfPresent(globalData, "email", input["email"])
  56. setStringIfPresent(globalData, "phone", input["phone"])
  57. setStringIfPresent(globalData, "orgNumber", input["orgNumber"])
  58. setStringIfPresent(globalData, "startDate", input["startDate"])
  59. setStringIfPresent(globalData, "mission", input["mission"])
  60. setStringIfPresent(globalData, "descriptionShort", input["descriptionShort"])
  61. setStringIfPresent(globalData, "descriptionLong", input["descriptionLong"])
  62. setStringIfPresent(globalData, "siteLanguage", input["siteLanguage"])
  63. address := map[string]any{}
  64. if rawAddress, ok := input["address"]; ok {
  65. if sourceAddress, ok := rawAddress.(map[string]any); ok {
  66. setStringIfPresent(address, "line1", sourceAddress["line1"])
  67. setStringIfPresent(address, "line2", sourceAddress["line2"])
  68. setStringIfPresent(address, "city", sourceAddress["city"])
  69. setStringIfPresent(address, "region", sourceAddress["region"])
  70. setStringIfPresent(address, "zip", sourceAddress["zip"])
  71. setStringIfPresent(address, "country", sourceAddress["country"])
  72. }
  73. }
  74. if len(address) > 0 {
  75. globalData["address"] = address
  76. }
  77. return globalData
  78. }
  79. func setIfNotEmpty(m map[string]any, key, value string) {
  80. if strings.TrimSpace(value) == "" {
  81. return
  82. }
  83. m[key] = strings.TrimSpace(value)
  84. }
  85. func setStringIfPresent(target map[string]any, key string, raw any) {
  86. value, ok := raw.(string)
  87. if !ok {
  88. return
  89. }
  90. setIfNotEmpty(target, key, value)
  91. }