server weitgehend auf Sessions umgestellt
This commit is contained in:
parent
35d565ec7d
commit
4de7d36385
@ -9,18 +9,12 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"streifling.com/jason/sicherheitsunterweisung/packages/data"
|
"github.com/google/uuid"
|
||||||
|
"streifling.com/jason/sicherheitsunterweisung/packages/db"
|
||||||
"streifling.com/jason/sicherheitsunterweisung/packages/types"
|
"streifling.com/jason/sicherheitsunterweisung/packages/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
// type questionData struct {
|
func DisplayTable(db *db.DB) http.HandlerFunc {
|
||||||
// ID int64
|
|
||||||
// Q types.Question
|
|
||||||
// I int
|
|
||||||
// J int
|
|
||||||
// }
|
|
||||||
|
|
||||||
func DisplayTable(db *data.DB) http.HandlerFunc {
|
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
bs, err := db.GetAllOverviewTableData()
|
bs, err := db.GetAllOverviewTableData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -30,7 +24,7 @@ func DisplayTable(db *data.DB) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func DisplaySearchResults(db *data.DB) http.HandlerFunc {
|
func DisplaySearchResults(db *db.DB) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
bs, err := db.GetOverviewTableDataByName(r.PostFormValue("search"))
|
bs, err := db.GetOverviewTableDataByName(r.PostFormValue("search"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -40,9 +34,13 @@ func DisplaySearchResults(db *data.DB) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func DisplayInstructorForm() http.HandlerFunc {
|
func DisplayInstructorForm(cs chan<- *types.Session) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
template.Must(template.ParseFiles("templates/briefing.html")).ExecuteTemplate(w, "content", nil)
|
session := new(types.Session)
|
||||||
|
session.ID = uuid.New()
|
||||||
|
cs <- session
|
||||||
|
|
||||||
|
template.Must(template.ParseFiles("templates/briefing.html")).ExecuteTemplate(w, "content", session.ID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,21 +54,21 @@ func generateUUID() (string, error) {
|
|||||||
return hex.EncodeToString(bs), nil
|
return hex.EncodeToString(bs), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddParticipant(sl *[]string) http.HandlerFunc {
|
func AddParticipant(s *types.Session) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
login, err := generateUUID()
|
login, err := generateUUID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, "AddParticipant: generateUUID(): "+fmt.Sprint(err), http.StatusInternalServerError)
|
http.Error(w, "AddParticipant: generateUUID(): "+fmt.Sprint(err), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
(*sl) = append(*sl, login)
|
s.Logins = append(s.Logins, login)
|
||||||
template.Must(template.ParseFiles("templates/briefing.html")).ExecuteTemplate(w, "new", login)
|
template.Must(template.ParseFiles("templates/briefing.html")).ExecuteTemplate(w, "new", login)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Hier weiter machen, irgendwie die b.ID herausgeben,
|
// TODO: Hier weiter machen, irgendwie die b.ID herausgeben,
|
||||||
// am besten hier auch die p.IDs rausgeben, damit diese später verknüpft werden können
|
// am besten hier auch die p.IDs rausgeben, damit diese später verknüpft werden können
|
||||||
func SubmitBriefingForm(db *data.DB, sl *[]string) http.HandlerFunc {
|
func SubmitBriefingForm(s *types.Session, db *db.DB) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
briefing := new(types.Briefing)
|
briefing := new(types.Briefing)
|
||||||
@ -87,15 +85,18 @@ func SubmitBriefingForm(db *data.DB, sl *[]string) http.HandlerFunc {
|
|||||||
// briefing.InstructorID = r.PostFormValue("instructor-id") // TODO: aus Dropdown holen
|
// briefing.InstructorID = r.PostFormValue("instructor-id") // TODO: aus Dropdown holen
|
||||||
|
|
||||||
db.WriteBriefing(briefing)
|
db.WriteBriefing(briefing)
|
||||||
|
s.BriefingID = briefing.ID
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Make it only serve one purpose
|
// TODO: Make it only serve one purpose
|
||||||
func loginIsCorrect(l string, logins *[]string) bool {
|
func loginIsCorrect(l string, ss []*types.Session) bool {
|
||||||
for i, v := range *logins {
|
for _, session := range ss {
|
||||||
if l == v {
|
for i, v := range session.Logins {
|
||||||
(*logins) = append((*logins)[:i], (*logins)[i+1:]...)
|
if l == v {
|
||||||
return true
|
session.Logins = append(session.Logins[:i], session.Logins[i+1:]...)
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
@ -113,15 +114,23 @@ func newParticipant(l string) (*types.Participant, error) {
|
|||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func DisplayParticipantForm(sl *[]string) http.HandlerFunc {
|
func DisplayParticipantForm(ss []*types.Session) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
if loginIsCorrect(r.PostFormValue("login"), sl) {
|
type data struct {
|
||||||
uuid, err := generateUUID()
|
SessionID uuid.UUID
|
||||||
|
UUID string
|
||||||
|
}
|
||||||
|
|
||||||
|
if loginIsCorrect(r.PostFormValue("login"), ss) {
|
||||||
|
data := new(data)
|
||||||
|
var err error
|
||||||
|
|
||||||
|
data.UUID, err = generateUUID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, "DisplayParticipantForm: generateUUID(): "+fmt.Sprint(err), http.StatusInternalServerError)
|
http.Error(w, "DisplayParticipantForm: generateUUID(): "+fmt.Sprint(err), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
template.Must(template.ParseFiles("templates/participant.html")).ExecuteTemplate(w, "content", uuid)
|
template.Must(template.ParseFiles("templates/participant.html")).ExecuteTemplate(w, "content", data)
|
||||||
} else {
|
} else {
|
||||||
template.Must(template.ParseFiles("templates/login.html")).ExecuteTemplate(w, "content", nil)
|
template.Must(template.ParseFiles("templates/login.html")).ExecuteTemplate(w, "content", nil)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user