fix(CurrentRecipePointer): 🐛 Fix cache recipe
Remove continue last opened version
This commit is contained in:
parent
4219c1cb43
commit
2b8745679f
16 changed files with 481 additions and 174 deletions
|
|
@ -3,6 +3,7 @@ package routers
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"image"
|
||||
"image/png"
|
||||
"net/http"
|
||||
"os"
|
||||
|
|
@ -15,6 +16,7 @@ import (
|
|||
"recipe-manager/services/logger"
|
||||
"recipe-manager/services/recipe"
|
||||
"recipe-manager/services/sheet"
|
||||
"recipe-manager/services/user"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
|
@ -31,6 +33,7 @@ type RecipeRouter struct {
|
|||
recipeService recipe.RecipeService
|
||||
taoLogger *logger.TaoLogger
|
||||
cache_db *data.RedisCli
|
||||
userService user.UserService
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
@ -38,13 +41,14 @@ var (
|
|||
updateMutex = sync.Mutex{}
|
||||
)
|
||||
|
||||
func NewRecipeRouter(data *data.Data, recipeService recipe.RecipeService, sheetService sheet.SheetService, taoLogger *logger.TaoLogger, cache *data.RedisCli) *RecipeRouter {
|
||||
func NewRecipeRouter(data *data.Data, recipeService recipe.RecipeService, sheetService sheet.SheetService, taoLogger *logger.TaoLogger, cache *data.RedisCli, userService user.UserService) *RecipeRouter {
|
||||
return &RecipeRouter{
|
||||
data,
|
||||
sheetService,
|
||||
recipeService,
|
||||
taoLogger,
|
||||
cache,
|
||||
userService,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -214,6 +218,12 @@ func (rr *RecipeRouter) Route(r chi.Router) {
|
|||
// ====================== Handler =================================
|
||||
|
||||
func (rr *RecipeRouter) dashBoard(w http.ResponseWriter, r *http.Request) {
|
||||
// test socket
|
||||
// u := r.Context().Value("user").(*models.User)
|
||||
// // rr.taoLogger.Log.Debug("SockConn", zap.Any("Socket", rr.socket), zap.Any("user", u))
|
||||
// userNewSocket := data.NewSocketCli(u.Name, "recipe:response")
|
||||
// rr.taoLogger.Log.Debug("SockConn", zap.Any("Socket", userNewSocket))
|
||||
|
||||
w.Header().Add("Content-Type", "application/json")
|
||||
|
||||
country := r.URL.Query().Get("country")
|
||||
|
|
@ -802,22 +812,40 @@ func (rr *RecipeRouter) getImageOfProductCode(w http.ResponseWriter, r *http.Req
|
|||
return
|
||||
}
|
||||
|
||||
// read image
|
||||
imgFile, err := os.Open(fullPath)
|
||||
// TODO: get from cache
|
||||
var imgResult image.Image
|
||||
// try cache
|
||||
img, err := rr.cache_db.GetCacheImage(fullPath)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
defer imgFile.Close()
|
||||
// read image
|
||||
imgFile, err := os.Open(fullPath)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
defer imgFile.Close()
|
||||
|
||||
thisImage, err := png.Decode(imgFile)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
thisImage, err := png.Decode(imgFile)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
|
||||
imgResult = thisImage
|
||||
|
||||
// set cache
|
||||
err = rr.cache_db.SetImageToCache(fullPath, thisImage)
|
||||
if err != nil {
|
||||
rr.taoLogger.Log.Debug("CacheImage.SetError", zap.Any("error", err))
|
||||
}
|
||||
|
||||
} else {
|
||||
imgResult = img
|
||||
rr.taoLogger.Log.Debug("CacheImage.OK", zap.Any("status", imgResult))
|
||||
}
|
||||
|
||||
// write image
|
||||
png.Encode(w, thisImage)
|
||||
png.Encode(w, imgResult)
|
||||
}
|
||||
|
||||
func APIhandler(w http.ResponseWriter, r *http.Request) bool {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue