Safe Haskell | None |
---|
Model definition parser, served model routines.
- type ModelName = ByteString
- type FieldName = ByteString
- type FieldValue = ByteString
- type FieldIndex = (FieldName, Bool)
- type Commit = Map FieldName FieldValue
- data Permissions
- = Roles [ByteString]
- | Everyone
- | Nobody
- data FieldTargets
- = Fields [FieldName]
- | AllFields
- | NoneFields
- type FieldMeta = Map FieldName Value
- data Field = Field {}
- canWrite :: Lens Field Permissions
- canRead :: Lens Field Permissions
- data Application = Application {}
- apWrite :: Lens Application (Maybe Permissions)
- apRead :: Lens Application (Maybe Permissions)
- data Model = Model {}
- canDeleteM :: Lens Model Permissions
- canUpdateM :: Lens Model Permissions
- canReadM :: Lens Model Permissions
- canCreateM :: Lens Model Permissions
- defaultFieldType :: ByteString
- type Groups = Map ByteString [Field]
- groupFieldName :: FieldName -> FieldName -> FieldName
- spliceGroups :: Groups -> Model -> Model
- doApplications :: Model -> Model
- cacheIndices :: Model -> Model
Documentation
type ModelName = ByteStringSource
type FieldName = ByteStringSource
type FieldValue = ByteStringSource
type FieldIndex = (FieldName, Bool)Source
Name of indexed field and collation flag.
type Commit = Map FieldName FieldValueSource
List of field key-value pairs.
Suitable for using with hmset
.
data Permissions Source
Field permissions property.
data FieldTargets Source
type FieldMeta = Map FieldName ValueSource
Map of field annotations which are transparently handled by server without any logic.
Form field object.
Field | |
|
data Application Source
A list of properties to be applied to named fields.
Model describes fields and permissions.
Models are built from JSON definitions (using FromJSON instance for
Model) with further group splicing (spliceGroups
), applications
(doApplications
) and index caching (cacheIndices
).
Model | |
|
defaultFieldType :: ByteStringSource
Used when field type is not specified in model description.
type Groups = Map ByteString [Field]Source
A named group of fields.
Build new name f_gK
for every field of group g
to which field
f
is spliced into.
spliceGroups :: Groups -> Model -> ModelSource
Replace all model fields having groupName
annotation with
actual group fields.
doApplications :: Model -> ModelSource
Perform all applications in model.
cacheIndices :: Model -> ModelSource
Set indices field of model to list of FieldIndex
es