major: séparer commande de librairie importable
Bump major version à 9 package main déplacé vers cmd/bottin/ pour garder `go install` qui nomme l'exécutable `bottin`, sans empêcher d'importer le code à l'extérieur du projet avec pkg/bottin/. Déplacer fichiers SQL vers queries/ Déplacer fichiers html vers templates/ Ajouter scripts/ avec génération et injection de certificats x509 (https) et les ajouter au Makefile Ajouter début d'exemple de manifests dans deployments/kubernetes/
This commit is contained in:
parent
a17d6bf06c
commit
b419a5b260
25 changed files with 513 additions and 451 deletions
14
queries/queries.go
Normal file
14
queries/queries.go
Normal file
|
@ -0,0 +1,14 @@
|
|||
package queries
|
||||
|
||||
import (
|
||||
_ "embed"
|
||||
)
|
||||
|
||||
//go:embed schema.sql
|
||||
var sqlSchema string
|
||||
|
||||
//go:embed views.sql
|
||||
var sqlViews string
|
||||
|
||||
func SQLSchema() string { return sqlSchema }
|
||||
func SQLViews() string { return sqlViews }
|
12
queries/schema.sql
Normal file
12
queries/schema.sql
Normal file
|
@ -0,0 +1,12 @@
|
|||
CREATE TABLE IF NOT EXISTS programmes (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS membres (
|
||||
id VARCHAR(7) PRIMARY KEY,
|
||||
last_name TEXT NOT NULL,
|
||||
first_name TEXT NOT NULL,
|
||||
prefered_name TEXT,
|
||||
programme_id TEXT REFERENCES programmes(id) NOT NULL
|
||||
);
|
23
queries/views.sql
Normal file
23
queries/views.sql
Normal file
|
@ -0,0 +1,23 @@
|
|||
-- membres_for_display affiche le numéro étudiant, nom complet OU prefered_name, et titre du programme.
|
||||
--
|
||||
-- Utilisé par l'application web pour rechercher et afficher les informations des membres
|
||||
CREATE OR REPLACE VIEW
|
||||
"membres_for_display"
|
||||
AS (
|
||||
SELECT
|
||||
"membres".id,
|
||||
CASE
|
||||
WHEN
|
||||
"membres".prefered_name != '' AND "membres".prefered_name IS NOT NULL
|
||||
THEN
|
||||
"membres".prefered_name
|
||||
ELSE
|
||||
CONCAT("membres".last_name, ', ', "membres".first_name)
|
||||
END AS name,
|
||||
"programmes".id AS programme_id,
|
||||
"programmes".name AS programme_name
|
||||
FROM
|
||||
"membres"
|
||||
INNER JOIN
|
||||
"programmes" ON "programmes".id = "membres".programme_id
|
||||
);
|
Reference in a new issue