Skip to content
Snippets Groups Projects
Select Git revision
  • 7f5b2fed027d4c4db9c615b25833c64037f67851
  • master default protected
  • feature/PRXS-3156-SaveRevision
  • PRXS-3421-RecursiveReferences
  • feature/PRXS-NotifyAttachment
  • feature/PRXS-3170-TemplateFuncsFix
  • feature/PRXS-3143-3235-ReferenceOptions
  • feature/PRXS-1869-SuperUser
  • feature/PRXS-3106-NoCache
  • release/0.33
  • feature/2781-SpacesLoggingMiddleware
  • feature/PRXS-3143-LimitReferenceFields
  • feature/PRXS-3234-FeaturePruneIdents
  • feature/3109-SerializeFeature
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • v0.34.0
  • v0.33.2
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
41 results

schema.go

Blame
  • schema.go 1.43 KiB
    package id
    
    import "fmt"
    
    const (
    	Schema       = "schema"
    	SchemaPrefix = "schema"
    )
    
    var _ Descriptor = &SchemaId{}
    
    type SchemaId struct {
    	EnvironmentId
    	CollectionID string `json:"col_id" bson:"col_id,omitempty"`
    }
    
    func (id *SchemaId) New() Descriptor {
    	return &SchemaId{}
    }
    
    func (id *SchemaId) Type() string { return Schema }
    
    func (id *SchemaId) String() string {
    	return Join(id.EnvironmentId.String(), SchemaPrefix, id.CollectionID)
    }
    
    func (id *SchemaId) Map() map[string]any {
    	m := id.EnvironmentId.Map()
    	m["col_id"] = id.CollectionID
    	m["type"] = Schema
    	return m
    }
    
    func (id *SchemaId) FromParts(parts []string) error {
    	if len(parts) != 6 || parts[4] != SchemaPrefix {
    		return ErrInvalidID
    	}
    	if err := id.EnvironmentId.FromParts(parts[:4]); err != nil {
    		return err
    	}
    	id.CollectionID = parts[5]
    	return nil
    }
    
    func (id *SchemaId) FromMap(m map[string]any) error {
    	id.CollectionID, _ = m["col_id"].(string)
    	if id.CollectionID == "" {
    		return fmt.Errorf("%w: SchemaID required", ErrInvalidID)
    	}
    	return id.EnvironmentId.FromMap(m)
    }
    
    func (id *SchemaId) Validate() error {
    	if id.CollectionID == "" {
    		return fmt.Errorf("%w: SchemaID required", ErrInvalidID)
    	}
    	return id.EnvironmentId.Validate()
    }
    
    func NewSchemaId(spaceID, envID, id string) *ObjectId {
    	return &ObjectId{Descriptor: &SchemaId{
    		EnvironmentId: EnvironmentId{
    			SpaceId: SpaceId{
    				SpaceID: spaceID,
    			},
    			EnvironmentID: envID,
    		},
    		CollectionID: id,
    	}}
    }