Select Git revision
items.pb.go
environment.go 1.44 KiB
package id
import (
"fmt"
)
const (
Environment = "environment"
EnvironmentsPrefix = "envs"
)
var _ Descriptor = &EnvironmentId{}
type EnvironmentId struct {
SpaceId
EnvironmentID string `json:"env_id,omitempty" bson:"env_id,omitempty"`
}
func (id *EnvironmentId) New() Descriptor {
return &EnvironmentId{}
}
func (id *EnvironmentId) Type() string { return "environment" }
func (id *EnvironmentId) String() string {
return Join(id.SpaceId.String(), EnvironmentsPrefix, id.EnvironmentID)
}
func (id *EnvironmentId) Map() map[string]any {
m := id.SpaceId.Map()
m["env_id"] = id.EnvironmentID
m["type"] = Environment
return m
}
func (id *EnvironmentId) FromParts(parts []string) error {
if len(parts) != 4 || parts[2] != EnvironmentsPrefix {
return ErrInvalidID
}
if err := id.SpaceId.FromParts(parts[:2]); err != nil {
return err
}
id.EnvironmentID = parts[3]
return nil
}
func (id *EnvironmentId) FromMap(m map[string]any) error {
id.EnvironmentID, _ = m["env_id"].(string)
if id.EnvironmentID == "" {
return fmt.Errorf("%w: EnviromentID required", ErrInvalidID)
}
return id.SpaceId.FromMap(m)
}
func (id *EnvironmentId) Validate() error {
if id.EnvironmentID == "" {
return fmt.Errorf("%w: EnvironmetnID required", ErrInvalidID)
}
return id.SpaceId.Validate()
}
func NewEnvironmentId(spaceID, id string) *ObjectId {
return &ObjectId{Descriptor: &EnvironmentId{SpaceId: SpaceId{SpaceID: spaceID}, EnvironmentID: id}}
}