mirror of
https://github.com/absmach/supermq.git
synced 2026-06-23 06:50:18 +00:00
dcd5ff914d
* initial implementation Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * initial implementation Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * add remove report from nats handler Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * add license header Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix failing linter Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * remove unused code Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update docker compose Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * address comments Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix failing linter Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * move runinfo to pkg Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update report handler Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update reports handler Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update handler in reports Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update repo method from time to due Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix validation methods Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * address comments Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update reports port to 9017 Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update nginx to support reports Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * fix reports location in nginx Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> * update env variable Signed-off-by: nyagamunene <stevenyaga2014@gmail.com> --------- Signed-off-by: nyagamunene <stevenyaga2014@gmail.com>
81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
// Copyright (c) Abstract Machines
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package reports
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
|
|
svcerr "github.com/absmach/supermq/pkg/errors/service"
|
|
)
|
|
|
|
// Status represents Rule status.
|
|
type Status uint8
|
|
|
|
// Possible User status values.
|
|
const (
|
|
// EnabledStatus represents enabled Rule.
|
|
EnabledStatus Status = iota
|
|
// DisabledStatus represents disabled Rule.
|
|
DisabledStatus
|
|
// DeletedStatus represents a rule that will be deleted.
|
|
DeletedStatus
|
|
|
|
// AllStatus is used for querying purposes to list rules irrespective
|
|
// of their status - both enabled and disabled. It is never stored in the
|
|
// database as the actual User status and should always be the largest
|
|
// value in this enumeration.
|
|
AllStatus
|
|
)
|
|
|
|
// String representation of the possible status values.
|
|
const (
|
|
Disabled = "disabled"
|
|
Enabled = "enabled"
|
|
Deleted = "deleted"
|
|
All = "all"
|
|
Unknown = "unknown"
|
|
)
|
|
|
|
func (s Status) String() string {
|
|
switch s {
|
|
case DisabledStatus:
|
|
return Disabled
|
|
case EnabledStatus:
|
|
return Enabled
|
|
case DeletedStatus:
|
|
return Deleted
|
|
case AllStatus:
|
|
return All
|
|
default:
|
|
return Unknown
|
|
}
|
|
}
|
|
|
|
// ToStatus converts string value to a valid status.
|
|
func ToStatus(status string) (Status, error) {
|
|
switch status {
|
|
case "", Enabled:
|
|
return EnabledStatus, nil
|
|
case Disabled:
|
|
return DisabledStatus, nil
|
|
case Deleted:
|
|
return DeletedStatus, nil
|
|
case All:
|
|
return AllStatus, nil
|
|
}
|
|
return Status(0), svcerr.ErrInvalidStatus
|
|
}
|
|
|
|
func (s Status) MarshalJSON() ([]byte, error) {
|
|
return json.Marshal(s.String())
|
|
}
|
|
|
|
func (s *Status) UnmarshalJSON(data []byte) error {
|
|
str := strings.Trim(string(data), "\"")
|
|
val, err := ToStatus(str)
|
|
*s = val
|
|
return err
|
|
}
|