t1
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"sitemap-api/models"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
@@ -193,6 +194,51 @@ func (db *DB) GetAllSites() ([]*models.Site, error) {
|
||||
return sites, nil
|
||||
}
|
||||
|
||||
func (db *DB) GetSitesByUUIDs(uuids []string) ([]*models.Site, error) {
|
||||
if len(uuids) == 0 {
|
||||
return []*models.Site{}, nil
|
||||
}
|
||||
|
||||
// Create placeholders for the IN clause
|
||||
placeholders := make([]string, len(uuids))
|
||||
args := make([]interface{}, len(uuids))
|
||||
for i, uuid := range uuids {
|
||||
placeholders[i] = "?"
|
||||
args[i] = uuid
|
||||
}
|
||||
|
||||
query := fmt.Sprintf(`
|
||||
SELECT id, uuid, domain, url, max_depth, page_count, status,
|
||||
ip_address, user_agent, browser, browser_version, os, device_type,
|
||||
session_id, cookies, referrer, created_at, completed_at, last_crawled
|
||||
FROM sites WHERE uuid IN (%s) ORDER BY created_at DESC
|
||||
`, strings.Join(placeholders, ","))
|
||||
|
||||
rows, err := db.conn.Query(query, args...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
sites := []*models.Site{}
|
||||
for rows.Next() {
|
||||
site := &models.Site{}
|
||||
err := rows.Scan(
|
||||
&site.ID, &site.UUID, &site.Domain, &site.URL, &site.MaxDepth,
|
||||
&site.PageCount, &site.Status, &site.IPAddress, &site.UserAgent,
|
||||
&site.Browser, &site.BrowserVersion, &site.OS, &site.DeviceType,
|
||||
&site.SessionID, &site.Cookies, &site.Referrer, &site.CreatedAt,
|
||||
&site.CompletedAt, &site.LastCrawled,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sites = append(sites, site)
|
||||
}
|
||||
|
||||
return sites, nil
|
||||
}
|
||||
|
||||
func (db *DB) UpdateSiteStatus(uuid string, status string, pageCount int) error {
|
||||
query := `
|
||||
UPDATE sites
|
||||
|
||||
Reference in New Issue
Block a user