chore: refactoring and optimized code
This commit is contained in:
parent
0350cf4de9
commit
e36797c52d
10 changed files with 103 additions and 100 deletions
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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"))
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "kuma-archive",
|
||||
"version": "0.1.0-alpha.1",
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
|
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue