approveapi 0.1.0.0 → 0.1.3.0
raw patch · 6 files changed
+74/−7 lines, 6 files
Files
- approveapi.cabal +1/−1
- lib/ApproveApi/Core.hs +2/−2
- lib/ApproveApi/Model.hs +14/−1
- lib/ApproveApi/ModelLens.hs +15/−0
- openapi.yaml +39/−3
- tests/Instances.hs +3/−0
approveapi.cabal view
@@ -1,5 +1,5 @@ name: approveapi-version: 0.1.0.0+version: 0.1.3.0 synopsis: ApproveAPI Haskell Client description: . Haskell client for the ApproveAPI HTTP API
lib/ApproveApi/Core.hs view
@@ -96,14 +96,14 @@ -- -- configUserAgent: ----- @"approveapi/0.1.0.0"@+-- @"approveapi/0.1.3.0"@ -- newConfig :: IO ApproveApiConfig newConfig = do logCxt <- initLogContext return $ ApproveApiConfig { configHost = "https://approve.sh"- , configUserAgent = "approveapi/0.1.0.0"+ , configUserAgent = "approveapi/0.1.3.0" , configLogExecWithContext = runDefaultLogExecWithContext , configLogContext = logCxt , configAuthMethods = []
lib/ApproveApi/Model.hs view
@@ -125,6 +125,8 @@ , createPromptRequestLongPoll :: !(Maybe Bool) -- ^ "long_poll" - If true, the request waits (long-polls) until the user responds to the prompt or more than 10 minutes pass. Defaults to false. , createPromptRequestExpiresIn :: !(Maybe Double) -- ^ "expires_in" - The number of seconds until this request can no longer be answered. , createPromptRequestMetadata :: !(Maybe PromptMetadata) -- ^ "metadata"+ , createPromptRequestInternalData :: !(Maybe (Map.Map String Text)) -- ^ "internal_data"+ , createPromptRequestIdempotencyKey :: !(Maybe Text) -- ^ "idempotency_key" - Allows calling `create_prompt` multiple times idempotently, such that a prompt is sent at-most once. This key should contain sufficient randomness. Idempotent requests are stored for 24 hours. After that time, the same key will create a new request. } deriving (P.Show, P.Eq, P.Typeable) -- | FromJSON CreatePromptRequest@@ -141,6 +143,8 @@ <*> (o .:? "long_poll") <*> (o .:? "expires_in") <*> (o .:? "metadata")+ <*> (o .:? "internal_data")+ <*> (o .:? "idempotency_key") -- | ToJSON CreatePromptRequest instance A.ToJSON CreatePromptRequest where@@ -156,6 +160,8 @@ , "long_poll" .= createPromptRequestLongPoll , "expires_in" .= createPromptRequestExpiresIn , "metadata" .= createPromptRequestMetadata+ , "internal_data" .= createPromptRequestInternalData+ , "idempotency_key" .= createPromptRequestIdempotencyKey ] @@ -176,6 +182,8 @@ , createPromptRequestLongPoll = Nothing , createPromptRequestExpiresIn = Nothing , createPromptRequestMetadata = Nothing+ , createPromptRequestInternalData = Nothing+ , createPromptRequestIdempotencyKey = Nothing } -- ** Error@@ -213,6 +221,7 @@ { promptId :: !(Text) -- ^ /Required/ "id" - A unique id for this prompt. , promptSentAt :: !(Double) -- ^ /Required/ "sent_at" - The unix timestamp when this prompt was sent. , promptIsExpired :: !(Bool) -- ^ /Required/ "is_expired" - Whether the prompt can still be answered.+ , promptRequest :: !(CreatePromptRequest) -- ^ /Required/ "request" , promptAnswer :: !(Maybe PromptAnswer) -- ^ "answer" , promptMetadata :: !(Maybe PromptMetadata) -- ^ "metadata" } deriving (P.Show, P.Eq, P.Typeable)@@ -224,6 +233,7 @@ <$> (o .: "id") <*> (o .: "sent_at") <*> (o .: "is_expired")+ <*> (o .: "request") <*> (o .:? "answer") <*> (o .:? "metadata") @@ -234,6 +244,7 @@ [ "id" .= promptId , "sent_at" .= promptSentAt , "is_expired" .= promptIsExpired+ , "request" .= promptRequest , "answer" .= promptAnswer , "metadata" .= promptMetadata ]@@ -244,12 +255,14 @@ :: Text -- ^ 'promptId': A unique id for this prompt. -> Double -- ^ 'promptSentAt': The unix timestamp when this prompt was sent. -> Bool -- ^ 'promptIsExpired': Whether the prompt can still be answered.+ -> CreatePromptRequest -- ^ 'promptRequest' -> Prompt-mkPrompt promptId promptSentAt promptIsExpired =+mkPrompt promptId promptSentAt promptIsExpired promptRequest = Prompt { promptId , promptSentAt , promptIsExpired+ , promptRequest , promptAnswer = Nothing , promptMetadata = Nothing }
lib/ApproveApi/ModelLens.hs view
@@ -108,8 +108,18 @@ createPromptRequestMetadataL f CreatePromptRequest{..} = (\createPromptRequestMetadata -> CreatePromptRequest { createPromptRequestMetadata, ..} ) <$> f createPromptRequestMetadata {-# INLINE createPromptRequestMetadataL #-} +-- | 'createPromptRequestInternalData' Lens+createPromptRequestInternalDataL :: Lens_' CreatePromptRequest (Maybe (Map.Map String Text))+createPromptRequestInternalDataL f CreatePromptRequest{..} = (\createPromptRequestInternalData -> CreatePromptRequest { createPromptRequestInternalData, ..} ) <$> f createPromptRequestInternalData+{-# INLINE createPromptRequestInternalDataL #-} +-- | 'createPromptRequestIdempotencyKey' Lens+createPromptRequestIdempotencyKeyL :: Lens_' CreatePromptRequest (Maybe Text)+createPromptRequestIdempotencyKeyL f CreatePromptRequest{..} = (\createPromptRequestIdempotencyKey -> CreatePromptRequest { createPromptRequestIdempotencyKey, ..} ) <$> f createPromptRequestIdempotencyKey+{-# INLINE createPromptRequestIdempotencyKeyL #-} ++ -- * Error -- | 'errorError' Lens@@ -135,6 +145,11 @@ promptIsExpiredL :: Lens_' Prompt (Bool) promptIsExpiredL f Prompt{..} = (\promptIsExpired -> Prompt { promptIsExpired, ..} ) <$> f promptIsExpired {-# INLINE promptIsExpiredL #-}++-- | 'promptRequest' Lens+promptRequestL :: Lens_' Prompt (CreatePromptRequest)+promptRequestL f Prompt{..} = (\promptRequest -> Prompt { promptRequest, ..} ) <$> f promptRequest+{-# INLINE promptRequestL #-} -- | 'promptAnswer' Lens promptAnswerL :: Lens_' Prompt (Maybe PromptAnswer)
openapi.yaml view
@@ -158,6 +158,25 @@ Prompt: example: sent_at: 0.8008281904610115+ request:+ metadata:+ browser: browser+ operating_system: operating_system+ location: location+ time: time+ ip_address: ip_address+ long_poll: true+ reject_text: reject_text+ internal_data:+ key: internal_data+ approve_redirect_url: approve_redirect_url+ reject_redirect_url: reject_redirect_url+ idempotency_key: idempotency_key+ approve_text: approve_text+ body: body+ title: title+ user: user+ expires_in: 6.027456183070403 metadata: browser: browser operating_system: operating_system@@ -171,7 +190,7 @@ browser: browser operating_system: operating_system ip_address: ip_address- time: 6.027456183070403+ time: 1.4658129805029452 id: id properties: id:@@ -183,6 +202,8 @@ is_expired: description: Whether the prompt can still be answered. type: boolean+ request:+ $ref: '#/components/schemas/CreatePromptRequest' answer: $ref: '#/components/schemas/PromptAnswer' metadata:@@ -190,6 +211,7 @@ required: - id - is_expired+ - request - sent_at type: object CreatePromptRequest:@@ -202,13 +224,16 @@ ip_address: ip_address long_poll: true reject_text: reject_text+ internal_data:+ key: internal_data approve_redirect_url: approve_redirect_url reject_redirect_url: reject_redirect_url+ idempotency_key: idempotency_key approve_text: approve_text body: body title: title user: user- expires_in: 0.8008281904610115+ expires_in: 6.027456183070403 properties: user: description: The user to send the approval request to. Can be either an email address or a phone number.@@ -239,6 +264,13 @@ type: number metadata: $ref: '#/components/schemas/PromptMetadata'+ internal_data:+ additionalProperties:+ type: string+ type: object+ idempotency_key:+ description: Allows calling `create_prompt` multiple times idempotently, such that a prompt is sent at-most once. This key should contain sufficient randomness. Idempotent requests are stored for 24 hours. After that time, the same key will create a new request.+ type: string required: - body - user@@ -267,6 +299,10 @@ description: The operating system initiating the action, i.e. Mac OS X. type: string type: object+ PromptInternalData:+ additionalProperties:+ type: string+ type: object PromptAnswer: example: result: true@@ -274,7 +310,7 @@ browser: browser operating_system: operating_system ip_address: ip_address- time: 6.027456183070403+ time: 1.4658129805029452 properties: result: description: The user's answer to whether or not they approve this prompt.
tests/Instances.hs view
@@ -109,6 +109,8 @@ <*> arbitrary -- createPromptRequestLongPoll :: Maybe Bool <*> arbitrary -- createPromptRequestExpiresIn :: Maybe Double <*> arbitrary -- createPromptRequestMetadata :: Maybe PromptMetadata+ <*> arbitrary -- createPromptRequestInternalData :: Maybe (Map.Map String Text)+ <*> arbitrary -- createPromptRequestIdempotencyKey :: Maybe Text instance Arbitrary Error where arbitrary =@@ -121,6 +123,7 @@ <$> arbitrary -- promptId :: Text <*> arbitrary -- promptSentAt :: Double <*> arbitrary -- promptIsExpired :: Bool+ <*> arbitrary -- promptRequest :: CreatePromptRequest <*> arbitrary -- promptAnswer :: Maybe PromptAnswer <*> arbitrary -- promptMetadata :: Maybe PromptMetadata