jsaddle-dom-0.10.0.0: src/JSDOM/Generated/PushSubscriptionJSON.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.PushSubscriptionJSON
(newPushSubscriptionJSON, setEndpoint, getEndpoint, getEndpointUnsafe, getEndpointUnchecked, setExpirationTime, getExpirationTime, getExpirationTimeUnsafe, getExpirationTimeUnchecked, setKeys, getKeys, getKeysUnsafe, getKeysUnchecked, PushSubscriptionJSON(..), gTypePushSubscriptionJSON)
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-pushsubscriptionjson PushSubscriptionJSON specification>
newPushSubscriptionJSON :: (MonadDOM m) => m PushSubscriptionJSON
newPushSubscriptionJSON = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-endpoint PushSubscriptionJSON.endpoint specification>
setEndpoint :: (MonadDOM m, ToJSString val) => PushSubscriptionJSON -> val -> m ()
setEndpoint self val = liftDOM (void (self ^. jss "endpoint" (toJSVal val)))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-endpoint PushSubscriptionJSON.endpoint specification>
getEndpoint :: (MonadDOM m, FromJSString result) => PushSubscriptionJSON -> m (Maybe result)
getEndpoint self = liftDOM (((self ^. js "endpoint") >>= fromMaybeJSString))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-endpoint PushSubscriptionJSON.endpoint specification>
getEndpointUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => PushSubscriptionJSON -> m result
getEndpointUnsafe self = liftDOM ((((self ^. js "endpoint") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-endpoint PushSubscriptionJSON.endpoint specification>
getEndpointUnchecked :: (MonadDOM m, FromJSString result) => PushSubscriptionJSON -> m result
getEndpointUnchecked self = liftDOM (((self ^. js "endpoint") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-expirationtime PushSubscriptionJSON.expirationTime specification>
setExpirationTime :: (MonadDOM m) => PushSubscriptionJSON -> Maybe Word53 -> m ()
setExpirationTime self val = liftDOM (void (self ^. jss "expirationTime" (toJSVal val)))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-expirationtime PushSubscriptionJSON.expirationTime specification>
getExpirationTime :: (MonadDOM m) => PushSubscriptionJSON -> m (Maybe Word53)
getExpirationTime self = liftDOM (((self ^. js "expirationTime") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-expirationtime PushSubscriptionJSON.expirationTime specification>
getExpirationTimeUnsafe :: (MonadDOM m, HasCallStack) => PushSubscriptionJSON -> m Word53
getExpirationTimeUnsafe self = liftDOM ((((self ^. js "expirationTime") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-expirationtime PushSubscriptionJSON.expirationTime specification>
getExpirationTimeUnchecked :: (MonadDOM m) => PushSubscriptionJSON -> m Word53
getExpirationTimeUnchecked self = liftDOM (((self ^. js "expirationTime") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-keys PushSubscriptionJSON.keys specification>
setKeys :: (MonadDOM m) => PushSubscriptionJSON -> PushSubscriptionKeys -> m ()
setKeys self val = liftDOM (void (self ^. jss "keys" (toJSVal val)))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-keys PushSubscriptionJSON.keys specification>
getKeys :: (MonadDOM m) => PushSubscriptionJSON -> m (Maybe PushSubscriptionKeys)
getKeys self = liftDOM (((self ^. js "keys") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-keys PushSubscriptionJSON.keys specification>
getKeysUnsafe :: (MonadDOM m, HasCallStack) => PushSubscriptionJSON -> m PushSubscriptionKeys
getKeysUnsafe self = liftDOM ((((self ^. js "keys") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/push-api/#dom-pushsubscriptionjson-keys PushSubscriptionJSON.keys specification>
getKeysUnchecked :: (MonadDOM m) => PushSubscriptionJSON -> m PushSubscriptionKeys
getKeysUnchecked self = liftDOM (((self ^. js "keys") >>= fromJSValUnchecked))