backend-0.1.0.0
LicenseAGPL-3
Maintainerstu235271@mail.uni-kiel.de stu236925@mail.uni-kiel.de
Safe HaskellNone
LanguageHaskell2010

Docs.Revision

Description

This module contains data types and related utility functions for a generic revision, meaning text or tree.

Synopsis

Documentation

newtype RevisionID Source #

The id of a revision

Constructors

RevisionID 

Fields

Instances

Instances details
FromJSON RevisionID Source # 
Instance details

Defined in Docs.Revision

Methods

parseJSON :: Value -> Parser RevisionID

parseJSONList :: Value -> Parser [RevisionID]

omittedField :: Maybe RevisionID

ToJSON RevisionID Source # 
Instance details

Defined in Docs.Revision

Methods

toJSON :: RevisionID -> Value

toEncoding :: RevisionID -> Encoding

toJSONList :: [RevisionID] -> Value

toEncodingList :: [RevisionID] -> Encoding

omitField :: RevisionID -> Bool

Show RevisionID Source # 
Instance details

Defined in Docs.Revision

Eq RevisionID Source # 
Instance details

Defined in Docs.Revision

Ord RevisionID Source # 
Instance details

Defined in Docs.Revision

FromHttpApiData RevisionID Source # 
Instance details

Defined in Docs.Revision

ToParamSchema RevisionID Source # 
Instance details

Defined in Docs.Revision

Methods

toParamSchema :: Proxy RevisionID -> Schema

ToSchema RevisionID Source # 
Instance details

Defined in Docs.Revision

Methods

declareNamedSchema :: Proxy RevisionID -> Declare (Definitions Schema) NamedSchema

data TextOrTree Source #

A TextRevisionRef or a TreeRevisionRef.

Instances

Instances details
FromJSON TextOrTree Source # 
Instance details

Defined in Docs.Revision

Methods

parseJSON :: Value -> Parser TextOrTree

parseJSONList :: Value -> Parser [TextOrTree]

omittedField :: Maybe TextOrTree

ToJSON TextOrTree Source # 
Instance details

Defined in Docs.Revision

Methods

toJSON :: TextOrTree -> Value

toEncoding :: TextOrTree -> Encoding

toJSONList :: [TextOrTree] -> Value

toEncodingList :: [TextOrTree] -> Encoding

omitField :: TextOrTree -> Bool

Generic TextOrTree Source # 
Instance details

Defined in Docs.Revision

Associated Types

type Rep TextOrTree 
Instance details

Defined in Docs.Revision

ToSchema TextOrTree Source # 
Instance details

Defined in Docs.Revision

Methods

declareNamedSchema :: Proxy TextOrTree -> Declare (Definitions Schema) NamedSchema

type Rep TextOrTree Source # 
Instance details

Defined in Docs.Revision

data RevisionKey Source #

An arbitrary revision, but the type (tree or text) is known.

Constructors

RevisionKey 

Instances

Instances details
FromJSON RevisionKey Source # 
Instance details

Defined in Docs.Revision

Methods

parseJSON :: Value -> Parser RevisionKey

parseJSONList :: Value -> Parser [RevisionKey]

omittedField :: Maybe RevisionKey

ToJSON RevisionKey Source # 
Instance details

Defined in Docs.Revision

Methods

toJSON :: RevisionKey -> Value

toEncoding :: RevisionKey -> Encoding

toJSONList :: [RevisionKey] -> Value

toEncodingList :: [RevisionKey] -> Encoding

omitField :: RevisionKey -> Bool

Generic RevisionKey Source # 
Instance details

Defined in Docs.Revision

Associated Types

type Rep RevisionKey 
Instance details

Defined in Docs.Revision

type Rep RevisionKey = D1 ('MetaData "RevisionKey" "Docs.Revision" "backend-0.1.0.0-2H73EnUlGVcEtlIi2XNQz3" 'False) (C1 ('MetaCons "RevisionKey" 'PrefixI 'True) (S1 ('MetaSel ('Just "timestamp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime) :*: S1 ('MetaSel ('Just "revision") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TextOrTree)))
ToSchema RevisionKey Source # 
Instance details

Defined in Docs.Revision

Methods

declareNamedSchema :: Proxy RevisionKey -> Declare (Definitions Schema) NamedSchema

type Rep RevisionKey Source # 
Instance details

Defined in Docs.Revision

type Rep RevisionKey = D1 ('MetaData "RevisionKey" "Docs.Revision" "backend-0.1.0.0-2H73EnUlGVcEtlIi2XNQz3" 'False) (C1 ('MetaCons "RevisionKey" 'PrefixI 'True) (S1 ('MetaSel ('Just "timestamp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime) :*: S1 ('MetaSel ('Just "revision") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TextOrTree)))

data RevisionRef Source #

Reference of a revision

Instances

Instances details
FromJSON RevisionRef Source # 
Instance details

Defined in Docs.Revision

Methods

parseJSON :: Value -> Parser RevisionRef

parseJSONList :: Value -> Parser [RevisionRef]

omittedField :: Maybe RevisionRef

ToJSON RevisionRef Source # 
Instance details

Defined in Docs.Revision

Methods

toJSON :: RevisionRef -> Value

toEncoding :: RevisionRef -> Encoding

toJSONList :: [RevisionRef] -> Value

toEncodingList :: [RevisionRef] -> Encoding

omitField :: RevisionRef -> Bool

Generic RevisionRef Source # 
Instance details

Defined in Docs.Revision

Associated Types

type Rep RevisionRef 
Instance details

Defined in Docs.Revision

type Rep RevisionRef = D1 ('MetaData "RevisionRef" "Docs.Revision" "backend-0.1.0.0-2H73EnUlGVcEtlIi2XNQz3" 'False) (C1 ('MetaCons "RevisionRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DocumentID) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RevisionSelector)))
ToSchema RevisionRef Source # 
Instance details

Defined in Docs.Revision

Methods

declareNamedSchema :: Proxy RevisionRef -> Declare (Definitions Schema) NamedSchema

type Rep RevisionRef Source # 
Instance details

Defined in Docs.Revision

type Rep RevisionRef = D1 ('MetaData "RevisionRef" "Docs.Revision" "backend-0.1.0.0-2H73EnUlGVcEtlIi2XNQz3" 'False) (C1 ('MetaCons "RevisionRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DocumentID) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RevisionSelector)))

data RevisionSelector Source #

Selector for a revision

Constructors

Latest

selects the latest revision

LatestAsOf UTCTime

selects the latest revision at a specific point of time

Specific RevisionID

selects a specific revision by its id

Instances

Instances details
FromJSON RevisionSelector Source # 
Instance details

Defined in Docs.Revision

ToJSON RevisionSelector Source # 
Instance details

Defined in Docs.Revision

Show RevisionSelector Source # 
Instance details

Defined in Docs.Revision

FromHttpApiData RevisionSelector Source # 
Instance details

Defined in Docs.Revision

ToParamSchema RevisionSelector Source # 
Instance details

Defined in Docs.Revision

ToSchema RevisionSelector Source # 
Instance details

Defined in Docs.Revision

Methods

declareNamedSchema :: Proxy RevisionSelector -> Declare (Definitions Schema) NamedSchema

refFromTextRevision :: TextRevisionRef -> RevisionRef Source #

Get an arbitrary ref from a TextRevisionRef.

specificRevision :: RevisionSelector -> Maybe RevisionID Source #

The revision id if it is a Specific selector; Nothing otherwise.

latestRevisionAsOf :: RevisionSelector -> Maybe UTCTime Source #

The timestampt, if ti is a LatestAsOf selector; Nothing otherwise.

textRevisionRefFor :: TextElementRef -> RevisionKey -> TextRevisionRef Source #

Get the ref for a given text revision with respect to a RevisionKey. If the revision key belongs to the given TextElementRef, it is returned as a TextRevisionRef. Otherwise, a selector for the latest revision for the given text element for the timestamp of the given RevisionKey is returned.

treeRevisionRefFor :: DocumentID -> RevisionKey -> TreeRevisionRef Source #

Get the ref for a given tree revision with respect to a RevisionKey. If the revision key belongs to the given DocumentID, it is returned as a TreeRevisionRef. Otherwise, a selector for the latest revision for the given tree element for the timestamp of the given RevisionKey is returned.

prettyPrintRevisionRef :: RevisionRef -> String Source #

RevisionRef. Schöööööööön.