Browse Source

Some updates after a quick test run

service-worker-final
Matthew Raymer 12 months ago
parent
commit
3b32c2b156
  1. 10
      src/App.vue
  2. 4
      src/libs/endorserServer.ts
  3. 4
      src/views/ContactsView.vue
  4. 81
      sw_scripts/safari-notifications.js

10
src/App.vue

@ -266,19 +266,19 @@ interface ServiceWorkerMessage {
type: string; type: string;
data: string; data: string;
} }
interface ServiceWorkerResponse { interface ServiceWorkerResponse {
// Define the properties and their types // Define the properties and their types
success: boolean; success: boolean;
message?: string; message?: string;
} }
// Example interface for error // Example interface for error
interface ErrorResponse { interface ErrorResponse {
message: string; message: string;
// Other properties as needed // Other properties as needed
} }
interface VapidResponse { interface VapidResponse {
data: { data: {
vapidKey: string; vapidKey: string;
@ -302,7 +302,7 @@ export default class App extends Vue {
console.error("API error", error); console.error("API error", error);
}); });
} }
private sendMessageToServiceWorker( private sendMessageToServiceWorker(
message: ServiceWorkerMessage, message: ServiceWorkerMessage,
): Promise<unknown> { ): Promise<unknown> {
@ -342,7 +342,7 @@ export default class App extends Vue {
.then(() => this.requestNotificationPermission()) .then(() => this.requestNotificationPermission())
.catch((error) => Promise.reject(error)); .catch((error) => Promise.reject(error));
} }
private sendSecretToServiceWorker(secret: string): Promise<void> { private sendSecretToServiceWorker(secret: string): Promise<void> {
const message: ServiceWorkerMessage = { const message: ServiceWorkerMessage = {
type: "SEND_LOCAL_DATA", type: "SEND_LOCAL_DATA",

4
src/libs/endorserServer.ts

@ -157,8 +157,8 @@ export function didInfo(
return contact return contact
? contact.name || "Contact With No Name" ? contact.name || "Contact With No Name"
: isHiddenDid(did) : isHiddenDid(did)
? "Someone Not In Network" ? "Someone Not In Network"
: "Someone Not In Contacts"; : "Someone Not In Contacts";
} }
export interface ResultWithType { export interface ResultWithType {

4
src/views/ContactsView.vue

@ -67,8 +67,8 @@
showGiveTotals showGiveTotals
? "Total" ? "Total"
: showGiveConfirmed : showGiveConfirmed
? "Confirmed" ? "Confirmed"
: "Unconfirmed" : "Unconfirmed"
}} }}
</button> </button>
<br /> <br />

81
sw_scripts/safari-notifications.js

@ -384,61 +384,56 @@ async function getSettingById(id) {
}); });
} }
async function setMostRecentNotified(id) { async function setMostRecentNotified(id) {
try { try {
const db = await openIndexedDB("TimeSafari"); const db = await openIndexedDB("TimeSafari");
const transaction = db.transaction("settings", "readwrite"); const transaction = db.transaction("settings", "readwrite");
const store = transaction.objectStore("settings"); const store = transaction.objectStore("settings");
const data = await getRecord(store, 1); const data = await getRecord(store, 1);
if (data) { if (data) {
data["lastNotifiedClaimId"] = id; data["lastNotifiedClaimId"] = id;
await updateRecord(store, data); await updateRecord(store, data);
} else { } else {
console.error("Record not found"); console.error("Record not found");
}
transaction.oncomplete = () => db.close();
} catch (error) {
console.error("Database error: " + error.message);
} }
}
transaction.oncomplete = () => db.close();
} catch (error) {
console.error("Database error: " + error.message);
}
}
function openIndexedDB(dbName) { function openIndexedDB(dbName) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const request = indexedDB.open(dbName); const request = indexedDB.open(dbName);
request.onerror = () => reject(request.error); request.onerror = () => reject(request.error);
request.onsuccess = () => resolve(request.result); request.onsuccess = () => resolve(request.result);
request.onupgradeneeded = (event) => { request.onupgradeneeded = (event) => {
const db = event.target.result; const db = event.target.result;
if (!db.objectStoreNames.contains("settings")) { if (!db.objectStoreNames.contains("settings")) {
db.createObjectStore("settings"); db.createObjectStore("settings");
} }
}; };
}); });
} }
function getRecord(store, key) { function getRecord(store, key) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const request = store.get(key); const request = store.get(key);
request.onsuccess = () => resolve(request.result); request.onsuccess = () => resolve(request.result);
request.onerror = () => reject(request.error); request.onerror = () => reject(request.error);
}); });
} }
function updateRecord(store, data) { function updateRecord(store, data) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const request = store.put(data); const request = store.put(data);
request.onsuccess = () => resolve(request.result); request.onsuccess = () => resolve(request.result);
request.onerror = () => reject(request.error); request.onerror = () => reject(request.error);
}); });
} }
async function fetchAllAccounts() { async function fetchAllAccounts() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let openRequest = indexedDB.open("TimeSafariAccounts"); let openRequest = indexedDB.open("TimeSafariAccounts");
@ -531,7 +526,7 @@ async function getNotificationCount() {
} }
const most_recent_notified = claims[0]["id"]; const most_recent_notified = claims[0]["id"];
await setMostRecentNotified(most_recent_notified); await setMostRecentNotified(most_recent_notified);
return "TEST"; return "TEST";
} else { } else {
console.error(response.status); console.error(response.status);
} }

Loading…
Cancel
Save