Commit Graph

10 Commits (718ee72c8073fe8851a29dc930fd78a41335906c)

Author SHA1 Message Date
renovate[bot] 3ed9b55cb3
Update dependency rubocop-rails to v2.20.1 ()
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renaud Chaput <renchap@gmail.com>
Claire 8ffa96b059
Fix web push notifications containing HTML entities ()
ThibG 7786e1357b Only display web push notifications after API call (fixes ) ()
* Only display web push notifications after API call (fixes )

* Decode then truncate instead of truncating then decoding in webpush serializer
Eugen Rochko 1a564df586
Do not encode HTML entities in initial Web Push payload body ()
Eugen Rochko 4b94e9c65e
Improve payload format of Web Push API now that it's open ()
> Good lord what is happening in there

Previously the contents of the Web Push API payloads closely resembled the structure of JavaScript's [Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notification). But now that the API is open to non-browser apps, and given that there is no required coupling between contents of the payload and a Notification object, here is how I changed the payload:

```json
{ 
  "access_token": "...",
  "preferred_locale": "en",
  "notification_id": "12345",
  "notification_type": "follow",
  "title": "So and so followed you",
  "body": "This is my bio",
  "icon": "https://example.com/avatar.png"
}
```

The title, body and icon attributes are included as a fallback so you can construct a minimal notification if you cannot perform a network request to the API to get more data.
Eugen Rochko b4fb766b23
Add REST API for Web Push Notifications subscriptions ()
- POST /api/v1/push/subscription
- PUT /api/v1/push/subscription
- DELETE /api/v1/push/subscription
- New OAuth scope: "push" (required for the above methods)
unarist bfa7f9ebf2 Fix WebPush (regression from ) ()
* Fix NoMethodError in Web::PushSubscription

```
undefined method `site_contact_email' for #<Class:0x00005976d13c40>

/usr/local/bundle/gems/activerecord-5.1.3/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
/usr/local/bundle/gems/attr_encrypted-3.0.3/lib/attr_encrypted.rb:295:in `method_missing'
/usr/local/bundle/gems/attr_encrypted-3.0.3/lib/attr_encrypted/adapters/active_record.rb:129:in `method_missing_with_attr_encrypted'
/mastodon/app/models/web/push_subscription.rb:53:in `push_payload'
```

* Specify serializer in Web::NotificationSerializer
Yamagishi Kazutoshi b767eb7ff8 Add RoutingHelper ()
Eugen Rochko 921cf3e9c8 Fix NoMethodError ()
Eugen Rochko 74437c6bff Refactor Web::PushSubscription, remove welcome message ()
* Refactor Web::PushSubscription, remove welcome message

* Add missing helper

* Use locale of the receiver on push notifications ()

* Remove unused translations

* Fix dir on notifications