|
|
@ -1,9 +1,6 @@
|
|
|
|
package handlers
|
|
|
|
package handlers
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"encoding/json"
|
|
|
|
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"time"
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/ajikamaludin/go-fiber-rest/app/models"
|
|
|
|
"github.com/ajikamaludin/go-fiber-rest/app/models"
|
|
|
@ -14,21 +11,11 @@ import (
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// need to optimize
|
|
|
|
|
|
|
|
var ctx = context.Background()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func GetAllNotes(c *fiber.Ctx) error {
|
|
|
|
func GetAllNotes(c *fiber.Ctx) error {
|
|
|
|
var notes []models.Note
|
|
|
|
var notes []models.Note
|
|
|
|
|
|
|
|
|
|
|
|
redis := redisclient.GetInstance()
|
|
|
|
err := redisclient.Get("allnotes", ¬es)
|
|
|
|
renotes, err := redis.Get(ctx, "allnotes").Result()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
fmt.Println("err", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
err = json.Unmarshal([]byte(renotes), ¬es)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("[GetAllNotes][REDIS]Empty Notes")
|
|
|
|
|
|
|
|
db, err := gormdb.GetInstance()
|
|
|
|
db, err := gormdb.GetInstance()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
|
|
@ -39,25 +26,7 @@ func GetAllNotes(c *fiber.Ctx) error {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
db.Find(¬es)
|
|
|
|
db.Find(¬es)
|
|
|
|
|
|
|
|
|
|
|
|
val, err := json.Marshal(¬es)
|
|
|
|
redisclient.Set("allnotes", ¬es, 30*time.Second)
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
|
|
|
|
|
|
|
"status": constants.STATUS_FAIL,
|
|
|
|
|
|
|
|
"message": "Internal Service Error",
|
|
|
|
|
|
|
|
"error": err.Error(),
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
err = redis.Set(ctx, "allnotes", string(val), 30*time.Second).Err()
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
|
|
|
|
|
|
|
"status": constants.STATUS_FAIL,
|
|
|
|
|
|
|
|
"message": "Internal Service Error",
|
|
|
|
|
|
|
|
"error": err.Error(),
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
fmt.Println("[GetAllNotes][REDIS]Get Notes")
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
|
|
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
|
|
@ -69,14 +38,17 @@ func GetAllNotes(c *fiber.Ctx) error {
|
|
|
|
|
|
|
|
|
|
|
|
func GetNoteById(c *fiber.Ctx) error {
|
|
|
|
func GetNoteById(c *fiber.Ctx) error {
|
|
|
|
id := c.Params("id")
|
|
|
|
id := c.Params("id")
|
|
|
|
|
|
|
|
note := models.Note{}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
key := "note+" + id
|
|
|
|
|
|
|
|
err := redisclient.Get(key, ¬e)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
db, err := gormdb.GetInstance()
|
|
|
|
db, err := gormdb.GetInstance()
|
|
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
note := models.Note{}
|
|
|
|
|
|
|
|
err = db.First(¬e, id).Error
|
|
|
|
err = db.First(¬e, id).Error
|
|
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
@ -86,6 +58,9 @@ func GetNoteById(c *fiber.Ctx) error {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
redisclient.Set(key, ¬e, 30*time.Second)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
|
|
|
return c.Status(fiber.StatusOK).JSON(fiber.Map{
|
|
|
|
"status": constants.STATUS_OK,
|
|
|
|
"status": constants.STATUS_OK,
|
|
|
|
"message": "note found",
|
|
|
|
"message": "note found",
|
|
|
|