jsaddle-dom-0.10.0.0: src/JSDOM/Generated/PushSubscription.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.PushSubscription
(getKey, getKey_, getKeyUnsafe, getKeyUnchecked, toJSON, toJSON_, unsubscribe, unsubscribe_, getEndpoint, getExpirationTime, getExpirationTimeUnsafe, getExpirationTimeUnchecked, getOptions, PushSubscription(..), gTypePushSubscription)
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://developer.mozilla.org/docs/Web/API/PushSubscription/getKey MDN PushSubscription.getKey documentation>
getKey :: (MonadDOM m) => PushSubscription -> PushEncryptionKeyName -> m (Maybe ArrayBuffer)
getKey self name = liftDOM (((self ^. jsf "getKey" [toJSVal name]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey MDN PushSubscription.getKey documentation>
getKey_ :: (MonadDOM m) => PushSubscription -> PushEncryptionKeyName -> m ()
getKey_ self name = liftDOM (void (self ^. jsf "getKey" [toJSVal name]))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey MDN PushSubscription.getKey documentation>
getKeyUnsafe :: (MonadDOM m, HasCallStack) => PushSubscription -> PushEncryptionKeyName -> m ArrayBuffer
getKeyUnsafe self name = liftDOM ((((self ^. jsf "getKey" [toJSVal name]) >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey MDN PushSubscription.getKey documentation>
getKeyUnchecked :: (MonadDOM m) => PushSubscription -> PushEncryptionKeyName -> m ArrayBuffer
getKeyUnchecked self name = liftDOM (((self ^. jsf "getKey" [toJSVal name]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON MDN PushSubscription.toJSON documentation>
toJSON :: (MonadDOM m) => PushSubscription -> m PushSubscriptionJSON
toJSON self = liftDOM (((self ^. jsf "toJSON" ()) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON MDN PushSubscription.toJSON documentation>
toJSON_ :: (MonadDOM m) => PushSubscription -> m ()
toJSON_ self = liftDOM (void (self ^. jsf "toJSON" ()))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe MDN PushSubscription.unsubscribe documentation>
unsubscribe :: (MonadDOM m) => PushSubscription -> m Bool
unsubscribe self = liftDOM (((((self ^. jsf "unsubscribe" ()) >>= readPromise)) >>= valToBool))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe MDN PushSubscription.unsubscribe documentation>
unsubscribe_ :: (MonadDOM m) => PushSubscription -> m ()
unsubscribe_ self = liftDOM (void (((self ^. jsf "unsubscribe" ()) >>= readPromise)))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint MDN PushSubscription.endpoint documentation>
getEndpoint :: (MonadDOM m, FromJSString result) => PushSubscription -> m result
getEndpoint self = liftDOM (((self ^. js "endpoint") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime MDN PushSubscription.expirationTime documentation>
getExpirationTime :: (MonadDOM m) => PushSubscription -> m (Maybe Word53)
getExpirationTime self = liftDOM (((self ^. js "expirationTime") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime MDN PushSubscription.expirationTime documentation>
getExpirationTimeUnsafe :: (MonadDOM m, HasCallStack) => PushSubscription -> m Word53
getExpirationTimeUnsafe self = liftDOM ((((self ^. js "expirationTime") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime MDN PushSubscription.expirationTime documentation>
getExpirationTimeUnchecked :: (MonadDOM m) => PushSubscription -> m Word53
getExpirationTimeUnchecked self = liftDOM (((self ^. js "expirationTime") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushSubscription/options MDN PushSubscription.options documentation>
getOptions :: (MonadDOM m) => PushSubscription -> m PushSubscriptionOptions
getOptions self = liftDOM (((self ^. js "options") >>= fromJSValUnchecked))