Files
legislature-tracker/backend/main.go

80 lines
2.0 KiB
Go

package main
import (
"embed"
"git.sa.vin/legislature-tracker/backend/AI"
"git.sa.vin/legislature-tracker/backend/search"
"log"
"os"
"git.sa.vin/legislature-tracker/backend/Leg"
"git.sa.vin/legislature-tracker/backend/cachedAPI"
"git.sa.vin/legislature-tracker/backend/datastore"
"github.com/payne8/go-libsql-dual-driver"
)
//go:embed migrations/*.sql
var migrationFiles embed.FS
func main() {
logger := log.New(os.Stdout, "any-remark", log.LstdFlags)
primaryUrl := os.Getenv("LIBSQL_DATABASE_URL")
authToken := os.Getenv("LIBSQL_AUTH_TOKEN")
tdb, err := libsqldb.NewLibSqlDB(
primaryUrl,
libsqldb.WithMigrationFiles(migrationFiles),
libsqldb.WithAuthToken(authToken),
libsqldb.WithLocalDBName("local.db"), // will not be used for remote-only
)
if err != nil {
logger.Printf("failed to open db %s: %s", primaryUrl, err)
log.Fatalln(err)
return
}
err = tdb.Migrate()
if err != nil {
logger.Printf("failed to migrate db %s: %s", primaryUrl, err)
log.Fatalln(err)
return
}
mapper := datastore.NewMapper(tdb.DB)
api := cachedAPI.NewCachedAPI(mapper)
utah := Leg.NewUtahLeg(api)
ai, err := AI.NewAI()
if err != nil {
log.Fatalf("error creating AI: %v", err)
}
searchService, err := search.NewSearch(search.WithAI(ai), search.WithMapper(mapper))
if err != nil {
log.Fatalf("error creating search: %v", err)
}
test, err := utah.GetBillList("2024", "GS")
if err != nil {
log.Fatalf("error getting bill list: %v", err)
}
log.Printf("bill list: %+v", test)
test2, err := utah.GetBillDetails("2024", "GS", "HB0001")
if err != nil {
log.Fatalf("error getting bill details: %v", err)
}
log.Printf("bill details: %+v", test2)
//err = searchService.InsertContent(context.Background(), test2.TrackingID, test2.GeneralProvisions+" "+test2.HilightedProvisions)
//if err != nil {
// log.Fatalf("error inserting content: %v", err)
//}
results, err := searchService.Search("I'm looking for a bill that affects public education")
if err != nil {
log.Fatalf("error searching: %v", err)
}
log.Printf("search results: %+v", results)
}