No One Can Stop Me Now
This commit is contained in:
107
services/setec-manager/internal/db/sites.go
Normal file
107
services/setec-manager/internal/db/sites.go
Normal file
@@ -0,0 +1,107 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Site struct {
|
||||
ID int64 `json:"id"`
|
||||
Domain string `json:"domain"`
|
||||
Aliases string `json:"aliases"`
|
||||
AppType string `json:"app_type"`
|
||||
AppRoot string `json:"app_root"`
|
||||
AppPort int `json:"app_port"`
|
||||
AppEntry string `json:"app_entry"`
|
||||
GitRepo string `json:"git_repo"`
|
||||
GitBranch string `json:"git_branch"`
|
||||
SSLEnabled bool `json:"ssl_enabled"`
|
||||
SSLCertPath string `json:"ssl_cert_path"`
|
||||
SSLKeyPath string `json:"ssl_key_path"`
|
||||
SSLAuto bool `json:"ssl_auto"`
|
||||
Enabled bool `json:"enabled"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
func (d *DB) ListSites() ([]Site, error) {
|
||||
rows, err := d.conn.Query(`SELECT id, domain, aliases, app_type, app_root, app_port,
|
||||
app_entry, git_repo, git_branch, ssl_enabled, ssl_cert_path, ssl_key_path,
|
||||
ssl_auto, enabled, created_at, updated_at FROM sites ORDER BY domain`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var sites []Site
|
||||
for rows.Next() {
|
||||
var s Site
|
||||
if err := rows.Scan(&s.ID, &s.Domain, &s.Aliases, &s.AppType, &s.AppRoot,
|
||||
&s.AppPort, &s.AppEntry, &s.GitRepo, &s.GitBranch, &s.SSLEnabled,
|
||||
&s.SSLCertPath, &s.SSLKeyPath, &s.SSLAuto, &s.Enabled,
|
||||
&s.CreatedAt, &s.UpdatedAt); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sites = append(sites, s)
|
||||
}
|
||||
return sites, rows.Err()
|
||||
}
|
||||
|
||||
func (d *DB) GetSite(id int64) (*Site, error) {
|
||||
var s Site
|
||||
err := d.conn.QueryRow(`SELECT id, domain, aliases, app_type, app_root, app_port,
|
||||
app_entry, git_repo, git_branch, ssl_enabled, ssl_cert_path, ssl_key_path,
|
||||
ssl_auto, enabled, created_at, updated_at FROM sites WHERE id = ?`, id).
|
||||
Scan(&s.ID, &s.Domain, &s.Aliases, &s.AppType, &s.AppRoot,
|
||||
&s.AppPort, &s.AppEntry, &s.GitRepo, &s.GitBranch, &s.SSLEnabled,
|
||||
&s.SSLCertPath, &s.SSLKeyPath, &s.SSLAuto, &s.Enabled,
|
||||
&s.CreatedAt, &s.UpdatedAt)
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, nil
|
||||
}
|
||||
return &s, err
|
||||
}
|
||||
|
||||
func (d *DB) GetSiteByDomain(domain string) (*Site, error) {
|
||||
var s Site
|
||||
err := d.conn.QueryRow(`SELECT id, domain, aliases, app_type, app_root, app_port,
|
||||
app_entry, git_repo, git_branch, ssl_enabled, ssl_cert_path, ssl_key_path,
|
||||
ssl_auto, enabled, created_at, updated_at FROM sites WHERE domain = ?`, domain).
|
||||
Scan(&s.ID, &s.Domain, &s.Aliases, &s.AppType, &s.AppRoot,
|
||||
&s.AppPort, &s.AppEntry, &s.GitRepo, &s.GitBranch, &s.SSLEnabled,
|
||||
&s.SSLCertPath, &s.SSLKeyPath, &s.SSLAuto, &s.Enabled,
|
||||
&s.CreatedAt, &s.UpdatedAt)
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, nil
|
||||
}
|
||||
return &s, err
|
||||
}
|
||||
|
||||
func (d *DB) CreateSite(s *Site) (int64, error) {
|
||||
result, err := d.conn.Exec(`INSERT INTO sites (domain, aliases, app_type, app_root, app_port,
|
||||
app_entry, git_repo, git_branch, ssl_enabled, ssl_cert_path, ssl_key_path, ssl_auto, enabled)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
s.Domain, s.Aliases, s.AppType, s.AppRoot, s.AppPort,
|
||||
s.AppEntry, s.GitRepo, s.GitBranch, s.SSLEnabled,
|
||||
s.SSLCertPath, s.SSLKeyPath, s.SSLAuto, s.Enabled)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return result.LastInsertId()
|
||||
}
|
||||
|
||||
func (d *DB) UpdateSite(s *Site) error {
|
||||
_, err := d.conn.Exec(`UPDATE sites SET domain=?, aliases=?, app_type=?, app_root=?,
|
||||
app_port=?, app_entry=?, git_repo=?, git_branch=?, ssl_enabled=?,
|
||||
ssl_cert_path=?, ssl_key_path=?, ssl_auto=?, enabled=?, updated_at=CURRENT_TIMESTAMP
|
||||
WHERE id=?`,
|
||||
s.Domain, s.Aliases, s.AppType, s.AppRoot, s.AppPort,
|
||||
s.AppEntry, s.GitRepo, s.GitBranch, s.SSLEnabled,
|
||||
s.SSLCertPath, s.SSLKeyPath, s.SSLAuto, s.Enabled, s.ID)
|
||||
return err
|
||||
}
|
||||
|
||||
func (d *DB) DeleteSite(id int64) error {
|
||||
_, err := d.conn.Exec(`DELETE FROM sites WHERE id=?`, id)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user