chore: refactoring and optimized code

This commit is contained in:
WH64 2025-03-24 12:14:58 +09:00
parent 0350cf4de9
commit e36797c52d
10 changed files with 103 additions and 100 deletions

View file

@ -43,65 +43,43 @@ func WorkerRoute(ctx *gin.Context) {
username, password, ok := ctx.Request.BasicAuth()
if !ok {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Abort()
ctx.AbortWithStatus(401)
return
}
ok, err = auth.VerifyToken(username, password)
if err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Abort()
ctx.AbortWithStatus(401)
return
}
if !ok {
ctx.AbortWithStatus(401)
return
}
var acc *service.Account
acc, err = auth.Read(username)
if err != nil {
ctx.JSON(500, gin.H{
"ok": 0,
"errno": "Internal Server Error",
})
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Abort()
ctx.AbortWithStatus(500)
return
}
privdir = service.NewPrivDirService(acc)
if !ok {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Abort()
return
}
var d *service.PrivDir
d, err = privdir.Read(target)
if err != nil {
ctx.JSON(500, gin.H{
"ok": 0,
"errno": "Internal Server Error",
})
ctx.Abort()
ctx.AbortWithStatus(500)
return
}
if d == nil {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Abort()
ctx.AbortWithStatus(401)
return
}

View file

@ -3,6 +3,6 @@ package middleware
import "github.com/gin-gonic/gin"
func Header(ctx *gin.Context) {
ctx.Header("X-Powered-By", "Golang")
ctx.Header("Server", "Golang,Gin")
ctx.Next()
}

View file

@ -18,17 +18,12 @@ func readAcc(ctx *gin.Context) {
ok, err := auth.VerifyToken(username, password)
if err != nil {
ctx.JSON(500, gin.H{
"ok": 0,
"errno": "internal server error!",
})
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
}
if !ok {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "unauthorized",
})
ctx.Status(401)
return
}
@ -49,14 +44,18 @@ func updateAcc(ctx *gin.Context) {
}
ok, err := auth.Verify(username, old)
if err != nil || !ok {
if !ok {
if err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
}
ctx.Status(401)
return
}
if err = auth.Update(username, pass); err != nil {
ctx.Status(500)
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
return
}
@ -73,8 +72,8 @@ func deleteAcc(ctx *gin.Context) {
ok, err := auth.VerifyToken(username, password)
if err != nil {
ctx.Status(500)
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
return
}
@ -84,8 +83,8 @@ func deleteAcc(ctx *gin.Context) {
}
if err = auth.Delete(username); err != nil {
ctx.Status(500)
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
return
}
@ -99,19 +98,19 @@ func login(ctx *gin.Context) {
acc, err := auth.Read(username)
if err != nil {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "username or password not invalid",
})
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(401)
return
}
ok, err := auth.Verify(username, password)
if err != nil || !ok {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "username or password not invalid",
})
var ok bool
ok, err = auth.Verify(username, password)
if !ok {
if err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
}
ctx.Status(401)
return
}
@ -130,7 +129,11 @@ func check(ctx *gin.Context) {
}
ok, err := auth.VerifyToken(username, password)
if err != nil || !ok {
if !ok {
if err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
}
ctx.Status(401)
return
}

View file

@ -12,10 +12,7 @@ func createDir(ctx *gin.Context) {
auth := service.NewAuthService()
username, password, ok := ctx.Request.BasicAuth()
if !ok {
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Status(401)
return
}
@ -24,20 +21,15 @@ func createDir(ctx *gin.Context) {
_, _ = fmt.Fprintln(os.Stderr, err)
}
ctx.JSON(401, gin.H{
"ok": 0,
"errno": "Unauthorized",
})
ctx.Status(401)
return
}
var acc *service.Account
acc, err = auth.Read(username)
if err != nil {
ctx.JSON(500, gin.H{
"ok": 0,
"errno": "Interval Server Error",
})
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
return
}
@ -46,10 +38,8 @@ func createDir(ctx *gin.Context) {
var id string
if id, err = privdir.Create(path); err != nil {
ctx.JSON(500, gin.H{
"ok": 0,
"errno": fmt.Sprintf("'%s' directory is already registered", path),
})
_, _ = fmt.Fprintln(os.Stderr, err)
ctx.Status(500)
return
}

View file

@ -82,18 +82,12 @@ func downloadPath(ctx *gin.Context) {
_, _ = fmt.Fprintln(os.Stderr, err)
}
ctx.JSON(404, gin.H{
"ok": 0,
"errno": fmt.Errorf("path %s is not exist", path),
})
ctx.String(404, fmt.Sprintf("path '%s' is not exist", path))
return
}
if data.IsDir {
ctx.JSON(404, gin.H{
"ok": 0,
"errno": "file is not exist",
})
ctx.String(404, fmt.Sprintf("path '%s' is directory, you cannot download directory", path))
return
}

View file

@ -6,6 +6,7 @@ import (
"encoding/base64"
"encoding/hex"
"fmt"
"git.wh64.net/devproje/kuma-archive/internal/util"
"os"
"strings"
)
@ -23,7 +24,7 @@ func NewAuthService() *AuthService {
}
func init() {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return
@ -50,7 +51,7 @@ func init() {
}
func (s *AuthService) Create(data *Account) error {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return err
}
@ -71,7 +72,7 @@ func (s *AuthService) Create(data *Account) error {
}
func (s *AuthService) Read(username string) (*Account, error) {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return nil, err
}
@ -84,7 +85,7 @@ func (s *AuthService) Read(username string) (*Account, error) {
defer stmt.Close()
var account Account
if err := stmt.QueryRow(username).Scan(&account.Username, &account.Password, &account.Salt); err != nil {
if err = stmt.QueryRow(username).Scan(&account.Username, &account.Password, &account.Salt); err != nil {
return nil, err
}
@ -92,7 +93,7 @@ func (s *AuthService) Read(username string) (*Account, error) {
}
func (s *AuthService) Update(username, password string) error {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return err
}
@ -113,7 +114,7 @@ func (s *AuthService) Update(username, password string) error {
}
func (s *AuthService) Delete(username string) error {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return err
}

View file

@ -2,6 +2,7 @@ package service
import (
"fmt"
"git.wh64.net/devproje/kuma-archive/internal/util"
"github.com/google/uuid"
"os"
"strings"
@ -25,7 +26,7 @@ type test interface {
}
func init() {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return
@ -61,7 +62,7 @@ func NewPrivDirService(acc *Account) *PrivDirService {
}
func (sv *PrivDirService) Create(dirname string) (string, error) {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return "", err
}
@ -79,7 +80,7 @@ func (sv *PrivDirService) Create(dirname string) (string, error) {
}
func (sv *PrivDirService) Read(dirname string) (*PrivDir, error) {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return nil, err
}
@ -102,7 +103,7 @@ func (sv *PrivDirService) Read(dirname string) (*PrivDir, error) {
}
func (sv *PrivDirService) Delete(dirname string) error {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
return err
}
@ -123,7 +124,7 @@ func (sv *PrivDirService) Delete(dirname string) error {
}
func (sv *PrivDirService) Query() []PrivDir {
db, err := Open()
db, err := util.OpenDatabase()
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return nil
@ -157,3 +158,39 @@ func (sv *PrivDirService) Query() []PrivDir {
return dirs
}
func (sv *PrivDirService) QueryUser() []PrivDir {
db, err := util.OpenDatabase()
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return nil
}
defer db.Close()
stmt, err := db.Prepare("select * from PrivDir where owner = ?;")
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return nil
}
defer stmt.Close()
rows, err := stmt.Query(sv.acc.Username)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return nil
}
defer rows.Close()
var dirs []PrivDir
for rows.Next() {
var data PrivDir
if err = rows.Scan(&data.Id, &data.DirName, &data.Owner); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
return nil
}
dirs = append(dirs, data)
}
return dirs
}

View file

@ -1,4 +1,4 @@
package service
package util
import (
"database/sql"
@ -8,6 +8,6 @@ import (
_ "github.com/mattn/go-sqlite3"
)
func Open() (*sql.DB, error) {
func OpenDatabase() (*sql.DB, error) {
return sql.Open("sqlite3", filepath.Join(config.ROOT_DIRECTORY, "data.db"))
}

View file

@ -1,6 +1,6 @@
{
"name": "kuma-archive",
"version": "0.1.0-alpha.1",
"version": "0.1.0",
"type": "module",
"license": "MIT",
"scripts": {

View file

@ -35,10 +35,10 @@ function Settings() {
<h2 className="ka-title">General</h2>
<AccountSetting auth={auth} />
{/* <h2 className="ka-title">Private Directory</h2> */}
{/* <SettingBox> */}
{/* TODO: create private directory setting */}
{/* </SettingBox> */}
<h2 className="ka-title">Private Directory</h2>
<SettingBox>
{/*<></>*/}
</SettingBox>
</div>
);
}