{-# LANGUAGE PatternSynonyms #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module JSDOM.Generated.ApplePaySession (newApplePaySession, supportsVersion, supportsVersion_, canMakePayments, canMakePayments_, canMakePaymentsWithActiveCard, canMakePaymentsWithActiveCard_, openPaymentSetup, openPaymentSetup_, begin, abort, completeMerchantValidation, completeShippingMethodSelectionUpdate, completeShippingContactSelectionUpdate, completePaymentMethodSelectionUpdate, completePaymentResult, completeShippingMethodSelection, completeShippingContactSelection, completePaymentMethodSelection, completePayment, pattern STATUS_SUCCESS, pattern STATUS_FAILURE, pattern STATUS_INVALID_BILLING_POSTAL_ADDRESS, pattern STATUS_INVALID_SHIPPING_POSTAL_ADDRESS, pattern STATUS_INVALID_SHIPPING_CONTACT, pattern STATUS_PIN_REQUIRED, pattern STATUS_PIN_INCORRECT, pattern STATUS_PIN_LOCKOUT, validatemerchant, paymentmethodselected, paymentauthorized, shippingmethodselected, shippingcontactselected, cancel, ApplePaySession(..), gTypeApplePaySession) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import qualified Prelude (error) import Data.Typeable (Typeable) import Data.Traversable (mapM) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!)) import Data.Int (Int64) import Data.Word (Word, Word64) import JSDOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync) import JSDOM.Enums -- | newApplePaySession :: (MonadDOM m) => Word -> ApplePayPaymentRequest -> m ApplePaySession newApplePaySession version paymentRequest = liftDOM (ApplePaySession <$> new (jsg "ApplePaySession") [toJSVal version, toJSVal paymentRequest]) -- | supportsVersion :: (MonadDOM m) => Word -> m Bool supportsVersion version = liftDOM (((jsg "ApplePaySession") ^. jsf "supportsVersion" [toJSVal version]) >>= valToBool) -- | supportsVersion_ :: (MonadDOM m) => Word -> m () supportsVersion_ version = liftDOM (void ((jsg "ApplePaySession") ^. jsf "supportsVersion" [toJSVal version])) -- | canMakePayments :: (MonadDOM m) => m Bool canMakePayments = liftDOM (((jsg "ApplePaySession") ^. jsf "canMakePayments" ()) >>= valToBool) -- | canMakePayments_ :: (MonadDOM m) => m () canMakePayments_ = liftDOM (void ((jsg "ApplePaySession") ^. jsf "canMakePayments" ())) -- | canMakePaymentsWithActiveCard :: (MonadDOM m, ToJSString merchantIdentifier) => merchantIdentifier -> m Bool canMakePaymentsWithActiveCard merchantIdentifier = liftDOM ((((jsg "ApplePaySession") ^. jsf "canMakePaymentsWithActiveCard" [toJSVal merchantIdentifier]) >>= readPromise) >>= valToBool) -- | canMakePaymentsWithActiveCard_ :: (MonadDOM m, ToJSString merchantIdentifier) => merchantIdentifier -> m () canMakePaymentsWithActiveCard_ merchantIdentifier = liftDOM (void ((jsg "ApplePaySession") ^. jsf "canMakePaymentsWithActiveCard" [toJSVal merchantIdentifier])) -- | openPaymentSetup :: (MonadDOM m, ToJSString merchantIdentifier) => merchantIdentifier -> m Bool openPaymentSetup merchantIdentifier = liftDOM ((((jsg "ApplePaySession") ^. jsf "openPaymentSetup" [toJSVal merchantIdentifier]) >>= readPromise) >>= valToBool) -- | openPaymentSetup_ :: (MonadDOM m, ToJSString merchantIdentifier) => merchantIdentifier -> m () openPaymentSetup_ merchantIdentifier = liftDOM (void ((jsg "ApplePaySession") ^. jsf "openPaymentSetup" [toJSVal merchantIdentifier])) -- | begin :: (MonadDOM m) => ApplePaySession -> m () begin self = liftDOM (void (self ^. jsf "begin" ())) -- | abort :: (MonadDOM m) => ApplePaySession -> m () abort self = liftDOM (void (self ^. jsf "abort" ())) -- | completeMerchantValidation :: (MonadDOM m, ToJSVal merchantSession) => ApplePaySession -> merchantSession -> m () completeMerchantValidation self merchantSession = liftDOM (void (self ^. jsf "completeMerchantValidation" [toJSVal merchantSession])) -- | completeShippingMethodSelectionUpdate :: (MonadDOM m) => ApplePaySession -> ApplePayShippingMethodUpdate -> m () completeShippingMethodSelectionUpdate self update = liftDOM (void (self ^. jsf "completeShippingMethodSelection" [toJSVal update])) -- | completeShippingContactSelectionUpdate :: (MonadDOM m) => ApplePaySession -> ApplePayShippingContactUpdate -> m () completeShippingContactSelectionUpdate self update = liftDOM (void (self ^. jsf "completeShippingContactSelection" [toJSVal update])) -- | completePaymentMethodSelectionUpdate :: (MonadDOM m) => ApplePaySession -> ApplePayPaymentMethodUpdate -> m () completePaymentMethodSelectionUpdate self update = liftDOM (void (self ^. jsf "completePaymentMethodSelection" [toJSVal update])) -- | completePaymentResult :: (MonadDOM m) => ApplePaySession -> ApplePayPaymentAuthorizationResult -> m () completePaymentResult self result = liftDOM (void (self ^. jsf "completePayment" [toJSVal result])) -- | completeShippingMethodSelection :: (MonadDOM m) => ApplePaySession -> Word -> ApplePayLineItem -> [ApplePayLineItem] -> m () completeShippingMethodSelection self status newTotal newLineItems = liftDOM (void (self ^. jsf "completeShippingMethodSelection" [toJSVal status, toJSVal newTotal, toJSVal (array newLineItems)])) -- | completeShippingContactSelection :: (MonadDOM m) => ApplePaySession -> Word -> [ApplePayShippingMethod] -> ApplePayLineItem -> [ApplePayLineItem] -> m () completeShippingContactSelection self status newShippingMethods newTotal newLineItems = liftDOM (void (self ^. jsf "completeShippingContactSelection" [toJSVal status, toJSVal (array newShippingMethods), toJSVal newTotal, toJSVal (array newLineItems)])) -- | completePaymentMethodSelection :: (MonadDOM m) => ApplePaySession -> ApplePayLineItem -> [ApplePayLineItem] -> m () completePaymentMethodSelection self newTotal newLineItems = liftDOM (void (self ^. jsf "completePaymentMethodSelection" [toJSVal newTotal, toJSVal (array newLineItems)])) -- | completePayment :: (MonadDOM m) => ApplePaySession -> Word -> m () completePayment self status = liftDOM (void (self ^. jsf "completePayment" [toJSVal status])) pattern STATUS_SUCCESS = 0 pattern STATUS_FAILURE = 1 pattern STATUS_INVALID_BILLING_POSTAL_ADDRESS = 2 pattern STATUS_INVALID_SHIPPING_POSTAL_ADDRESS = 3 pattern STATUS_INVALID_SHIPPING_CONTACT = 4 pattern STATUS_PIN_REQUIRED = 5 pattern STATUS_PIN_INCORRECT = 6 pattern STATUS_PIN_LOCKOUT = 7 -- | validatemerchant :: EventName ApplePaySession onvalidatemerchant validatemerchant = unsafeEventName (toJSString "validatemerchant") -- | paymentmethodselected :: EventName ApplePaySession onpaymentmethodselected paymentmethodselected = unsafeEventName (toJSString "paymentmethodselected") -- | paymentauthorized :: EventName ApplePaySession onpaymentauthorized paymentauthorized = unsafeEventName (toJSString "paymentauthorized") -- | shippingmethodselected :: EventName ApplePaySession onshippingmethodselected shippingmethodselected = unsafeEventName (toJSString "shippingmethodselected") -- | shippingcontactselected :: EventName ApplePaySession onshippingcontactselected shippingcontactselected = unsafeEventName (toJSString "shippingcontactselected") -- | cancel :: EventName ApplePaySession oncancel cancel = unsafeEventName (toJSString "cancel")