added userLogout fixed #15, #10

This commit is contained in:
2025-05-01 19:42:33 +02:00
parent 35ec575a05
commit 7d84d20413
11 changed files with 151 additions and 89 deletions

View File

@@ -13,11 +13,11 @@ import (
)
type User struct {
CardUID string `json:"card_uid"`
Name string `json:"name"`
Vorname string `json:"vorname"`
PersonalNummer int `json:"personal_nummer"`
Arbeitszeit float32 `json:"arbeitszeit"`
CardUID string `json:"card_uid"`
Name string `json:"name"`
Vorname string `json:"vorname"`
PersonalNummer int `json:"personal_nummer"`
ArbeitszeitPerTag float32 `json:"arbeitszeit"`
}
func (u *User) GetUserFromSession(Session *scs.SessionManager, ctx context.Context) (User, error) {
@@ -83,7 +83,7 @@ func (u *User) CheckAnwesenheit() bool {
}
// Creates a new booking for the user -> check_in_out will be 254 for automatic check out
func (u *User) Logout() error {
func (u *User) CheckOut() error {
booking := (*Booking).New(nil, u.CardUID, 0, 254)
err := booking.Insert()
if err != nil {
@@ -100,7 +100,7 @@ func (u *User) GetByPersonalNummer(personalNummer int) (User, error) {
if err != nil {
return user, err
}
err = qStr.QueryRow(personalNummer).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.Arbeitszeit)
err = qStr.QueryRow(personalNummer).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.ArbeitszeitPerTag)
if err != nil {
return user, err
@@ -196,7 +196,7 @@ func (u *User) GetNextWeek() WorkWeek {
func parseUser(rows *sql.Rows) (User, error) {
var user User
if err := rows.Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.Arbeitszeit); err != nil {
if err := rows.Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.ArbeitszeitPerTag); err != nil {
log.Println("Error scanning row!", err)
return user, err
}
@@ -228,6 +228,22 @@ func (u *User) GetLastSubmission() time.Time {
return lastSub
}
func (u *User) GetFromCardUID(card_uid string) (User, error) {
user := User{}
var err error
qStr, err := DB.Prepare((`SELECT personal_nummer, card_uid, vorname, nachname, arbeitszeit_per_tag FROM personal_daten WHERE card_uid = $1;`))
if err != nil {
return user, err
}
err = qStr.QueryRow(card_uid).Scan(&user.PersonalNummer, &user.CardUID, &user.Vorname, &user.Name, &user.ArbeitszeitPerTag)
if err != nil {
return user, err
}
return user, nil
}
func getMonday(ts time.Time) time.Time {
if ts.Weekday() != time.Monday {
if ts.Weekday() == time.Sunday {