瀏覽代碼

:art: 重置数据仓库 https://github.com/siyuan-note/siyuan/issues/5212

Liang Ding 3 年之前
父節點
當前提交
b885773a7e

+ 4 - 1
app/appearance/langs/en_US.json

@@ -886,6 +886,9 @@
     "140": "Failed to create data snapshot: %s",
     "140": "Failed to create data snapshot: %s",
     "141": "Failed to rollback data snapshot",
     "141": "Failed to rollback data snapshot",
     "142": "Snapshot memo cannot be empty",
     "142": "Snapshot memo cannot be empty",
-    "143": "Creating data snapshot..."
+    "143": "Creating data snapshot...",
+    "144": "Resetting data repository...",
+    "145": "Data repository reset completed",
+    "146": "Failed to reset data repository: %s"
   }
   }
 }
 }

+ 4 - 1
app/appearance/langs/fr_FR.json

@@ -886,6 +886,9 @@
     "140": "Échec de la création de l'instantané des données: %s",
     "140": "Échec de la création de l'instantané des données: %s",
     "141": "Échec de la restauration de l'instantané des données",
     "141": "Échec de la restauration de l'instantané des données",
     "142": "Le mémo d'instantané ne peut pas être vide",
     "142": "Le mémo d'instantané ne peut pas être vide",
-    "143": "Création d'un instantané de données..."
+    "143": "Création d'un instantané de données...",
+    "144": "Réinitialisation du référentiel de données...",
+    "145": "Réinitialisation du référentiel de données terminée",
+    "146": "Échec de la réinitialisation du référentiel de données : %s"
   }
   }
 }
 }

+ 4 - 1
app/appearance/langs/zh_CHT.json

@@ -885,6 +885,9 @@
     "140": "創建數據快照失敗:%s",
     "140": "創建數據快照失敗:%s",
     "141": "回滾數據快照失敗",
     "141": "回滾數據快照失敗",
     "142": "快照備註不能為空",
     "142": "快照備註不能為空",
-    "143": "正在創建數據快照..."
+    "143": "正在創建數據快照...",
+    "144": "正在重置數據倉庫...",
+    "145": "數據倉庫重置完畢",
+    "146": "重置數據倉庫失敗:%s"
   }
   }
 }
 }

+ 4 - 1
app/appearance/langs/zh_CN.json

@@ -887,6 +887,9 @@
     "140": "创建数据快照失败:%s",
     "140": "创建数据快照失败:%s",
     "141": "回滚数据快照失败",
     "141": "回滚数据快照失败",
     "142": "快照备注不能为空",
     "142": "快照备注不能为空",
-    "143": "正在创建数据快照..."
+    "143": "正在创建数据快照...",
+    "144": "正在重置数据仓库...",
+    "145": "数据仓库重置完毕",
+    "146": "重置数据仓库失败:%s"
   }
   }
 }
 }

+ 15 - 0
kernel/api/repo.go

@@ -116,3 +116,18 @@ func initRepoKey(c *gin.Context) {
 		"key": hex.EncodeToString(model.Conf.Repo.Key),
 		"key": hex.EncodeToString(model.Conf.Repo.Key),
 	}
 	}
 }
 }
+
+func resetRepo(c *gin.Context) {
+	ret := gulu.Ret.NewResult()
+	defer c.JSON(http.StatusOK, ret)
+
+	if err := model.ResetRepo(); nil != err {
+		ret.Code = -1
+		ret.Msg = fmt.Sprintf(model.Conf.Language(146), err.Error())
+		return
+	}
+
+	ret.Data = map[string]interface{}{
+		"key": hex.EncodeToString(model.Conf.Repo.Key),
+	}
+}

+ 1 - 0
kernel/api/router.go

@@ -248,6 +248,7 @@ func ServeAPI(ginServer *gin.Engine) {
 	ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME)
 	ginServer.Handle("POST", "/api/bazaar/getBazaarPackageREAME", model.CheckAuth, getBazaarPackageREAME)
 
 
 	ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey)
 	ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey)
+	ginServer.Handle("POST", "/api/repo/resetRepo", model.CheckAuth, resetRepo)
 	ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey)
 	ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey)
 	ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo)
 	ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo)
 	ginServer.Handle("POST", "/api/repo/checkoutRepo", model.CheckAuth, checkoutRepo)
 	ginServer.Handle("POST", "/api/repo/checkoutRepo", model.CheckAuth, checkoutRepo)

+ 17 - 0
kernel/model/repository.go

@@ -85,6 +85,23 @@ func ImportRepoKey(hexKey string) (err error) {
 	return
 	return
 }
 }
 
 
+func ResetRepo() (err error) {
+	msgId := util.PushMsg(Conf.Language(144), 1000*60)
+
+	if err = os.RemoveAll(Conf.Repo.GetSaveDir()); nil != err {
+		return
+	}
+	if err = os.MkdirAll(Conf.Repo.GetSaveDir(), 0755); nil != err {
+		return
+	}
+
+	Conf.Repo.Key = nil
+	Conf.Save()
+
+	util.PushUpdateMsg(msgId, Conf.Language(145), 3000)
+	return
+}
+
 func InitRepoKey() (err error) {
 func InitRepoKey() (err error) {
 	msgId := util.PushMsg(Conf.Language(136), 1000*7)
 	msgId := util.PushMsg(Conf.Language(136), 1000*7)