diff --git a/main.go b/main.go index ee4f43d..7a95e82 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( //"fmt" "fmt" "os" + "path/filepath" _ "github.com/go-sql-driver/mysql" // для связи с mysql "github.com/jmoiron/sqlx" @@ -127,6 +128,7 @@ func albums(db *sqlx.DB) func(iris.Party) { }) } } + func images(db *sqlx.DB) func(iris.Party) { return func(r iris.Party) { r.Get("/list", func(ctx iris.Context) { @@ -138,20 +140,38 @@ func images(db *sqlx.DB) func(iris.Party) { id := ctx.Params().Get("id") filename := ctx.Request().URL.Query().Get("filename") ctx.Application().Logger().Infof("удаление картинки[%s]: %s", id, filename) - - ctx.JSON(iris.Map{"filename": filename}) + err := moveFile(filename, "trash") + checkError("trash file", err) + ctx.JSON(iris.Map{"status": iris.StatusOK}) }) r.Get("/move/{id}", func(ctx iris.Context) { id := ctx.Params().Get("id") filename := ctx.Request().URL.Query().Get("filename") ctx.Application().Logger().Infof("перемещение картинки[%s]: %s в [%s]", id, filename, selected) - - ctx.JSON(iris.Map{"filename": filename}) + err := moveFile(filename, selected) + checkError("move file", err) + ctx.JSON(iris.Map{"status": iris.StatusOK}) }) } } +// перемещает файл из oldLocation в newLocation +func moveFile(filename, album string) error { + albumDir := filepath.Join("d:/pics-move", album) + if _, err := os.Stat(albumDir); os.IsNotExist(err) { + err := os.Mkdir(albumDir, 0755) + checkError("mkdir", err) + } + oldLocation := filepath.Join("d:/pics", filename) + newLocation := filepath.Join(albumDir, filename) + err := os.Rename(oldLocation, newLocation) + if err != nil { + return err + } + return nil +} + func getLocalImages() []Image { images := []Image{} list, err := os.ReadDir("d:/pics") @@ -168,15 +188,15 @@ type Image struct { Url string } -func list(ctx iris.Context) { - images := []Image{ - {Id: 1, Url: "первый"}, - {Id: 2, Url: "второй"}, - } - ctx.Application().Logger().Infof("Person: %#+v", "Проверка") +// func list(ctx iris.Context) { +// images := []Image{ +// {Id: 1, Url: "первый"}, +// {Id: 2, Url: "второй"}, +// } +// ctx.Application().Logger().Infof("Person: %#+v", "Проверка") - ctx.JSON(images) -} +// ctx.JSON(images) +// } // ============================ разные утилиты ==========================