Skip to content

Instantly share code, notes, and snippets.

@Woody88
Created March 25, 2018 03:23
Show Gist options
  • Select an option

  • Save Woody88/b5dd5df79d361f08f3124e34c2d84e4e to your computer and use it in GitHub Desktop.

Select an option

Save Woody88/b5dd5df79d361f08f3124e34c2d84e4e to your computer and use it in GitHub Desktop.
type Optionals = HML.HashMap Text Text
type SFApiNumber = Text
data SFClient = SFClient SFApiNumber AuthResponse deriving Show
data UserCred = UserCred
{ username :: Maybe Username
, password :: Maybe UserPassword
, secretKey :: Maybe SecretKey
, clientId :: Text
, clientSecret :: Text
} deriving (Show, Generic)
data TokenRequest = TokenRequest
{ grantType :: GrantType
, authType :: AuthType
, userCred :: UserCred
, redirectUri :: Maybe RedirectUri
, code :: Maybe Code
, refreshToken :: Maybe RefreshToken
, optionals :: Maybe Optionals
}
data AuthResponse = AuthResponse
{ accessToken :: AccessToken
, refreshToken :: Maybe RefreshToken
, expiresIn :: Maybe Text
, instanceUrl :: Text
, urlId :: Text
, signature :: Text
, issuedAt :: Text
} deriving (Show, Generic)
data AuthType =
UserPassword
| UserAgent
| WebServer
| Resfresh
data GrantTypeOpt =
Password
| Authorize
| Revoke
deriving (Show, Generic)
newtype GrantType = GrantType {grant_type :: GrantTypeOpt} deriving Generic
newtype Username = Username { user :: Text} deriving Show
newtype UserPassword = Userpassword { pass :: Text } deriving Show
newtype SecretKey = SecretKey { secret :: Text } deriving Show
newtype RedirectUri = RedirectUri Text
newtype Code = Code Text
newtype RefreshToken = RefreshToken { getRefreshToken :: Text } deriving (Show, Generic)
newtype AccessToken = AccessToken {getAccessToken :: Text } deriving (Show, Generic)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment