Module: WebPush
- Defined in:
- lib/web_push.rb,
lib/web_push/errors.rb,
lib/web_push/request.rb,
lib/web_push/version.rb,
lib/web_push/vapid_key.rb,
lib/web_push/encryption.rb
Overview
Push API implementation
Defined Under Namespace
Modules: Encryption Classes: ConfigurationError, Error, ExpiredSubscription, InvalidSubscription, PayloadTooLarge, PushServiceError, Request, ResponseError, TooManyRequests, Unauthorized, VapidKey
Constant Summary collapse
- VERSION =
'3.0.2'.freeze
Class Method Summary collapse
- .decode64(str) ⇒ Object
- .encode64(bytes) ⇒ Object
-
.generate_key ⇒ WebPush::VapidKey
Generate a VapidKey instance to obtain base64 encoded public and private keys suitable for VAPID protocol JSON web token signing.
-
.payload_send(message: '', endpoint:, p256dh: '', auth: '', vapid: {}, **options) ⇒ Object
Deliver the payload to the required endpoint given by the JavaScript PushSubscription.
Class Method Details
.decode64(str) ⇒ Object
58 59 60 |
# File 'lib/web_push.rb', line 58 def decode64(str) Base64.urlsafe_decode64(str) end |
.encode64(bytes) ⇒ Object
54 55 56 |
# File 'lib/web_push.rb', line 54 def encode64(bytes) Base64.urlsafe_encode64(bytes) end |
.generate_key ⇒ WebPush::VapidKey
Generate a VapidKey instance to obtain base64 encoded public and private keys suitable for VAPID protocol JSON web token signing
50 51 52 |
# File 'lib/web_push.rb', line 50 def generate_key VapidKey.new end |
.payload_send(message: '', endpoint:, p256dh: '', auth: '', vapid: {}, **options) ⇒ Object
Deliver the payload to the required endpoint given by the JavaScript PushSubscription. Including an optional message requires p256dh and auth keys from the PushSubscription.
37 38 39 40 41 42 43 44 |
# File 'lib/web_push.rb', line 37 def payload_send(message: '', endpoint:, p256dh: '', auth: '', vapid: {}, **) WebPush::Request.new( message: , subscription: subscription(endpoint, p256dh, auth), vapid: vapid, ** ).perform end |