· 7 years ago · Apr 02, 2018, 04:16 PM
1type Optionals = HML.HashMap Text Text
2type SFApiNumber = Text
3
4data SFClient = SFClient SFApiNumber AuthResponse deriving Show
5
6data UserCred = UserCred
7 { username :: Maybe Username
8 , password :: Maybe UserPassword
9 , secretKey :: Maybe SecretKey
10 , clientId :: Text
11 , clientSecret :: Text
12 } deriving (Show, Generic)
13
14data TokenRequest = TokenRequest
15 { grantType :: GrantType
16 , authType :: AuthType
17 , userCred :: UserCred
18 , redirectUri :: Maybe RedirectUri
19 , code :: Maybe Code
20 , refreshToken :: Maybe RefreshToken
21 , optionals :: Maybe Optionals
22 }
23
24data AuthResponse = AuthResponse
25 { accessToken :: AccessToken
26 , refreshToken :: Maybe RefreshToken
27 , expiresIn :: Maybe Text
28 , instanceUrl :: Text
29 , urlId :: Text
30 , signature :: Text
31 , issuedAt :: Text
32 } deriving (Show, Generic)
33
34data AuthType =
35 UserPassword
36 | UserAgent
37 | WebServer
38 | Resfresh
39
40data GrantTypeOpt =
41 Password
42 | Authorize
43 | Revoke
44 deriving (Show, Generic)
45
46newtype GrantType = GrantType {grant_type :: GrantTypeOpt} deriving Generic
47newtype Username = Username { user :: Text} deriving Show
48newtype UserPassword = Userpassword { pass :: Text } deriving Show
49newtype SecretKey = SecretKey { secret :: Text } deriving Show
50newtype RedirectUri = RedirectUri Text
51newtype Code = Code Text
52newtype RefreshToken = RefreshToken { getRefreshToken :: Text } deriving (Show, Generic)
53newtype AccessToken = AccessToken {getAccessToken :: Text } deriving (Show, Generic)