(WIP) Refresh & Access

This commit is contained in:
2021-01-17 23:56:56 -05:00
parent cd97b6262f
commit 377903f7a1
14 changed files with 366 additions and 136 deletions

View File

@@ -34,6 +34,7 @@ func NewMgr(c *config.Config) *DBManager {
// Initialize database
dbm.db.AutoMigrate(&models.ServerSetting{})
dbm.db.AutoMigrate(&models.Device{})
dbm.db.AutoMigrate(&models.User{})
dbm.db.AutoMigrate(&models.MediaItem{})
dbm.db.AutoMigrate(&models.Tag{})
@@ -83,71 +84,3 @@ func (dbm *DBManager) ItemsFromAlbum(user models.User, album models.Album) []mod
// INNER JOIN MediaItems ON MediaAlbums.mediaID = MediaItems.mediaID
// WHERE MediaAlbums.albumID = ? AND MediaItems.userID = ?`, albumID, userID)
}
// func ItemsFromTags(userID int, tagID int) []MediaItem {
// return nil
// }
//
// func IndexMediaItems(newItems []MediaItem) {
// }
// func PopulateTestData() {
// user1 := User{Username: "Evan", Email: "evan@reichard.io", FirstName: "Evan", LastName: "Reichard", AuthType: "LDAP", Salt: "1234", HashedPWSalt: "1234"}
// user2 := User{Username: "Ryan", Email: "ryan@example.com", FirstName: "Ryan", LastName: "Dunfrey", AuthType: "Local", Salt: "2345", HashedPWSalt: "2345"}
// user3 := User{Username: "Bill", Email: "bill@example.com", FirstName: "Bill", LastName: "Smith", AuthType: "LDAP", Salt: "3456", HashedPWSalt: "3456"}
//
// mi1 := MediaItem{
// User: user1,
// EXIFDate: time.Now(),
// Latitude: "1234",
// Longitude: "1234",
// RelPath: "./1234.jpg",
// Tags: []Tag{
// {Name: "Tag1"},
// {Name: "Tag2"},
// },
// Albums: []Album{
// {Name: "Album1"},
// {Name: "Album2"},
// },
// }
//
// mi2 := MediaItem{
// User: user2,
// EXIFDate: time.Now(),
// Latitude: "1234",
// Longitude: "1234",
// RelPath: "./1234.jpg",
// Tags: []Tag{
// {Name: "Tag3"},
// {Name: "Tag4"},
// },
// Albums: []Album{
// {Name: "Album3"},
// {Name: "Album4"},
// },
// }
//
// mi3 := MediaItem{
// User: user3,
// EXIFDate: time.Now(),
// Latitude: "1234",
// Longitude: "1234",
// RelPath: "./1234.jpg",
// Tags: []Tag{
// {Name: "Tag4"},
// {Name: "Tag5"},
// },
// Albums: []Album{
// {Name: "Album1"},
// {Name: "Album7"},
// },
// }
//
// // db.Create(&user1)
// // db.Create(&user2)
// // db.Create(&user3)
// db.Create(&mi1)
// db.Create(&mi2)
// db.Create(&mi3)
// }

44
internal/db/devices.go Normal file
View File

@@ -0,0 +1,44 @@
package db
import (
"errors"
"gorm.io/gorm"
"golang.org/x/crypto/bcrypt"
log "github.com/sirupsen/logrus"
"reichard.io/imagini/internal/models"
)
func (dbm *DBManager) CreateDevice(device models.Device) error {
log.Info("[query] Creating device: ", device.Name)
_, err := dbm.Device(device)
if !errors.Is(err, gorm.ErrRecordNotFound) {
log.Warn("[query] Device already exists: ", device.Name)
return errors.New("Device already exists")
}
// Generate random password
refreshToken := "asd123"
hashedToken, err := bcrypt.GenerateFromPassword([]byte(refreshToken), bcrypt.DefaultCost)
if err != nil {
log.Error(err)
return err
}
device.RefreshToken = string(hashedToken)
return dbm.db.Create(&device).Error
}
func (dbm *DBManager) Device (device models.Device) (models.Device, error) {
var foundDevice models.Device
var count int64
err := dbm.db.Where(&device).First(&foundDevice).Count(&count).Error
return foundDevice, err
}
func (dbm *DBManager) DeleteDevice (user models.Device) error {
return nil
}
func (dbm *DBManager) UpdateRefreshToken (device models.Device, refreshToken string) error {
return nil
}