# Arbeitszeitmessung [![Quality Gate Status](https://sonar.letsstein.de/api/project_badges/measure?project=arbeitszeitmessung&metric=alert_status&token=sqb_f8e5ad702b23aa4631a29b99c2f8030caf7d4e05)](https://sonar.letsstein.de/dashboard?id=arbeitszeitmessung) bis jetzt ein einfaches Backend mit PostgreSQL Datenbank und GO Webserver um Arbeitszeitbuchungen per HTTP PUT einzufügen ## Installation ```bash git clone https://git.letsstein.de/tom/arbeitszeitmessung arbeitszeitmessung cd arbeitszeitmessung/Docker # .env Datei anpassen docker compose up -d ``` ## PREVIEW Zeitverwaltungsansicht (/time): ![time](docs/images/time.png) Ansicht der Führungskraft (/team): ![team](docs/images/team.png) Nutzeransicht (/user): ![user](docs/images/user.png) ## Buchungstypen 1 - Kommen 2 - Gehen 3 - Kommen Manuell 4 - Gehen Manuell 254 - Automatisch abgemeldet ## API Nutzung der API wenn die `dev-docker-compose.yml` Datei gestartet wird, ist direkt ein SwaggerUI Server mit entsprechender Datei inbegriffen. ### Buchungen [/time] #### [GET] Anfrage Parameter: cardID (string) Antwort: `200` ```json [ { "cradID": "test_card", "readerID": "test_reader", "bookingTyp": 2, "loggedTime": "2024-09-05T08:37:53.117641Z", "id": 5 }, { "cradID": "test_card", "readerID": "mytest", "bookingTyp": 1, "loggedTime": "2024-09-05T08:51:12.670827Z", "id": 6 } ] ``` Antwort `500` Serverfehler #### [PUT] Anfrage Parameter: id (int) Body: (veränderte Parameter) ```json { "cradID": "test_card", "readerID": "mytest", "bookingTyp": 1, "loggedTime": "2024-09-05T08:51:12.670827Z" } ``` Antwort `200` ```json { "cradID": "test_card", "readerID": "mytest", "bookingTyp": 1, "loggedTime": "2024-09-05T08:51:12.670827Z", "id": 6 } ``` ### Neue Buchung [/time/new] #### [PUT] Anfrage Parameter: - cardID (string) - readerID (string) - bookingType (string) Antwort `202` Akzeptiert und eingefügt ```json { "cradID": "test_card", "readerID": "mytest", "bookingTyp": 1, "loggedTime": "2024-09-05T08:51:12.670827Z", "id": 6 } ``` Antwort `409` Konflikt Die vorherige Buchung am selben Tag hat den gleichen Buchungstyp