package base import ( "github.com/pkg/errors" pb "sghgogs.com/micro/auth-service/proto" ) type ListMapItem struct { Key string `json:"key"` Value string `json:"value"` } type Status string const ( ToggleEnabled Status = "ENABLED" ToggleDisabled Status = "DISABLED" ToggleDeleted Status = "DELETED" ) func MapStatusToEnum(status Status) (pb.StatusEnum, error) { switch string(status) { case "ENABLED": return pb.StatusEnum_ENABLED, nil case "DISABLED": return pb.StatusEnum_DISABLED, nil case "DELETED": return pb.StatusEnum_DELETED, nil default: return pb.StatusEnum_UNKNOWN, errors.New("invalid status value") } } func MapEnumToStatus(status pb.StatusEnum) (Status, error) { switch status { case pb.StatusEnum_ENABLED: return ToggleEnabled, nil case pb.StatusEnum_DISABLED: return ToggleDisabled, nil case pb.StatusEnum_DELETED: return ToggleDeleted, nil default: return "UNKNOWN", errors.New("invalid status value") } } func IsValidStatus(value string) bool { return Status(value) == ToggleDisabled || Status(value) == ToggleEnabled || Status(value) == ToggleDeleted } func RolesToResponse(roles []*pb.AdminBase) []ListMapItem { items := make([]ListMapItem, 0) for _, role := range roles { items = append(items, ListMapItem{ Key: role.Key, Value: role.Value, }) } return items } func UsersToResponse(users []*pb.AdminBase) []ListMapItem { items := make([]ListMapItem, 0) for _, role := range users { items = append(items, ListMapItem{ Key: role.Key, Value: role.Value, }) } return items } func PermissionsToResponse(users []*pb.AdminBase) []ListMapItem { items := make([]ListMapItem, 0) for _, role := range users { items = append(items, ListMapItem{ Key: role.Key, Value: role.Value, }) } return items } func TeamsToResponse(teams []*pb.AdminBase) []ListMapItem { items := make([]ListMapItem, 0) for _, role := range teams { items = append(items, ListMapItem{ Key: role.Key, Value: role.Value, }) } return items }