Updated static pages to use db
This commit is contained in:
@@ -34,6 +34,7 @@ CREATE TABLE IF NOT EXISTS custom_headers (
|
||||
id TEXT PRIMARY KEY,
|
||||
site_id TEXT NOT NULL,
|
||||
source TEXT NOT NULL,
|
||||
regex INTEGER NOT NULL DEFAULT 0,
|
||||
FOREIGN KEY (site_id) REFERENCES sites(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"quay/app/models"
|
||||
"quay/app/repository"
|
||||
@@ -38,6 +39,25 @@ func (r *SQLiteSiteRepository) GetSite(id string) (*models.Site, error) {
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func (r *SQLiteSiteRepository) GetSiteByDomain(domain string) (*models.Site, error) {
|
||||
row := r.db.QueryRow(`
|
||||
SELECT id, git_server, owner, repository, branch, domain, deploy_token, enabled, not_found_file
|
||||
FROM sites WHERE domain = ?`, domain)
|
||||
|
||||
s, err := scanSite(row)
|
||||
if err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, fmt.Errorf("get site by domain: %w", err)
|
||||
}
|
||||
|
||||
if err := r.populateSiteRelations(s); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return s, nil
|
||||
}
|
||||
|
||||
func (r *SQLiteSiteRepository) ListSites() ([]models.Site, error) {
|
||||
rows, err := r.db.Query(`
|
||||
SELECT id, git_server, owner, repository, branch, domain, deploy_token, enabled, not_found_file
|
||||
@@ -205,10 +225,11 @@ func (r *SQLiteSiteRepository) DeleteForwardRule(id string) error {
|
||||
// Custom Headers
|
||||
|
||||
func (r *SQLiteSiteRepository) GetCustomHeaders(id string) (*models.CustomHeaders, error) {
|
||||
row := r.db.QueryRow(`SELECT id, source FROM custom_headers WHERE id = ?`, id)
|
||||
row := r.db.QueryRow(`SELECT id, source, regex FROM custom_headers WHERE id = ?`, id)
|
||||
|
||||
var ch models.CustomHeaders
|
||||
if err := row.Scan(&ch.ID, &ch.Source); err != nil {
|
||||
var regex int
|
||||
if err := row.Scan(&ch.ID, &ch.Source, ®ex); err != nil {
|
||||
return nil, fmt.Errorf("get custom headers: %w", err)
|
||||
}
|
||||
|
||||
@@ -217,6 +238,7 @@ func (r *SQLiteSiteRepository) GetCustomHeaders(id string) (*models.CustomHeader
|
||||
return nil, err
|
||||
}
|
||||
ch.Headers = headers
|
||||
ch.Regex = regex != 0
|
||||
return &ch, nil
|
||||
}
|
||||
|
||||
@@ -239,7 +261,7 @@ func (r *SQLiteSiteRepository) UpdateCustomHeaders(ch *models.CustomHeaders) err
|
||||
}
|
||||
defer tx.Rollback()
|
||||
|
||||
if _, err := tx.Exec(`UPDATE custom_headers SET source=? WHERE id=?`, ch.Source, ch.ID); err != nil {
|
||||
if _, err := tx.Exec(`UPDATE custom_headers SET source=?, regex=? WHERE id=?`, ch.Source, ch.Regex, ch.ID); err != nil {
|
||||
return fmt.Errorf("update custom headers: %w", err)
|
||||
}
|
||||
if _, err := tx.Exec(`DELETE FROM headers WHERE custom_header_id = ?`, ch.ID); err != nil {
|
||||
@@ -360,7 +382,7 @@ func (r *SQLiteSiteRepository) listForwardRules(siteID string) ([]models.Forward
|
||||
}
|
||||
|
||||
func (r *SQLiteSiteRepository) listCustomHeaders(siteID string) ([]models.CustomHeaders, error) {
|
||||
rows, err := r.db.Query(`SELECT id, source FROM custom_headers WHERE site_id = ?`, siteID)
|
||||
rows, err := r.db.Query(`SELECT id, source, regex FROM custom_headers WHERE site_id = ?`, siteID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("list custom headers: %w", err)
|
||||
}
|
||||
@@ -368,10 +390,12 @@ func (r *SQLiteSiteRepository) listCustomHeaders(siteID string) ([]models.Custom
|
||||
var result []models.CustomHeaders
|
||||
for rows.Next() {
|
||||
var ch models.CustomHeaders
|
||||
if err := rows.Scan(&ch.ID, &ch.Source); err != nil {
|
||||
var regex int
|
||||
if err := rows.Scan(&ch.ID, &ch.Source, ®ex); err != nil {
|
||||
rows.Close()
|
||||
return nil, fmt.Errorf("list custom headers scan: %w", err)
|
||||
}
|
||||
ch.Regex = regex != 0
|
||||
result = append(result, ch)
|
||||
}
|
||||
rows.Close()
|
||||
@@ -424,8 +448,8 @@ func insertForwardRule(tx *sql.Tx, siteID string, fr *models.ForwardRule) error
|
||||
func insertCustomHeaders(tx *sql.Tx, siteID string, ch *models.CustomHeaders) error {
|
||||
ch.ID = uuid.NewString()
|
||||
_, err := tx.Exec(`
|
||||
INSERT INTO custom_headers (id, site_id, source) VALUES (?, ?, ?)`,
|
||||
ch.ID, siteID, ch.Source,
|
||||
INSERT INTO custom_headers (id, site_id, source, regex) VALUES (?, ?, ?, ?)`,
|
||||
ch.ID, siteID, ch.Source, ch.Regex,
|
||||
)
|
||||
if err != nil {
|
||||
return fmt.Errorf("insert custom headers: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user