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 (UserI -> User) -> UserI -> User
forall a b. (a -> b) -> a -> b
$ UserI :: Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Bool
-> HashMap Text Value
-> Set Text
-> UserI
UserI
{ $sel:key:UserI :: Text
key = Text
key
, $sel:secondary:UserI :: Maybe Text
secondary = Maybe Text
forall a. Monoid a => a
mempty
, $sel:ip:UserI :: Maybe Text
ip = Maybe Text
forall a. Monoid a => a
mempty
, $sel:country:UserI :: Maybe Text
country = Maybe Text
forall a. Monoid a => a
mempty
, $sel:email:UserI :: Maybe Text
email = Maybe Text
forall a. Monoid a => a
mempty
, $sel:firstName:UserI :: Maybe Text
firstName = Maybe Text
forall a. Monoid a => a
mempty
, $sel:lastName:UserI :: Maybe Text
lastName = Maybe Text
forall a. Monoid a => a
mempty
, $sel:avatar:UserI :: Maybe Text
avatar = Maybe Text
forall a. Monoid a => a
mempty
, $sel:name:UserI :: Maybe Text
name = Maybe Text
forall a. Monoid a => a
mempty
, $sel:anonymous:UserI :: Bool
anonymous = Bool
False
, $sel:custom:UserI :: HashMap Text Value
custom = HashMap Text Value
forall a. Monoid a => a
mempty
, $sel:privateAttributeNames:UserI :: Set Text
privateAttributeNames = Set Text
forall a. Monoid a => a
mempty
}
userSetKey :: Text -> User -> User
userSetKey :: Text -> User -> User
userSetKey = (UserI -> UserI) -> User -> User
mapUser ((UserI -> UserI) -> User -> User)
-> (Text -> UserI -> UserI) -> Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "key" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "secondary" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "ip" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "country" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "email" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "firstName" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "lastName" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "avatar" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Maybe Text -> UserI -> UserI) -> Maybe Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "name" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Bool -> UserI -> UserI) -> Bool -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "anonymous" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (HashMap Text Value -> UserI -> UserI)
-> HashMap Text Value
-> User
-> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "custom" s a => a -> s -> s
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 ((UserI -> UserI) -> User -> User)
-> (Set Text -> UserI -> UserI) -> Set Text -> User -> User
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall s a. HasField' "privateAttributeNames" s a => a -> s -> s
forall (f :: Symbol) s a. HasField' f s a => a -> s -> s
setField @"privateAttributeNames"