summaryrefslogtreecommitdiff
path: root/overlays/spm/lib
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2025-11-21 14:51:23 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2025-11-21 14:51:23 +0100
commit4c46e82769847177f6582447f027a56f9b555fd0 (patch)
treec797e1ecf691e8e05399d83ad3042c52ac08111e /overlays/spm/lib
parent4341d2d9b0e5d57adf676bfad3d39cefdf7eca6f (diff)
downloadnixos-4c46e82769847177f6582447f027a56f9b555fd0.tar
nixos-4c46e82769847177f6582447f027a56f9b555fd0.tar.gz
nixos-4c46e82769847177f6582447f027a56f9b555fd0.tar.bz2
nixos-4c46e82769847177f6582447f027a56f9b555fd0.tar.xz
nixos-4c46e82769847177f6582447f027a56f9b555fd0.zip
...
Diffstat (limited to 'overlays/spm/lib')
-rw-r--r--overlays/spm/lib/Spm/Api.hs19
1 files changed, 9 insertions, 10 deletions
diff --git a/overlays/spm/lib/Spm/Api.hs b/overlays/spm/lib/Spm/Api.hs
index 8285cc55..3c22bfb6 100644
--- a/overlays/spm/lib/Spm/Api.hs
+++ b/overlays/spm/lib/Spm/Api.hs
@@ -21,7 +21,6 @@ import Data.Text (Text)
21import qualified Data.Text as Text 21import qualified Data.Text as Text
22 22
23import GHC.Generics (Generic) 23import GHC.Generics (Generic)
24import Type.Reflection (Typeable)
25 24
26import Control.Lens 25import Control.Lens
27 26
@@ -62,7 +61,7 @@ instance FromHttpApiData SpmStyle where
62 61
63 62
64newtype SpmMailbox = SpmMailbox { unSpmMailbox :: CI Text } 63newtype SpmMailbox = SpmMailbox { unSpmMailbox :: CI Text }
65 deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 64 deriving stock (Eq, Ord, Read, Show, Generic)
66 deriving newtype (MimeRender PlainText) 65 deriving newtype (MimeRender PlainText)
67makeWrapped ''SpmMailbox 66makeWrapped ''SpmMailbox
68 67
@@ -70,7 +69,7 @@ instance MimeRender JSON SpmMailbox where
70 mimeRender p mbox = mimeRender p $ JSON.object [ "mailbox" JSON..= unSpmMailbox mbox ] 69 mimeRender p mbox = mimeRender p $ JSON.object [ "mailbox" JSON..= unSpmMailbox mbox ]
71 70
72newtype SpmDomain = SpmDomain { unSpmDomain :: CI Text } 71newtype SpmDomain = SpmDomain { unSpmDomain :: CI Text }
73 deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 72 deriving stock (Eq, Ord, Read, Show, Generic)
74 deriving newtype (MimeRender PlainText) 73 deriving newtype (MimeRender PlainText)
75makeWrapped ''SpmDomain 74makeWrapped ''SpmDomain
76 75
@@ -79,17 +78,17 @@ instance MimeRender JSON SpmDomain where
79 78
80newtype SpmLocal = SpmLocal 79newtype SpmLocal = SpmLocal
81 { unSpmLocal :: CI Text 80 { unSpmLocal :: CI Text
82 } deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 81 } deriving stock (Eq, Ord, Read, Show, Generic)
83 deriving newtype (ToJSON, FromJSON) 82 deriving newtype (ToJSON, FromJSON)
84makeWrapped ''SpmLocal 83makeWrapped ''SpmLocal
85newtype SpmExtension = SpmExtension 84newtype SpmExtension = SpmExtension
86 { unSpmExtension :: CI Text 85 { unSpmExtension :: CI Text
87 } deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 86 } deriving stock (Eq, Ord, Read, Show, Generic)
88 deriving newtype (ToJSON, FromJSON) 87 deriving newtype (ToJSON, FromJSON)
89makeWrapped ''SpmExtension 88makeWrapped ''SpmExtension
90 89
91data SpmMappingState = Valid | Reject 90data SpmMappingState = Valid | Reject
92 deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable) 91 deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic)
93instance MimeRender PlainText SpmMappingState where 92instance MimeRender PlainText SpmMappingState where
94 mimeRender p = mimeRender @_ @Text p . \case 93 mimeRender p = mimeRender @_ @Text p . \case
95 Valid -> "valid" 94 Valid -> "valid"
@@ -109,15 +108,15 @@ _SpmMappingStateReject = iso toReject fromReject
109data SpmMappingListingItem = SpmMappingListingItem 108data SpmMappingListingItem = SpmMappingListingItem
110 { smlMapping :: SpmMapping 109 { smlMapping :: SpmMapping
111 , smlState :: SpmMappingState 110 , smlState :: SpmMappingState
112 } deriving (Eq, Ord, Read, Show, Generic, Typeable) 111 } deriving (Eq, Ord, Read, Show, Generic)
113 112
114newtype SpmMappingListing = SpmMappingListing { unSpmMappingListing :: [SpmMappingListingItem] } 113newtype SpmMappingListing = SpmMappingListing { unSpmMappingListing :: [SpmMappingListingItem] }
115 deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 114 deriving stock (Eq, Ord, Read, Show, Generic)
116 115
117data SpmMapping = SpmMapping 116data SpmMapping = SpmMapping
118 { spmMappingLocal :: Maybe SpmLocal 117 { spmMappingLocal :: Maybe SpmLocal
119 , spmMappingExtension :: Maybe SpmExtension 118 , spmMappingExtension :: Maybe SpmExtension
120 } deriving stock (Eq, Ord, Read, Show, Generic, Typeable) 119 } deriving stock (Eq, Ord, Read, Show, Generic)
121 120
122_SpmMappingText :: Iso' SpmMapping Text 121_SpmMappingText :: Iso' SpmMapping Text
123_SpmMappingText = iso toText fromText 122_SpmMappingText = iso toText fromText
@@ -170,7 +169,7 @@ instance ToJSON SpmMappingListing where
170data SpmJWTClaims = SpmJWTClaims 169data SpmJWTClaims = SpmJWTClaims
171 { spmjwtStdClaims :: ClaimsSet 170 { spmjwtStdClaims :: ClaimsSet
172 , spmjwtLocal :: SpmLocal 171 , spmjwtLocal :: SpmLocal
173 } deriving stock (Eq, Show, Generic, Typeable) 172 } deriving stock (Eq, Show, Generic)
174 173
175makeLensesFor [("spmjwtStdClaims", "_stdClaims"), ("spmjwtLocal", "_spmjwtLocal")] ''SpmJWTClaims 174makeLensesFor [("spmjwtStdClaims", "_stdClaims"), ("spmjwtLocal", "_spmjwtLocal")] ''SpmJWTClaims
176 175