Select Git revision
organization.go 1.29 KiB
package id
import (
"fmt"
)
const (
Organization = "organization"
OrganizationsPrefix = "orgs"
)
var _ Descriptor = &OrganizationId{}
type OrganizationId struct {
OrganizationID string `json:"organization_id,omitempty" bson:"organization_id,omitempty"`
}
func (id *OrganizationId) New() Descriptor {
return &OrganizationId{}
}
func (id *OrganizationId) Type() string { return Organization }
func (id *OrganizationId) String() string {
return Join(OrganizationsPrefix, id.OrganizationID)
}
func (id *OrganizationId) FromParts(parts []string) error {
if len(parts) != 2 || parts[0] != OrganizationsPrefix {
return ErrInvalidID
}
id.OrganizationID = parts[1]
return nil
}
func (id *OrganizationId) Map() map[string]any {
return map[string]any{
"org_id": id.OrganizationID,
"type": id.Type(),
}
}
func (id *OrganizationId) FromMap(m map[string]any) error {
id.OrganizationID, _ = m["org_id"].(string)
if id.OrganizationID == "" {
return fmt.Errorf("%w: OrganizationId required", ErrInvalidID)
}
return nil
}
func (id *OrganizationId) Validate() error {
if id.OrganizationID == "" {
return fmt.Errorf("%w: OrganizationId required", ErrInvalidID)
}
return nil
}
func NewOrganizationId(id string) *ObjectId {
return &ObjectId{Descriptor: &OrganizationId{OrganizationID: id}}
}