base.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package base
  2. import (
  3. "github.com/pkg/errors"
  4. pb "sghgogs.com/sghblog/authorization-service/proto"
  5. )
  6. type ListMapItem struct {
  7. Key string `json:"key"`
  8. Value string `json:"value"`
  9. }
  10. type Status string
  11. const (
  12. ToggleEnabled Status = "ENABLED"
  13. ToggleDisabled Status = "DISABLED"
  14. ToggleDeleted Status = "DELETED"
  15. )
  16. func MapStatusToEnum(status Status) (pb.StatusEnum, error) {
  17. switch string(status) {
  18. case "ENABLED":
  19. return pb.StatusEnum_ENABLED, nil
  20. case "DISABLED":
  21. return pb.StatusEnum_DISABLED, nil
  22. case "DELETED":
  23. return pb.StatusEnum_DELETED, nil
  24. default:
  25. return pb.StatusEnum_UNKNOWN, errors.New("invalid status value")
  26. }
  27. }
  28. func MapEnumToStatus(status pb.StatusEnum) (Status, error) {
  29. switch status {
  30. case pb.StatusEnum_ENABLED:
  31. return ToggleEnabled, nil
  32. case pb.StatusEnum_DISABLED:
  33. return ToggleDisabled, nil
  34. case pb.StatusEnum_DELETED:
  35. return ToggleDeleted, nil
  36. default:
  37. return "UNKNOWN", errors.New("invalid status value")
  38. }
  39. }
  40. func IsValidStatus(value string) bool {
  41. return Status(value) == ToggleDisabled || Status(value) == ToggleEnabled || Status(value) == ToggleDeleted
  42. }
  43. func RolesToResponse(roles []*pb.AdminBase) []ListMapItem {
  44. items := make([]ListMapItem, 0)
  45. for _, role := range roles {
  46. items = append(items, ListMapItem{
  47. Key: role.Key,
  48. Value: role.Value,
  49. })
  50. }
  51. return items
  52. }
  53. func UsersToResponse(users []*pb.AdminBase) []ListMapItem {
  54. items := make([]ListMapItem, 0)
  55. for _, role := range users {
  56. items = append(items, ListMapItem{
  57. Key: role.Key,
  58. Value: role.Value,
  59. })
  60. }
  61. return items
  62. }
  63. func PermissionsToResponse(users []*pb.AdminBase) []ListMapItem {
  64. items := make([]ListMapItem, 0)
  65. for _, role := range users {
  66. items = append(items, ListMapItem{
  67. Key: role.Key,
  68. Value: role.Value,
  69. })
  70. }
  71. return items
  72. }
  73. func TeamsToResponse(teams []*pb.AdminBase) []ListMapItem {
  74. items := make([]ListMapItem, 0)
  75. for _, role := range teams {
  76. items = append(items, ListMapItem{
  77. Key: role.Key,
  78. Value: role.Value,
  79. })
  80. }
  81. return items
  82. }