Replace database, mostly share token

This commit is contained in:
viktorstrate
2020-11-27 16:02:10 +01:00
parent 2b966aa672
commit 22e328b94b
4 changed files with 343 additions and 320 deletions

View File

@@ -25,13 +25,14 @@ func (r *mutationResolver) ScanAll(ctx context.Context) (*models.ScannerResult,
}
func (r *mutationResolver) ScanUser(ctx context.Context, userID int) (*models.ScannerResult, error) {
row := r.Database.QueryRow("SELECT * FROM user WHERE user_id = ?", userID)
user, err := models.NewUserFromRow(row)
if err != nil {
var user models.User
if err := r.Database.First(&user, userID).Error; err != nil {
return nil, errors.Wrap(err, "get user from database")
}
scanner.AddUserToQueue(user)
scanner.AddUserToQueue(&user)
startMessage := "Scanner started"
return &models.ScannerResult{
@@ -46,21 +47,18 @@ func (r *mutationResolver) SetPeriodicScanInterval(ctx context.Context, interval
return 0, errors.New("interval must be 0 or above")
}
_, err := r.Database.Exec("UPDATE site_info SET periodic_scan_interval = ?", interval)
if err != nil {
if err := r.Database.Model(&models.SiteInfo{}).Update("periodic_scan_interval", interval).Error; err != nil {
return 0, err
}
var dbInterval int
row := r.Database.QueryRow("SELECT periodic_scan_interval FROM site_info")
if err = row.Scan(&dbInterval); err != nil {
var siteInfo models.SiteInfo
if err := r.Database.First(&siteInfo).Error; err != nil {
return 0, err
}
scanner.ChangePeriodicScanInterval(time.Duration(dbInterval) * time.Second)
scanner.ChangePeriodicScanInterval(time.Duration(siteInfo.PeriodicScanInterval) * time.Second)
return dbInterval, nil
return siteInfo.PeriodicScanInterval, nil
}
func (r *mutationResolver) SetScannerConcurrentWorkers(ctx context.Context, workers int) (int, error) {
@@ -68,19 +66,16 @@ func (r *mutationResolver) SetScannerConcurrentWorkers(ctx context.Context, work
return 0, errors.New("concurrent workers must at least be 1")
}
_, err := r.Database.Exec("UPDATE site_info SET concurrent_workers = ?", workers)
if err != nil {
if err := r.Database.Model(&models.SiteInfo{}).Update("concurrent_workers", workers).Error; err != nil {
return 0, err
}
var dbWorkers int
row := r.Database.QueryRow("SELECT concurrent_workers FROM site_info")
if err = row.Scan(&dbWorkers); err != nil {
var siteInfo models.SiteInfo
if err := r.Database.First(&siteInfo).Error; err != nil {
return 0, err
}
scanner.ChangeScannerConcurrentWorkers(dbWorkers)
scanner.ChangeScannerConcurrentWorkers(siteInfo.ConcurrentWorkers)
return dbWorkers, nil
return siteInfo.ConcurrentWorkers, nil
}