Open RandomTannenbaum opened 5 months ago
Stand 03.07.2024
Ich habe im people controller begonnen die show
und new
Methoden so umzuschreiben, dass nun der Employee gefetched wird und die Daten upgedatet werden sollten. Es ist jedoch noch nicht ganz ausgereift.
Stand 04.07.2024 Das Updaten von Personendaten funktioniert jetzt einigermassen. Ausserdem habe ich die Logik dazu aus den Controllern entfernt und in eine Klasse ausgelagert. Auch das Erstellen von neuen Personen, wenn diese noch nicht existieren, sollte jetzt einigermassen funktionieren.
Stand 05.07.2024 Ich habe mich heute vor allem auf Testing des features konzentriert, aber auch noch einige Bugs behoben. Das feature sollte auch funktionieren und einige Tests sind geschrieben.
Hinweise: Ich habe feature specs als auch domain specs geschrieben.
Was noch fehlt:
update_person_data
die Person keine ptime_employee_id
hat?new
action erstellt wurden wirklich gelöscht werden, wenn die jeweilige ptime_employee_id
auf der PuzzleTime API nicht gefunden wird.Notes 29.07.2024
PersonEmployee
.Stand 29.07.2024 Ich habe heute die Logik so umgeschrieben, dass die Person nicht mehr zuerst als dummy angelegt und dann geupdated, sondern direkt mit den richtigen Daten erstellt wird. Ausserdem habe ich die Tests entsprechend der neuen Logik aufgeräumt.
Stand 30.07.2024 Heute habe ich meinen Code mit dem Code für das neue Dropdown gerebased. In diesem Code waren auch einige neue Testhelper vorhanden, mit denen ich meine Tests auch entsprechend umgeschrieben habe. Danach habe ich mich darum gekümmert, dass mein Teil des Codes auch ohne Time Anbindung funktioniert. Ich habe den Code der mit dem Time arbeitet in ein Module ausgelagert, welches nun durch einen Initializer conditionally included werden soll.
ToDo
Stand 31.07.2024 Heute hatten wir eine Besprechen mit @mtnstar und haben den vorläufigen Stand angeschaut. Basierend auf dem Feedback habe ich die Änderungen (oben bei ToDo ersichtlich) implementiert. Ausserdem habe ich den Initializer gefixt. So kann man nun über eine ENV Variable kontrollieren, ob die Methoden für die Time-Anbindungen verwendet werden oder nicht.
Stand 02.08.2024
Der Branch ptime_mapper_script
enthält sowohl das Skript um die IDs der Personen aus dem PuzzleSkills auf die IDs der Personen aus dem PuzzleTime zu mappen als auch die Funktionalität die aktuellen dropdown Daten direkt aus dem PuzzleTime zu beziehen.
Der verlinkte Branch dieses Tickets baut auf dem oben genannten Branch auf und fügt folgende Funktionen hinzu:
Wenn man auf eine Person navigiert, dann fetcht und updated der Controller die Daten von der PuzzleTime API bevor die Person dem Benutzer angezeigt wird. Wenn eine Person noch nicht existiert, dann kann diese über die Route `/people/new?ptime_employee_id=
Über eine ENV-Variable namens PTIME_API_AVAILABLE
kann entschieden werden, ob der Sync mit dem PuzzleTime verwendet werden soll.
Was noch fehlt:
Introduction When clicking on an employee that is displayed on the ptime-employee-dropdown it redirects to the detailed view of this employee. As soon as an employee is clicked a request for this employee is sent to the PTime API and the response data will be saved in the skills DB. Then the freshly fetched data is displayed on the profile of this specific person. This makes sure that the data is up to date at all times.
Creating a person If a Person doesn't exist yet in the Skills DB, we want to create it. The dropdown will have
/people/new?ptime_employee_id={ptime_employee_id}
as link. When we navigate to this route, we first fetch thisptime_employee_id
from the PTime API, to see if it exists and to get the data. If it doesn't exist, we do nothing. We also do nothing, if there already is a person with thisptime_employee_id
in the skills DB. If it exists, we create a new person with the fetched data and set it'sptime_employee_id
to the id of the fetched employee.It would probably be beneficial to implement a loading bar while fetching data.
ToDo