{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE JavaScriptFFI #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} module GHCJS.DOM.JSFFI.Generated.ApplePaySession (js_newApplePaySession, newApplePaySession, js_supportsVersion, supportsVersion, supportsVersion_, js_canMakePayments, canMakePayments, canMakePayments_, js_canMakePaymentsWithActiveCard, canMakePaymentsWithActiveCard, canMakePaymentsWithActiveCard_, js_openPaymentSetup, openPaymentSetup, openPaymentSetup_, js_begin, begin, js_abort, abort, js_completeMerchantValidation, completeMerchantValidation, js_completeShippingMethodSelectionUpdate, completeShippingMethodSelectionUpdate, js_completeShippingContactSelectionUpdate, completeShippingContactSelectionUpdate, js_completePaymentMethodSelectionUpdate, completePaymentMethodSelectionUpdate, js_completePaymentResult, completePaymentResult, js_completeShippingMethodSelection, completeShippingMethodSelection, js_completeShippingContactSelection, completeShippingContactSelection, js_completePaymentMethodSelection, completePaymentMethodSelection, js_completePayment, 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, fmap, Show, Read, Eq, Ord) import qualified Prelude (error) import Data.Typeable (Typeable) import GHCJS.Types (JSVal(..), JSString) import GHCJS.Foreign (jsNull, jsUndefined) import GHCJS.Foreign.Callback (syncCallback, asyncCallback, syncCallback1, asyncCallback1, syncCallback2, asyncCallback2, OnBlocked(..)) import GHCJS.Marshal (ToJSVal(..), FromJSVal(..)) import GHCJS.Marshal.Pure (PToJSVal(..), PFromJSVal(..)) import Control.Monad (void) import Control.Monad.IO.Class (MonadIO(..)) import Data.Int (Int64) import Data.Word (Word, Word64) import Data.Maybe (fromJust) import Data.Traversable (mapM) import GHCJS.DOM.Types import Control.Applicative ((<$>)) import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync) import GHCJS.DOM.JSFFI.Generated.Enums foreign import javascript safe "new window[\"ApplePaySession\"]($1,\n$2)" js_newApplePaySession :: Word -> ApplePayPaymentRequest -> IO ApplePaySession -- | newApplePaySession :: (MonadIO m) => Word -> ApplePayPaymentRequest -> m ApplePaySession newApplePaySession version paymentRequest = liftIO (js_newApplePaySession version paymentRequest) foreign import javascript safe "(window[\"ApplePaySession\"][\"supportsVersion\"]($1) ? 1 : 0)" js_supportsVersion :: Word -> IO Bool -- | supportsVersion :: (MonadIO m) => Word -> m Bool supportsVersion version = liftIO (js_supportsVersion version) -- | supportsVersion_ :: (MonadIO m) => Word -> m () supportsVersion_ version = liftIO (void (js_supportsVersion version)) foreign import javascript safe "(window[\"ApplePaySession\"][\"canMakePayments\"]() ? 1 : 0)" js_canMakePayments :: IO Bool -- | canMakePayments :: (MonadIO m) => m Bool canMakePayments = liftIO (js_canMakePayments) -- | canMakePayments_ :: (MonadIO m) => m () canMakePayments_ = liftIO (void (js_canMakePayments)) foreign import javascript interruptible "window[\"ApplePaySession\"][\"canMakePaymentsWithActiveCard\"]($1).then(function(s) { $c(null, s);}, function(e) { $c(e, null);});" js_canMakePaymentsWithActiveCard :: JSString -> IO (JSVal, Bool) -- | canMakePaymentsWithActiveCard :: (MonadIO m, ToJSString merchantIdentifier) => merchantIdentifier -> m Bool canMakePaymentsWithActiveCard merchantIdentifier = liftIO ((js_canMakePaymentsWithActiveCard (toJSString merchantIdentifier)) >>= checkPromiseResult) -- | canMakePaymentsWithActiveCard_ :: (MonadIO m, ToJSString merchantIdentifier) => merchantIdentifier -> m () canMakePaymentsWithActiveCard_ merchantIdentifier = liftIO (void (js_canMakePaymentsWithActiveCard (toJSString merchantIdentifier))) foreign import javascript interruptible "window[\"ApplePaySession\"][\"openPaymentSetup\"]($1).then(function(s) { $c(null, s);}, function(e) { $c(e, null);});" js_openPaymentSetup :: JSString -> IO (JSVal, Bool) -- | openPaymentSetup :: (MonadIO m, ToJSString merchantIdentifier) => merchantIdentifier -> m Bool openPaymentSetup merchantIdentifier = liftIO ((js_openPaymentSetup (toJSString merchantIdentifier)) >>= checkPromiseResult) -- | openPaymentSetup_ :: (MonadIO m, ToJSString merchantIdentifier) => merchantIdentifier -> m () openPaymentSetup_ merchantIdentifier = liftIO (void (js_openPaymentSetup (toJSString merchantIdentifier))) foreign import javascript safe "$1[\"begin\"]()" js_begin :: ApplePaySession -> IO () -- | begin :: (MonadIO m) => ApplePaySession -> m () begin self = liftIO (js_begin self) foreign import javascript safe "$1[\"abort\"]()" js_abort :: ApplePaySession -> IO () -- | abort :: (MonadIO m) => ApplePaySession -> m () abort self = liftIO (js_abort self) foreign import javascript safe "$1[\"completeMerchantValidation\"]($2)" js_completeMerchantValidation :: ApplePaySession -> JSVal -> IO () -- | completeMerchantValidation :: (MonadIO m, ToJSVal merchantSession) => ApplePaySession -> merchantSession -> m () completeMerchantValidation self merchantSession = liftIO (toJSVal merchantSession >>= \ merchantSession' -> js_completeMerchantValidation self merchantSession') foreign import javascript safe "$1[\"completeShippingMethodSelection\"]($2)" js_completeShippingMethodSelectionUpdate :: ApplePaySession -> ApplePayShippingMethodUpdate -> IO () -- | completeShippingMethodSelectionUpdate :: (MonadIO m) => ApplePaySession -> ApplePayShippingMethodUpdate -> m () completeShippingMethodSelectionUpdate self update = liftIO (js_completeShippingMethodSelectionUpdate self update) foreign import javascript safe "$1[\"completeShippingContactSelection\"]($2)" js_completeShippingContactSelectionUpdate :: ApplePaySession -> ApplePayShippingContactUpdate -> IO () -- | completeShippingContactSelectionUpdate :: (MonadIO m) => ApplePaySession -> ApplePayShippingContactUpdate -> m () completeShippingContactSelectionUpdate self update = liftIO (js_completeShippingContactSelectionUpdate self update) foreign import javascript safe "$1[\"completePaymentMethodSelection\"]($2)" js_completePaymentMethodSelectionUpdate :: ApplePaySession -> ApplePayPaymentMethodUpdate -> IO () -- | completePaymentMethodSelectionUpdate :: (MonadIO m) => ApplePaySession -> ApplePayPaymentMethodUpdate -> m () completePaymentMethodSelectionUpdate self update = liftIO (js_completePaymentMethodSelectionUpdate self update) foreign import javascript safe "$1[\"completePayment\"]($2)" js_completePaymentResult :: ApplePaySession -> ApplePayPaymentAuthorizationResult -> IO () -- | completePaymentResult :: (MonadIO m) => ApplePaySession -> ApplePayPaymentAuthorizationResult -> m () completePaymentResult self result = liftIO (js_completePaymentResult self result) foreign import javascript safe "$1[\"completeShippingMethodSelection\"]($2,\n$3, $4)" js_completeShippingMethodSelection :: ApplePaySession -> Word -> ApplePayLineItem -> JSVal -> IO () -- | completeShippingMethodSelection :: (MonadIO m) => ApplePaySession -> Word -> ApplePayLineItem -> [ApplePayLineItem] -> m () completeShippingMethodSelection self status newTotal newLineItems = liftIO (toJSVal newLineItems >>= \ newLineItems' -> js_completeShippingMethodSelection self status newTotal newLineItems') foreign import javascript safe "$1[\"completeShippingContactSelection\"]($2,\n$3, $4, $5)" js_completeShippingContactSelection :: ApplePaySession -> Word -> JSVal -> ApplePayLineItem -> JSVal -> IO () -- | completeShippingContactSelection :: (MonadIO m) => ApplePaySession -> Word -> [ApplePayShippingMethod] -> ApplePayLineItem -> [ApplePayLineItem] -> m () completeShippingContactSelection self status newShippingMethods newTotal newLineItems = liftIO (toJSVal newLineItems >>= \ newLineItems' -> toJSVal newShippingMethods >>= \ newShippingMethods' -> js_completeShippingContactSelection self status newShippingMethods' newTotal newLineItems') foreign import javascript safe "$1[\"completePaymentMethodSelection\"]($2,\n$3)" js_completePaymentMethodSelection :: ApplePaySession -> ApplePayLineItem -> JSVal -> IO () -- | completePaymentMethodSelection :: (MonadIO m) => ApplePaySession -> ApplePayLineItem -> [ApplePayLineItem] -> m () completePaymentMethodSelection self newTotal newLineItems = liftIO (toJSVal newLineItems >>= \ newLineItems' -> js_completePaymentMethodSelection self newTotal newLineItems') foreign import javascript safe "$1[\"completePayment\"]($2)" js_completePayment :: ApplePaySession -> Word -> IO () -- | completePayment :: (MonadIO m) => ApplePaySession -> Word -> m () completePayment self status = liftIO (js_completePayment self 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")