Sprechstunden hinzufügen und durch einen E-Mail-Link bestätigen lassen
This commit is contained in:
parent
369f4ebcec
commit
78af58a51d
18 changed files with 291 additions and 29 deletions
|
@ -142,17 +142,21 @@ func (b *BaseHandler) AddOfficeHourHandler(w http.ResponseWriter, req *http.Requ
|
|||
false,
|
||||
duration,
|
||||
}
|
||||
err := b.officeHourRepo.Add(officeHour)
|
||||
id, err := b.officeHourRepo.Add(officeHour)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
failureTemplate, parseErr := template.ParseFiles("templates/addFailure.html")
|
||||
if parseErr != nil {
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", string(err.Error()))))
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", err.Error())))
|
||||
return
|
||||
}
|
||||
failureTemplate.Execute(w, err)
|
||||
return
|
||||
}
|
||||
http.Redirect(w, req, "/", http.StatusTemporaryRedirect)
|
||||
officeHour, _ = b.officeHourRepo.FindById(id)
|
||||
b.requestRepo.Add(officeHour, models.RequestActivate)
|
||||
tmpl, _ := template.ParseFiles("template/addSuccess.html")
|
||||
tmpl.Execute(w, struct{}{})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -160,15 +164,18 @@ func (b *BaseHandler) writeAddOfficeHourMask(w http.ResponseWriter, req *http.Re
|
|||
tmpl, err := template.ParseFiles("templates/addMask.html")
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", string(err.Error()))))
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", err.Error())))
|
||||
return
|
||||
}
|
||||
if len(data.Errors) != 0 {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
}
|
||||
if req.Method == http.MethodGet {
|
||||
data.Errors = []string{}
|
||||
}
|
||||
err = tmpl.Execute(w, data)
|
||||
if err != nil {
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", string(err.Error()))))
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", err.Error())))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,9 +8,10 @@ type BaseHandler struct {
|
|||
officeHourRepo models.OfficeHourRepository
|
||||
courseRepo models.CourseRepository
|
||||
tutorRepo models.TutorRepository
|
||||
requestRepo models.RequestRepository
|
||||
}
|
||||
|
||||
// NewBaseHandler returns a new BaseHandler
|
||||
func NewBaseHandler(roomRepo models.RoomRepository, officeHourRepo models.OfficeHourRepository, courseRepo models.CourseRepository, tutorRepo models.TutorRepository) *BaseHandler {
|
||||
return &BaseHandler{roomRepo, officeHourRepo, courseRepo, tutorRepo}
|
||||
func NewBaseHandler(roomRepo models.RoomRepository, officeHourRepo models.OfficeHourRepository, courseRepo models.CourseRepository, tutorRepo models.TutorRepository, requestRepo models.RequestRepository) *BaseHandler {
|
||||
return &BaseHandler{roomRepo, officeHourRepo, courseRepo, tutorRepo, requestRepo}
|
||||
}
|
||||
|
|
24
controllers/confirmRequestHandler.go
Normal file
24
controllers/confirmRequestHandler.go
Normal file
|
@ -0,0 +1,24 @@
|
|||
package controllers
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func (b *BaseHandler) ConfirmRequestHandler(w http.ResponseWriter, req *http.Request) {
|
||||
secret := req.FormValue("code")
|
||||
request, err := b.requestRepo.FindBySecret(secret)
|
||||
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
tmpl, _ := template.ParseFiles("templates/requestNotFound.html")
|
||||
tmpl.Execute(w, struct{}{})
|
||||
}
|
||||
|
||||
err = b.requestRepo.Execute(request)
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
tmpl, err := template.ParseFiles("templates/executeFailure.html")
|
||||
tmpl.Execute(w, err)
|
||||
}
|
||||
}
|
|
@ -16,7 +16,6 @@ func (b *BaseHandler) GetByRoomHandler(w http.ResponseWriter, req *http.Request)
|
|||
roomId, _ := strconv.Atoi(req.FormValue("raum"))
|
||||
room, err := b.roomRepo.FindById(roomId)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
b.RootHandler(w, req)
|
||||
return
|
||||
}
|
||||
|
@ -53,12 +52,12 @@ func (b *BaseHandler) writeTimetablePage(w http.ResponseWriter, req *http.Reques
|
|||
tmpl, err := template.ParseFiles("templates/index.html")
|
||||
if err != nil {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", string(err.Error()))))
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", err.Error())))
|
||||
return
|
||||
}
|
||||
err = tmpl.Execute(w, data)
|
||||
if err != nil {
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", string(err.Error()))))
|
||||
w.Write([]byte(fmt.Sprintf("Template konnte nicht geparst werden : %s", err.Error())))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue