This commit is contained in:
Liang Ding 2022-06-13 22:50:58 +08:00
parent 5b308d2817
commit dbbfaa4af5
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
9 changed files with 83 additions and 7 deletions

View file

@ -27,6 +27,27 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func getRepoFile(c *gin.Context) {
}
func checkoutRepo(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
id := arg["id"].(string)
if err := model.CheckoutRepo(id); nil != err {
ret.Code = -1
ret.Msg = model.Conf.Language(141)
return
}
}
func getRepoIndexLogs(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
@ -60,7 +81,7 @@ func indexRepo(c *gin.Context) {
message := arg["message"].(string)
if err := model.IndexRepo(message); nil != err {
ret.Code = -1
ret.Msg = model.Conf.Language(137)
ret.Msg = model.Conf.Language(140)
return
}
}

View file

@ -249,7 +249,9 @@ func ServeAPI(ginServer *gin.Engine) {
ginServer.Handle("POST", "/api/repo/initRepoKey", model.CheckAuth, initRepoKey)
ginServer.Handle("POST", "/api/repo/importRepoKey", model.CheckAuth, importRepoKey)
ginServer.Handle("POST", "/api/repo/indexRepo", model.CheckAuth, indexRepo)
ginServer.Handle("POST", "/api/repo/checkoutRepo", model.CheckAuth, checkoutRepo)
ginServer.Handle("POST", "/api/repo/getRepoIndexLogs", model.CheckAuth, getRepoIndexLogs)
ginServer.Handle("POST", "/api/repo/getRepoFile", model.CheckAuth, getRepoFile)
ginServer.Handle("POST", "/api/notification/pushMsg", model.CheckAuth, pushMsg)
ginServer.Handle("POST", "/api/notification/pushErrMsg", model.CheckAuth, pushErrMsg)

View file

@ -40,7 +40,7 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/qiniu/go-sdk/v7 v7.13.0
github.com/radovskyb/watcher v1.0.7
github.com/siyuan-note/dejavu v0.0.0-20220613134332-45af7919bc94
github.com/siyuan-note/dejavu v0.0.0-20220613144035-412877c5ffa6
github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676
github.com/vmihailenco/msgpack/v5 v5.3.5
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673

View file

@ -421,6 +421,8 @@ github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJV
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/siyuan-note/dejavu v0.0.0-20220613134332-45af7919bc94 h1:NRlFUCAFPEMWoBrvuEQ0csBUoyKvWtQ67g6ctGH5kVA=
github.com/siyuan-note/dejavu v0.0.0-20220613134332-45af7919bc94/go.mod h1:pZFVF2imlfZMT5w6899ZwXCLKVccZ9GDJzdLHJ+ONik=
github.com/siyuan-note/dejavu v0.0.0-20220613144035-412877c5ffa6 h1:YwbEqSGcdnS15HakNOZpCtI80rthjQM87FXHRsYIa6M=
github.com/siyuan-note/dejavu v0.0.0-20220613144035-412877c5ffa6/go.mod h1:pZFVF2imlfZMT5w6899ZwXCLKVccZ9GDJzdLHJ+ONik=
github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676 h1:QB9TjJQFhXhZ6dAtPpY02DlzHAQm1C+WqZq6OadG8mI=
github.com/siyuan-note/encryption v0.0.0-20220612074546-f1dd94fe8676/go.mod h1:H8fyqqAbp9XreANjeSbc72zEdFfKTXYN34tc1TjZwtw=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=

View file

@ -29,10 +29,20 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func GetRepoFile(id string) (ret []byte, err error) {
//repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key)
//if nil != err {
// util.LogErrorf("init repo failed: %s", err)
// return
//}
return
}
func GetRepoIndexLogs(page int) (logs []*dejavu.Log, err error) {
repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key)
if nil != err {
util.LogErrorf("new repo failed: %s", err)
util.LogErrorf("init repo failed: %s", err)
return
}
@ -93,6 +103,38 @@ func InitRepoKey() (err error) {
return
}
var checkoutCallbacks = map[string]dejavu.Callback{
"walkData": func(context, arg interface{}, err error) {
context.(func(msg string))(arg.(string))
},
"upsertFile": func(context, arg interface{}, err error) {
context.(func(msg string))(arg.(*entity.File).Path)
},
"removeFile": func(context, arg interface{}, err error) {
context.(func(msg string))(arg.(*entity.File).Path)
},
}
func CheckoutRepo(id string) (err error) {
if 1 > len(Conf.Repo.Key) {
err = errors.New("repo key is nil")
return
}
repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key)
if nil != err {
util.LogErrorf("init repo failed: %s", err)
return
}
syncLock.Lock()
defer syncLock.Unlock()
filesys.ReleaseAllFileLocks()
err = repo.Checkout(id, util.PushEndlessProgress, checkoutCallbacks)
util.PushClearProgress()
return
}
var indexCallbacks = map[string]dejavu.Callback{
"walkData": func(context, arg interface{}, err error) {
context.(func(msg string))(arg.(string))
@ -113,6 +155,7 @@ func IndexRepo(message string) (err error) {
repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key)
if nil != err {
util.LogErrorf("init repo failed: %s", err)
return
}