packages feed

approveapi 0.1.0.0 → 0.1.3.0

raw patch · 6 files changed

+74/−7 lines, 6 files

Files

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 &#x60;create_prompt&#x60; 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