Select Git revision
core_test.go
space.go 808 B
package id
const (
Space = "space"
SpacesPrefix = "spaces"
)
type SpaceID struct {
SpaceID string `json:"space_id,omitempty" bson:"space_id,omitempty"`
}
func (t *SpaceID) Type() string { return Space }
func (t *SpaceID) String() string {
return Join(SpacesPrefix, t.SpaceID)
}
func (t *SpaceID) ToMap() map[string]any {
return map[string]any{
"space_id": t.SpaceID,
"type": Space,
}
}
func (t *SpaceID) FromMap(m map[string]any) error {
t.SpaceID = m["space_id"].(string)
return nil
}
func (t *SpaceID) Validate() error {
if t.SpaceID == "" {
return ErrInvalidID
}
return nil
}
func parseSpaceID(parts []string) (*SpaceID, error) {
var id SpaceID
if len(parts) != 2 || parts[0] != SpacesPrefix {
return nil, ErrInvalidID
}
id.SpaceID = parts[1]
return &id, nil
}