packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/PushSubscriptionOptionsInit.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from push-api (webref). Do not edit.
module JSDOM.Generated.PushSubscriptionOptionsInit
       (newPushSubscriptionOptionsInit, setUserVisibleOnly, getUserVisibleOnly, getUserVisibleOnlyUnsafe, getUserVisibleOnlyUnchecked, setApplicationServerKey, getApplicationServerKey, getApplicationServerKeyUnsafe, getApplicationServerKeyUnchecked, PushSubscriptionOptionsInit(..), gTypePushSubscriptionOptionsInit)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit PushSubscriptionOptionsInit specification>
newPushSubscriptionOptionsInit :: (MonadDOM m) => m PushSubscriptionOptionsInit
newPushSubscriptionOptionsInit = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-uservisibleonly PushSubscriptionOptionsInit.userVisibleOnly specification>
setUserVisibleOnly :: (MonadDOM m) => PushSubscriptionOptionsInit -> Bool -> m ()
setUserVisibleOnly self val = liftDOM (void (self ^. jss "userVisibleOnly" (toJSVal val)))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-uservisibleonly PushSubscriptionOptionsInit.userVisibleOnly specification>
getUserVisibleOnly :: (MonadDOM m) => PushSubscriptionOptionsInit -> m (Maybe Bool)
getUserVisibleOnly self = liftDOM (((self ^. js "userVisibleOnly") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-uservisibleonly PushSubscriptionOptionsInit.userVisibleOnly specification>
getUserVisibleOnlyUnsafe :: (MonadDOM m, HasCallStack) => PushSubscriptionOptionsInit -> m Bool
getUserVisibleOnlyUnsafe self = liftDOM ((((self ^. js "userVisibleOnly") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-uservisibleonly PushSubscriptionOptionsInit.userVisibleOnly specification>
getUserVisibleOnlyUnchecked :: (MonadDOM m) => PushSubscriptionOptionsInit -> m Bool
getUserVisibleOnlyUnchecked self = liftDOM (((self ^. js "userVisibleOnly") >>= valToBool))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-applicationserverkey PushSubscriptionOptionsInit.applicationServerKey specification>
setApplicationServerKey :: (MonadDOM m, IsPushMessageDataInit val) => PushSubscriptionOptionsInit -> Maybe val -> m ()
setApplicationServerKey self val = liftDOM (void (self ^. jss "applicationServerKey" (toJSVal val)))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-applicationserverkey PushSubscriptionOptionsInit.applicationServerKey specification>
getApplicationServerKey :: (MonadDOM m) => PushSubscriptionOptionsInit -> m (Maybe PushMessageDataInit)
getApplicationServerKey self = liftDOM (((self ^. js "applicationServerKey") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-applicationserverkey PushSubscriptionOptionsInit.applicationServerKey specification>
getApplicationServerKeyUnsafe :: (MonadDOM m, HasCallStack) => PushSubscriptionOptionsInit -> m PushMessageDataInit
getApplicationServerKeyUnsafe self = liftDOM ((((self ^. js "applicationServerKey") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionoptionsinit-applicationserverkey PushSubscriptionOptionsInit.applicationServerKey specification>
getApplicationServerKeyUnchecked :: (MonadDOM m) => PushSubscriptionOptionsInit -> m PushMessageDataInit
getApplicationServerKeyUnchecked self = liftDOM (((self ^. js "applicationServerKey") >>= fromJSValUnchecked))