Add basic graphql api
This commit is contained in:
+18
-16
@@ -18,7 +18,7 @@ type Database struct {
|
||||
Conn *pgx.Conn
|
||||
}
|
||||
|
||||
func LaunchDB(conf config.DBConfig) error {
|
||||
func LaunchDB(conf config.DBConfig) (Database, error) {
|
||||
|
||||
dbURL := fmt.Sprintf(
|
||||
"postgres://%v:%v@%v:%v/%v",
|
||||
@@ -50,7 +50,7 @@ func LaunchDB(conf config.DBConfig) error {
|
||||
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("Could not open database: %w", err)
|
||||
return db, fmt.Errorf("Could not open database: %w", err)
|
||||
}
|
||||
|
||||
log.Infof("Database connected sucessfully!")
|
||||
@@ -64,7 +64,7 @@ SELECT EXISTS (
|
||||
var versionTableExists bool
|
||||
err = db.Conn.QueryRow(context.Background(), versionTableExistsQuery).Scan(&versionTableExists)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Could not check if database was initalized: %w", err)
|
||||
return db, fmt.Errorf("Could not check if database was initalized: %w", err)
|
||||
}
|
||||
|
||||
if versionTableExists {
|
||||
@@ -73,31 +73,33 @@ SELECT EXISTS (
|
||||
log.Info("New database found, initializing....")
|
||||
err = initDB(db.Conn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Could not initalize database: %w", err)
|
||||
return db, fmt.Errorf("Could not initalize database: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return db, nil
|
||||
}
|
||||
|
||||
func initDB(conn *pgx.Conn) error {
|
||||
createTablesQuery := `
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
|
||||
CREATE TABLE version (
|
||||
version INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE pipelines (
|
||||
id SERIAL PRIMARY KEY,
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
url TEXT NOT NULL,
|
||||
poll_interval INTEGER
|
||||
);
|
||||
|
||||
CREATE TABLE webhooks (
|
||||
id SERIAL PRIMARY KEY,
|
||||
type TEXT,
|
||||
secret TEXT,
|
||||
pipeline INTEGER,
|
||||
id UUID PRIMARY KEY,
|
||||
server_type TEXT,
|
||||
secret TEXT,
|
||||
pipeline UUID,
|
||||
|
||||
CONSTRAINT fk_pipeline
|
||||
FOREIGN KEY(pipeline)
|
||||
@@ -105,14 +107,14 @@ CREATE TABLE webhooks (
|
||||
);
|
||||
|
||||
CREATE TABLE runners (
|
||||
id SERIAL PRIMARY KEY,
|
||||
id UUID PRIMARY KEY,
|
||||
name TEXT,
|
||||
secret TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE runs (
|
||||
id SERIAL PRIMARY KEY,
|
||||
pipeline SERIAL,
|
||||
id UUID PRIMARY KEY,
|
||||
pipeline UUID,
|
||||
result BOOLEAN NOT NULL,
|
||||
|
||||
CONSTRAINT fk_pipeline
|
||||
@@ -121,10 +123,10 @@ CREATE TABLE runs (
|
||||
);
|
||||
|
||||
CREATE TABLE command_executions (
|
||||
id SERIAL PRIMARY KEY,
|
||||
run_id SERIAL,
|
||||
id UUID PRIMARY KEY,
|
||||
run_id UUID,
|
||||
command TEXT,
|
||||
return_code TEXT,
|
||||
return_code INT,
|
||||
stdout TEXT,
|
||||
stderr TEXT,
|
||||
start_time TIMESTAMP,
|
||||
|
||||
Reference in New Issue
Block a user