api-erstellen #1

Merged
TorstenHettstedt merged 52 commits from api-erstellen into master 2021-04-07 13:00:46 +02:00
Owner

Die Rest-API für die Arbeitszeiten-Anzeige ist erstellt.

Die Rest-API für die Arbeitszeiten-Anzeige ist erstellt.
TorstenHettstedt added 40 commits 2021-04-06 23:28:38 +02:00
TorstenHettstedt added a new dependency 2021-04-06 23:40:30 +02:00
TorstenHettstedt left a comment
Author
Owner

Noch was gefunden.

Noch was gefunden.
api/.env Outdated
@@ -0,0 +1,5 @@
## Datenbank-Einstellungen
Author
Owner

Diese Datei hat nichts im Repo verloren

Diese Datei hat nichts im Repo verloren
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +1,9 @@
FROM php:8.0-apache
#RUN apt update && apt install -y postgresql postgresql-client
Author
Owner

Kann weg.

Kann weg.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +6,4 @@
class HttpConflictRequestException extends HttpSpecializedException
{
/**
Author
Owner

Kann auf eine Zeile

Kann auf eine Zeile
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +11,4 @@
*/
protected $code = 409;
/**
Author
Owner

Kann auf eine Zeile.

Kann auf eine Zeile.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +16,4 @@
*/
protected $message = 'Conflict.';
protected $title = '409 Conflict';
Author
Owner

Typen erweitern.

Typen erweitern.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +23,4 @@
{
protected PDO $databases;
protected ContainerInterface $container;
Author
Owner

Der Container wird nur bei der Initialisierung benötigt.

Der Container wird nur bei der Initialisierung benötigt.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +77,4 @@
public function browse(Request $request, Response $response, array $args): Response
{
$repository = new WorkingHoursRepository($this->databases);
return $this->printResponse($response, $repository->findAll(), StatusCodeInterface::STATUS_OK);
Author
Owner

Der Fehler kann abgefangen werden, ähnlich read()

Der Fehler kann abgefangen werden, ähnlich `read()`
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +36,4 @@
*/
public function browseWeekly(Request $request, Response $response, array $args): Response
{
if ($this->container->has('databases') === false) {
Author
Owner

Das kann ähnlich dem WorkingHoursController in den Konstruktor.

Das kann ähnlich dem `WorkingHoursController` in den Konstruktor.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +87,4 @@
*
* @return Response
*/
protected function printResponse( Response $response, array $data): Response
Author
Owner

Da in beiden Controllern die fast gleiche Methode aufgerufen wird, kann diese Methode auch in eine Abstrakte Klasse verschoben werden.

Da in beiden Controllern die fast gleiche Methode aufgerufen wird, kann diese Methode auch in eine Abstrakte Klasse verschoben werden.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +4,4 @@
namespace TorstenHettstedt\TimekeepingApi\Repositories;
class RepositoryModelAlreadyExists extends RepositoryException
Author
Owner

Ein besserer Name wäre RepositoryRecordAlreadyExistException

Ein besserer Name wäre `RepositoryRecordAlreadyExistException`
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +42,4 @@
]),
]);
}
Author
Owner

Zur Vereinfachung der Klasse soolte es den folgenden Test geben:

    /**
     * @throws NotDatabasesException
     * @throws Exception
     */
    public function testConstructWithNonDatabase(): void
    {
        $this->container = $this->makeEmpty(ContainerInterface::class, [
            'has' => false
        ]);
        $this->expectException(NotDatabasesException::class);
        new WorkingHoursViewController($this->container);
    }
Zur Vereinfachung der Klasse soolte es den folgenden Test geben: ``` /** * @throws NotDatabasesException * @throws Exception */ public function testConstructWithNonDatabase(): void { $this->container = $this->makeEmpty(ContainerInterface::class, [ 'has' => false ]); $this->expectException(NotDatabasesException::class); new WorkingHoursViewController($this->container); } ```
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +46,4 @@
/**
* @throws Exception
*/
public function testBrowseMonthlyWithNonDatabase(): void
Author
Owner

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +69,4 @@
/**
* @throws Exception
*/
public function testBrowseYearlyWithNonDatabase(): void
Author
Owner

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +92,4 @@
/**
* @throws Exception
*/
public function testBrowseWeeklyWithNonDatabase(): void
Author
Owner

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.

Eine fehlende Datenbank sollte schon in der Erstellung des Objektes einen Fehler auslösen.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +73,4 @@
'getTitle' => Expected::once('The Title'),
]);
$this->logger = $this->makeEmpty(LoggerInterface::class, [
'error' => Expected::once(),
Author
Owner

Das ist hier nicht nötig.

Das ist hier nicht nötig.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +92,4 @@
'file' => '/path(to/file',
]);
$this->logger = $this->makeEmpty(LoggerInterface::class, [
'error' => Expected::once(),
Author
Owner

Das ist hier nicht nötig.

Das ist hier nicht nötig.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +24,4 @@
const RECORDS_COUNT = 61;
protected PDO $pdoObject;
protected PDOStatement $pdoStatement;
Author
Owner

Kann raus.

Kann raus.
TorstenHettstedt marked this conversation as resolved
TorstenHettstedt added 1 commit 2021-04-07 11:50:52 +02:00
TorstenHettstedt added 1 commit 2021-04-07 11:55:42 +02:00
TorstenHettstedt added 1 commit 2021-04-07 11:58:19 +02:00
TorstenHettstedt added 2 commits 2021-04-07 12:08:50 +02:00
TorstenHettstedt added 1 commit 2021-04-07 12:11:08 +02:00
TorstenHettstedt added 2 commits 2021-04-07 12:16:51 +02:00
@@ -0,0 +51,4 @@
* @return Response
*
* @noinspection PhpUnusedParameterInspection
* @throws Exception
Author
Owner

Das Verhalten ist in WorkingHoursController besser gelöst.

Das Verhalten ist in `WorkingHoursController` besser gelöst.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +32,4 @@
*
* @noinspection PhpUnusedParameterInspection
* @throws NotDatabasesException
* @throws Exception
Author
Owner

Das Verhalten ist in WorkingHoursController besser gelöst.

Das Verhalten ist in `WorkingHoursController` besser gelöst.
TorstenHettstedt marked this conversation as resolved
@@ -0,0 +70,4 @@
* @return Response
*
* @noinspection PhpUnusedParameterInspection
* @throws Exception
Author
Owner

Das Verhalten ist in WorkingHoursController besser gelöst.

Das Verhalten ist in `WorkingHoursController` besser gelöst.
TorstenHettstedt marked this conversation as resolved
TorstenHettstedt added 2 commits 2021-04-07 12:29:51 +02:00
TorstenHettstedt added 1 commit 2021-04-07 12:45:32 +02:00
TorstenHettstedt added 1 commit 2021-04-07 12:59:55 +02:00
TorstenHettstedt merged commit 31a3f4cc01 into master 2021-04-07 13:00:46 +02:00
TorstenHettstedt deleted branch api-erstellen 2021-04-07 13:01:27 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Blocks
#2 HTML-Oberfläche
TorstenHettstedt/PHP-App-Timekeeping
Reference: TorstenHettstedt/PHP-App-Timekeeping#1