Move web-push-config endpoint to config.js
This commit is contained in:
		
							parent
							
								
									9e0687e142
								
							
						
					
					
						commit
						e8139ad655
					
				
					 7 changed files with 11 additions and 57 deletions
				
			
		|  | @ -8,7 +8,6 @@ import { | |||
|   topicUrlJsonPollWithSince, | ||||
|   topicUrlWebPushSubscribe, | ||||
|   topicUrlWebPushUnsubscribe, | ||||
|   webPushConfigUrl, | ||||
| } from "./utils"; | ||||
| import userManager from "./UserManager"; | ||||
| import { fetchOrThrow } from "./errors"; | ||||
|  | @ -117,27 +116,8 @@ class Api { | |||
|     throw new Error(`Unexpected server response ${response.status}`); | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|    * @returns {Promise<{ public_key: string } | undefined>} | ||||
|    */ | ||||
|   async getWebPushConfig(baseUrl) { | ||||
|     const response = await fetch(webPushConfigUrl(baseUrl)); | ||||
| 
 | ||||
|     if (response.ok) { | ||||
|       return response.json(); | ||||
|     } | ||||
| 
 | ||||
|     if (response.status === 404) { | ||||
|       // web push is not enabled
 | ||||
|       return undefined; | ||||
|     } | ||||
| 
 | ||||
|     throw new Error(`Unexpected server response ${response.status}`); | ||||
|   } | ||||
| 
 | ||||
|   async subscribeWebPush(baseUrl, topic, browserSubscription) { | ||||
|     const user = await userManager.get(baseUrl); | ||||
| 
 | ||||
|     const url = topicUrlWebPushSubscribe(baseUrl, topic); | ||||
|     console.log(`[Api] Sending Web Push Subscription ${url}`); | ||||
| 
 | ||||
|  | @ -163,7 +143,9 @@ class Api { | |||
|     const response = await fetch(url, { | ||||
|       method: "POST", | ||||
|       headers: maybeWithAuth({}, user), | ||||
|       body: JSON.stringify({ endpoint: subscription.webPushEndpoint }), | ||||
|       body: JSON.stringify({ | ||||
|         endpoint: subscription.webPushEndpoint | ||||
|       }), | ||||
|     }); | ||||
| 
 | ||||
|     if (response.ok) { | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ class Notifier { | |||
|   } | ||||
| 
 | ||||
|   async subscribeWebPush(baseUrl, topic) { | ||||
|     if (!this.supported() || !this.pushSupported()) { | ||||
|     if (!this.supported() || !this.pushSupported() || !config.enable_web_push) { | ||||
|       return {}; | ||||
|     } | ||||
| 
 | ||||
|  | @ -71,21 +71,12 @@ class Notifier { | |||
|     } | ||||
| 
 | ||||
|     try { | ||||
|       const webPushConfig = await api.getWebPushConfig(baseUrl); | ||||
| 
 | ||||
|       if (!webPushConfig) { | ||||
|         console.log("[Notifier.subscribeWebPush] Web push not configured on server"); | ||||
|       } | ||||
| 
 | ||||
|       const browserSubscription = await registration.pushManager.subscribe({ | ||||
|         userVisibleOnly: true, | ||||
|         applicationServerKey: urlB64ToUint8Array(webPushConfig.public_key), | ||||
|         applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), | ||||
|       }); | ||||
| 
 | ||||
|       await api.subscribeWebPush(baseUrl, topic, browserSubscription); | ||||
| 
 | ||||
|       console.log("[Notifier.subscribeWebPush] Successfully subscribed to web push"); | ||||
| 
 | ||||
|       return browserSubscription; | ||||
|     } catch (e) { | ||||
|       console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); | ||||
|  |  | |||
|  | @ -23,7 +23,6 @@ export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/aut | |||
| export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/subscribe`; | ||||
| export const topicUrlWebPushUnsubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/unsubscribe`; | ||||
| export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); | ||||
| export const webPushConfigUrl = (baseUrl) => `${baseUrl}/v1/web-push-config`; | ||||
| export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; | ||||
| export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; | ||||
| export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue