1
0
Fork 0
mirror of https://github.com/binwiederhier/ntfy.git synced 2025-06-18 02:23:12 +02:00

Refactor to make it more like the Android app

This commit is contained in:
Philipp Heckel 2022-02-23 20:30:12 -05:00
parent 415ab57749
commit 3fac1c3432
9 changed files with 196 additions and 111 deletions
web/src/app

44
web/src/app/Repository.js Normal file
View file

@ -0,0 +1,44 @@
import {topicUrl} from "./utils";
import Subscription from "./Subscription";
export class Repository {
loadSubscriptions() {
console.log(`[Repository] Loading subscriptions from localStorage`);
const subscriptions = {};
const rawSubscriptions = localStorage.getItem('subscriptions');
if (rawSubscriptions === null) {
return {};
}
try {
const serializedSubscriptions = JSON.parse(rawSubscriptions);
serializedSubscriptions.forEach(s => {
const subscription = new Subscription(s.baseUrl, s.topic);
subscription.notifications = s.notifications;
subscriptions[topicUrl(s.baseUrl, s.topic)] = subscription;
});
return subscriptions;
} catch (e) {
console.log("LocalStorage", `Unable to deserialize subscriptions: ${e.message}`)
return {};
}
}
saveSubscriptions(subscriptions) {
return;
console.log(`[Repository] Saving subscriptions ${subscriptions} to localStorage`);
const serializedSubscriptions = Object.keys(subscriptions).map(k => {
const subscription = subscriptions[k];
return {
baseUrl: subscription.baseUrl,
topic: subscription.topic,
notifications: subscription.notifications
}
});
localStorage.setItem('subscriptions', JSON.stringify(serializedSubscriptions));
}
}
const repository = new Repository();
export default repository;