Select Git revision
organization.go
organization.go 1.07 KiB
package id
const (
Organization = "organization"
OrganizationsPrefix = "orgs"
)
type OrganizationID struct {
OrganizationID string `json:"organization_id,omitempty" bson:"organization_id,omitempty"`
}
func (t *OrganizationID) Type() string { return Organization }
func (t *OrganizationID) String() string {
return Join(OrganizationsPrefix, t.OrganizationID)
}
func (t *OrganizationID) ToMap() map[string]any {
return map[string]any{
"organization_id": t.OrganizationID,
"type": Organization,
}
}
func (t *OrganizationID) FromMap(m map[string]any) error {
t.OrganizationID = m["organization_id"].(string)
return nil
}
func (t *OrganizationID) Validate() error {
if t.OrganizationID == "" {
return ErrInvalidID
}
return nil
}
func parseOrganizationID(parts []string) (*OrganizationID, error) {
var id OrganizationID
if len(parts) != 2 || parts[0] != OrganizationsPrefix {
return nil, ErrInvalidID
}
id.OrganizationID = parts[1]
return &id, nil
}
func NewOrganizationID(id string) *ID {
return &ID{Descriptor: &OrganizationID{OrganizationID: id}}
}