mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +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
 |