{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.SQLTransaction
       (executeSql, SQLTransaction(..), gTypeSQLTransaction) 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

-- | <https://developer.mozilla.org/en-US/docs/Web/API/SQLTransaction.executeSql Mozilla SQLTransaction.executeSql documentation> 
executeSql ::
           (MonadDOM m, ToJSString sqlStatement, IsSQLValue arguments) =>
             SQLTransaction ->
               sqlStatement ->
                 [arguments] ->
                   Maybe SQLStatementCallback ->
                     Maybe SQLStatementErrorCallback -> m ()
executeSql :: forall (m :: * -> *) sqlStatement arguments.
(MonadDOM m, ToJSString sqlStatement, IsSQLValue arguments) =>
SQLTransaction
-> sqlStatement
-> [arguments]
-> Maybe SQLStatementCallback
-> Maybe SQLStatementErrorCallback
-> m ()
executeSql SQLTransaction
self sqlStatement
sqlStatement [arguments]
arguments Maybe SQLStatementCallback
callback Maybe SQLStatementErrorCallback
errorCallback
  = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void
         (SQLTransaction
self SQLTransaction
-> Getting (JSM JSVal) SQLTransaction (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. String -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf String
"executeSql"
            [sqlStatement -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal sqlStatement
sqlStatement, JSM Object -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal (JSM [JSVal] -> JSM Object
forall args. MakeArgs args => args -> JSM Object
array ((arguments -> JSM JSVal) -> [arguments] -> JSM [JSVal]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM arguments -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal [arguments]
arguments)),
             Maybe SQLStatementCallback -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe SQLStatementCallback
callback, Maybe SQLStatementErrorCallback -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe SQLStatementErrorCallback
errorCallback]))