mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 18:47:51 +00:00
- The previous gem, `webpush` was last updated a while ago. Also, with the recent ruby upgrade, we needed a fix for zaru/webpush#106. Hence switching to the `web-push` gem where the issues are fixed.
26 lines
782 B
Ruby
26 lines
782 B
Ruby
class VapidService
|
|
def self.public_key
|
|
vapid_keys['public_key']
|
|
end
|
|
|
|
def self.private_key
|
|
vapid_keys['private_key']
|
|
end
|
|
|
|
def self.vapid_keys
|
|
config = GlobalConfig.get('VAPID_KEYS')
|
|
return config['VAPID_KEYS'] if config['VAPID_KEYS'].present?
|
|
|
|
# keys don't exist in the database. so let's generate and save them
|
|
keys = WebPush.generate_key
|
|
# TODO: remove the logic on environment variables when we completely deprecate
|
|
public_key = ENV.fetch('VAPID_PUBLIC_KEY') { keys.public_key }
|
|
private_key = ENV.fetch('VAPID_PRIVATE_KEY') { keys.private_key }
|
|
|
|
i = InstallationConfig.where(name: 'VAPID_KEYS').first_or_create(value: { public_key: public_key, private_key: private_key })
|
|
i.value
|
|
end
|
|
|
|
private_class_method :vapid_keys
|
|
end
|