module LaunchDarkly.Server.User
( User
, makeUser
, userSetKey
, userSetSecondary
, userSetIP
, userSetCountry
, userSetEmail
, userSetFirstName
, userSetLastName
, userSetAvatar
, userSetName
, userSetAnonymous
, userSetCustom
, userSetPrivateAttributeNames
) where
import Data.Aeson (Value)
import Data.Generics.Product (setField)
import Data.HashMap.Strict (HashMap)
import Data.Set (Set)
import Data.Text (Text)
import LaunchDarkly.Server.User.Internal (User(..), mapUser, UserI(..))
makeUser :: Text -> User
makeUser :: Text -> User
makeUser Text
key = UserI -> User
User forall a b. (a -> b) -> a -> b
$ UserI
{ $sel:key:UserI :: Text
key = Text
key
, $sel:secondary:UserI :: Maybe Text
secondary = forall a. Monoid a => a
mempty
, $sel:ip:UserI :: Maybe Text
ip = forall a. Monoid a => a
mempty
, $sel:country:UserI :: Maybe Text
country = forall a. Monoid a => a
mempty
, $sel:email:UserI :: Maybe Text
email = forall a. Monoid a => a
mempty
, $sel:firstName:UserI :: Maybe Text
firstName = forall a. Monoid a => a
mempty
, $sel:lastName:UserI :: Maybe Text
lastName = forall a. Monoid a => a
mempty
, $sel:avatar:UserI :: Maybe Text
avatar = forall a. Monoid a => a
mempty
, $sel:name:UserI :: Maybe Text
name = forall a. Monoid a => a
mempty
, $sel:anonymous:UserI :: Bool
anonymous = Bool
False
, $sel:custom:UserI :: HashMap Text Value
custom = forall a. Monoid a => a
mempty
, $sel:privateAttributeNames:UserI :: Set Text
privateAttributeNames = forall a. Monoid a => a
mempty
}
userSetKey :: Text -> User -> User
userSetKey :: Text -> User -> User
userSetKey = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"key"
userSetSecondary :: Maybe Text -> User -> User
userSetSecondary :: Maybe Text -> User -> User
userSetSecondary = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"secondary"
userSetIP :: Maybe Text -> User -> User
userSetIP :: Maybe Text -> User -> User
userSetIP = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"ip"
userSetCountry :: Maybe Text -> User -> User
userSetCountry :: Maybe Text -> User -> User
userSetCountry = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"country"
userSetEmail :: Maybe Text -> User -> User
userSetEmail :: Maybe Text -> User -> User
userSetEmail = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"email"
userSetFirstName :: Maybe Text -> User -> User
userSetFirstName :: Maybe Text -> User -> User
userSetFirstName = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"firstName"
userSetLastName :: Maybe Text -> User -> User
userSetLastName :: Maybe Text -> User -> User
userSetLastName = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"lastName"
userSetAvatar :: Maybe Text -> User -> User
userSetAvatar :: Maybe Text -> User -> User
userSetAvatar = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"avatar"
userSetName :: Maybe Text -> User -> User
userSetName :: Maybe Text -> User -> User
userSetName = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"name"
userSetAnonymous :: Bool -> User -> User
userSetAnonymous :: Bool -> User -> User
userSetAnonymous = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"anonymous"
userSetCustom :: HashMap Text Value -> User -> User
userSetCustom :: HashMap Text Value -> User -> User
userSetCustom = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"custom"
userSetPrivateAttributeNames :: Set Text -> User -> User
userSetPrivateAttributeNames :: Set Text -> User -> User
userSetPrivateAttributeNames = (UserI -> UserI) -> User -> User
mapUser forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"privateAttributeNames"