mirror of
https://github.com/thomiceli/opengist.git
synced 2024-12-22 12:32:40 +00:00
Change gist init url to /init (#109)
This commit is contained in:
parent
6c450c6f3b
commit
5b278e2e86
7 changed files with 26 additions and 29 deletions
|
@ -266,8 +266,8 @@ func (gist *Gist) InitRepository() error {
|
|||
return git.InitRepository(gist.User.Username, gist.Uuid)
|
||||
}
|
||||
|
||||
func (gist *Gist) InitRepositoryViaNewPush(ctx echo.Context) error {
|
||||
return git.InitRepositoryViaNewPush(gist.User.Username, gist.Uuid, ctx)
|
||||
func (gist *Gist) InitRepositoryViaInit(ctx echo.Context) error {
|
||||
return git.InitRepositoryViaInit(gist.User.Username, gist.Uuid, ctx)
|
||||
}
|
||||
|
||||
func (gist *Gist) DeleteRepository() error {
|
||||
|
|
|
@ -67,7 +67,7 @@ func InitRepository(user string, gist string) error {
|
|||
return createDotGitFiles(repositoryPath)
|
||||
}
|
||||
|
||||
func InitRepositoryViaNewPush(user string, gist string, ctx echo.Context) error {
|
||||
func InitRepositoryViaInit(user string, gist string, ctx echo.Context) error {
|
||||
repositoryPath := RepositoryPath(user, gist)
|
||||
|
||||
if err := InitRepository(user, gist); err != nil {
|
||||
|
|
|
@ -2,7 +2,6 @@ package git
|
|||
|
||||
import (
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/thomiceli/opengist/internal/config"
|
||||
"net/http"
|
||||
|
@ -248,7 +247,7 @@ func TestTruncate(t *testing.T) {
|
|||
require.Equal(t, 2, len(content), "Content size is not correct")
|
||||
}
|
||||
|
||||
func TestInitViaNewPush(t *testing.T) {
|
||||
func TestInitViaGitInit(t *testing.T) {
|
||||
setup(t)
|
||||
defer teardown(t)
|
||||
|
||||
|
@ -267,11 +266,9 @@ func TestInitViaNewPush(t *testing.T) {
|
|||
user := "testUser"
|
||||
gist := "testGist"
|
||||
|
||||
// Call InitRepositoryViaNewPush
|
||||
err := InitRepositoryViaNewPush(user, gist, c)
|
||||
err := InitRepositoryViaInit(user, gist, c)
|
||||
|
||||
// Perform assertions
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func commitToBare(t *testing.T, user string, gist string, files map[string]string) {
|
||||
|
|
|
@ -5,7 +5,7 @@ import ogdb "github.com/thomiceli/opengist/internal/db"
|
|||
|
||||
var db *memdb.MemDB
|
||||
|
||||
type GistPush struct {
|
||||
type GistInit struct {
|
||||
UserID uint
|
||||
Gist *ogdb.Gist
|
||||
}
|
||||
|
@ -14,8 +14,8 @@ func Setup() error {
|
|||
var err error
|
||||
schema := &memdb.DBSchema{
|
||||
Tables: map[string]*memdb.TableSchema{
|
||||
"gist_push": {
|
||||
Name: "gist_push",
|
||||
"gist_init": {
|
||||
Name: "gist_init",
|
||||
Indexes: map[string]*memdb.IndexSchema{
|
||||
"id": {
|
||||
Name: "id",
|
||||
|
@ -35,9 +35,9 @@ func Setup() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func InsertGistPush(userId uint, gist *ogdb.Gist) error {
|
||||
func InsertGistInit(userId uint, gist *ogdb.Gist) error {
|
||||
txn := db.Txn(true)
|
||||
if err := txn.Insert("gist_push", &GistPush{
|
||||
if err := txn.Insert("gist_init", &GistInit{
|
||||
UserID: userId,
|
||||
Gist: gist,
|
||||
}); err != nil {
|
||||
|
@ -49,11 +49,11 @@ func InsertGistPush(userId uint, gist *ogdb.Gist) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func GetGistPushAndDelete(userId uint) (*GistPush, error) {
|
||||
func GetGistInitAndDelete(userId uint) (*GistInit, error) {
|
||||
txn := db.Txn(true)
|
||||
defer txn.Abort()
|
||||
|
||||
raw, err := txn.First("gist_push", "id", userId)
|
||||
raw, err := txn.First("gist_init", "id", userId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -62,11 +62,11 @@ func GetGistPushAndDelete(userId uint) (*GistPush, error) {
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
gistPush := raw.(*GistPush)
|
||||
if err := txn.Delete("gist_push", gistPush); err != nil {
|
||||
gistInit := raw.(*GistInit)
|
||||
if err := txn.Delete("gist_init", gistInit); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
txn.Commit()
|
||||
return gistPush, nil
|
||||
return gistInit, nil
|
||||
}
|
||||
|
|
|
@ -51,8 +51,8 @@ func gitHttp(ctx echo.Context) error {
|
|||
|
||||
gist := getData(ctx, "gist").(*db.Gist)
|
||||
|
||||
isPushNew := strings.HasPrefix(ctx.Request().URL.Path, "/push/info/refs")
|
||||
isPushReceive := strings.HasPrefix(ctx.Request().URL.Path, "/push/git-receive-pack")
|
||||
isInit := strings.HasPrefix(ctx.Request().URL.Path, "/init/info/refs")
|
||||
isInitReceive := strings.HasPrefix(ctx.Request().URL.Path, "/init/git-receive-pack")
|
||||
isInfoRefs := strings.HasSuffix(route.gitUrl, "/info/refs$")
|
||||
isPull := ctx.QueryParam("service") == "git-upload-pack" ||
|
||||
strings.HasSuffix(ctx.Request().URL.Path, "git-upload-pack") ||
|
||||
|
@ -92,7 +92,7 @@ func gitHttp(ctx echo.Context) error {
|
|||
return basicAuth(ctx)
|
||||
}
|
||||
|
||||
if !isPushNew && !isPushReceive {
|
||||
if !isInit && !isInitReceive {
|
||||
if gist.ID == 0 {
|
||||
return plainText(ctx, 404, "Check your credentials or make sure you have access to the Gist")
|
||||
}
|
||||
|
@ -122,7 +122,7 @@ func gitHttp(ctx echo.Context) error {
|
|||
return errorRes(401, "Invalid credentials", nil)
|
||||
}
|
||||
|
||||
if isPushNew {
|
||||
if isInit {
|
||||
gist = new(db.Gist)
|
||||
gist.UserID = user.ID
|
||||
gist.User = *user
|
||||
|
@ -133,7 +133,7 @@ func gitHttp(ctx echo.Context) error {
|
|||
gist.Uuid = strings.Replace(uuidGist.String(), "-", "", -1)
|
||||
gist.Title = "gist:" + gist.Uuid
|
||||
|
||||
if err = gist.InitRepositoryViaNewPush(ctx); err != nil {
|
||||
if err = gist.InitRepositoryViaInit(ctx); err != nil {
|
||||
return errorRes(500, "Cannot init repository in the file system", err)
|
||||
}
|
||||
|
||||
|
@ -141,13 +141,13 @@ func gitHttp(ctx echo.Context) error {
|
|||
return errorRes(500, "Cannot init repository in database", err)
|
||||
}
|
||||
|
||||
if err := memdb.InsertGistPush(user.ID, gist); err != nil {
|
||||
if err := memdb.InsertGistInit(user.ID, gist); err != nil {
|
||||
return errorRes(500, "Cannot save the URL for the new Gist", err)
|
||||
}
|
||||
|
||||
setData(ctx, "gist", gist)
|
||||
} else {
|
||||
gistFromMemdb, err := memdb.GetGistPushAndDelete(user.ID)
|
||||
gistFromMemdb, err := memdb.GetGistInitAndDelete(user.ID)
|
||||
if err != nil {
|
||||
return errorRes(500, "Cannot get the gist link from the in memory database", err)
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ func NewServer(isDev bool) *Server {
|
|||
return nil
|
||||
},
|
||||
}))
|
||||
e.Use(middleware.Recover())
|
||||
//e.Use(middleware.Recover())
|
||||
e.Use(middleware.Secure())
|
||||
|
||||
e.Renderer = &Template{
|
||||
|
@ -235,7 +235,7 @@ func NewServer(isDev bool) *Server {
|
|||
}
|
||||
|
||||
if config.C.HttpGit {
|
||||
e.Any("/push/*", gitHttp, gistNewPushSoftInit)
|
||||
e.Any("/init/*", gitHttp, gistNewPushSoftInit)
|
||||
}
|
||||
|
||||
g1.GET("/all", allGists, checkRequireLogin)
|
||||
|
|
|
@ -168,7 +168,7 @@ func validateReservedKeywords(fl validator.FieldLevel) bool {
|
|||
name := fl.Field().String()
|
||||
|
||||
restrictedNames := map[string]struct{}{}
|
||||
for _, restrictedName := range []string{"assets", "register", "login", "logout", "settings", "admin-panel", "all", "search", "push"} {
|
||||
for _, restrictedName := range []string{"assets", "register", "login", "logout", "settings", "admin-panel", "all", "search", "init"} {
|
||||
restrictedNames[restrictedName] = struct{}{}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue