Skip to content

Commit

Permalink
Change gist init url to /init (#109)
Browse files Browse the repository at this point in the history
  • Loading branch information
thomiceli authored Sep 25, 2023
1 parent 6c450c6 commit 5b278e2
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 29 deletions.
4 changes: 2 additions & 2 deletions internal/db/gist.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 1 addition & 1 deletion internal/git/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
9 changes: 3 additions & 6 deletions internal/git/commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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)

Expand All @@ -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) {
Expand Down
20 changes: 10 additions & 10 deletions internal/memdb/memdb.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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",
Expand All @@ -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 {
Expand All @@ -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
}
Expand All @@ -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
}
14 changes: 7 additions & 7 deletions internal/web/git_http.go
Original file line number Diff line number Diff line change
Expand Up @@ -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") ||
Expand Down Expand Up @@ -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")
}
Expand Down Expand Up @@ -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
Expand All @@ -133,21 +133,21 @@ 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)
}

if err = gist.Create(); err != nil {
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)
}
Expand Down
4 changes: 2 additions & 2 deletions internal/web/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
Expand Down Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion internal/web/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{}{}
}

Expand Down

0 comments on commit 5b278e2

Please sign in to comment.