You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
822 B
Go
45 lines
822 B
Go
2 years ago
|
package note
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"github.com/ajikamaludin/go-fiber-rest/app/models"
|
||
|
gormdb "github.com/ajikamaludin/go-fiber-rest/pkg/gorm.db"
|
||
|
redisclient "github.com/ajikamaludin/go-fiber-rest/pkg/redis.client"
|
||
|
)
|
||
|
|
||
|
func GetAllNotes(notes *[]models.Note) error {
|
||
|
err := redisclient.Get("allnotes", ¬es)
|
||
|
if err != nil {
|
||
|
db, err := gormdb.GetInstance()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
db.Find(¬es)
|
||
|
|
||
|
redisclient.Set("allnotes", ¬es, 30*time.Second)
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func GetNoteById(id string, note *models.Note) error {
|
||
|
key := "note+" + id
|
||
|
err := redisclient.Get(key, ¬e)
|
||
|
if err != nil {
|
||
|
db, err := gormdb.GetInstance()
|
||
|
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
err = db.First(¬e, id).Error
|
||
|
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
redisclient.Set(key, ¬e, 30*time.Second)
|
||
|
}
|
||
|
return nil
|
||
|
}
|