25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

104 satır
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. }