瀏覽代碼

Небольшие доработки

Book Pauk 6 年之前
父節點
當前提交
f9d8b37b1a

+ 2 - 0
client/components/Reader/ServerStorage/ServerStorage.vue

@@ -205,6 +205,7 @@ class ServerStorage extends Vue {
             if (tries >= maxSetTries) {
             if (tries >= maxSetTries) {
                 //отменять изменения не будем, просто предупредим
                 //отменять изменения не будем, просто предупредим
                 //this.commit('reader/setSettings', this.oldSettings);
                 //this.commit('reader/setSettings', this.oldSettings);
+                console.error(result);
                 this.error('Не удалось отправить настройки на сервер. Данные не сохранены и могут быть перезаписаны.');
                 this.error('Не удалось отправить настройки на сервер. Данные не сохранены и могут быть перезаписаны.');
             } else {
             } else {
                 this.oldSettings = _.cloneDeep(this.settings);
                 this.oldSettings = _.cloneDeep(this.settings);
@@ -279,6 +280,7 @@ class ServerStorage extends Vue {
             if (tries >= maxSetTries) {
             if (tries >= maxSetTries) {
                 this.commit('reader/setProfiles', this.oldProfiles);
                 this.commit('reader/setProfiles', this.oldProfiles);
                 this.checkCurrentProfile();
                 this.checkCurrentProfile();
+                console.error(result);
                 this.error('Не удалось отправить данные на сервер. Изменения отменены.');
                 this.error('Не удалось отправить данные на сервер. Изменения отменены.');
             } else {
             } else {
                 this.oldProfiles = _.cloneDeep(this.profiles);
                 this.oldProfiles = _.cloneDeep(this.profiles);

+ 2 - 2
server/controllers/ReaderController.js

@@ -39,8 +39,8 @@ class ReaderController extends BaseController {
         } catch (e) {
         } catch (e) {
             error = e.message;
             error = e.message;
         }
         }
-        //bad request
-        res.status(400).send({error});
+        //error
+        res.status(500).send({error});
         return false;
         return false;
     }
     }
 
 

+ 9 - 1
server/core/readerStorage.js

@@ -84,11 +84,19 @@ class ReaderStorage {
         }
         }
 
 
         const dbh = await this.storagePool.get();
         const dbh = await this.storagePool.get();
+        await dbh.run('BEGIN');
         try {
         try {
+            const newRev = {};
             for (const id of Object.keys(items)) {
             for (const id of Object.keys(items)) {
                 await dbh.run(SQL`INSERT OR REPLACE INTO storage (id, rev, time, data) VALUES (${id}, ${items[id].rev}, strftime('%s','now'), ${items[id].data})`);
                 await dbh.run(SQL`INSERT OR REPLACE INTO storage (id, rev, time, data) VALUES (${id}, ${items[id].rev}, strftime('%s','now'), ${items[id].data})`);
-                this.cache[id] = {rev: items[id].rev};
+                newRev[id] = {rev: items[id].rev};
             }
             }
+            await dbh.run('COMMIT');
+            
+            Object.assign(this.cache, newRev);
+        } catch (e) {
+            await dbh.run('ROLLBACK');
+            throw e;
         } finally {
         } finally {
             dbh.ret();
             dbh.ret();
         }
         }