Skip to content

Commit

Permalink
ajout du job de merge vers la branche main
Browse files Browse the repository at this point in the history
  • Loading branch information
Florent228 committed Aug 22, 2024
1 parent 7b39532 commit 7db1037
Show file tree
Hide file tree
Showing 2 changed files with 253 additions and 16 deletions.
25 changes: 22 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ jobs:
lower_repo_owner=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
docker tag kawa_customer:latest ghcr.io/${lower_repo_owner}/kawa_customer:latest
docker push ghcr.io/${lower_repo_owner}/kawa_customer:latest
- name: Clean up Docker images
run: |
Expand All @@ -61,8 +60,28 @@ jobs:
else
echo "Image kawa_customer:latest not found. Skipping cleanup."
fi
- name: Display Docker image path
run: echo "ghcr.io/${{ github.repository_owner }}/kawa_customer:latest"
# End of file

merge-to-main:
needs: build-and-push-docker
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/dev'
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: dev

- name: Configure git
run: |
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Merge dev into main
run: |
git fetch origin
git checkout main
git merge dev --no-ff --commit -m "Automated merge of dev into main"
git push origin main
244 changes: 231 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,231 @@
# Kawa_customer


CREATE TABLE Clients(
id BYTE,
nom VARCHAR(50),
prenom VARCHAR(150),
date_naissance DATE,
adresse VARCHAR(150) NOT NULL,
email VARCHAR(50),
mot_de_passe VARCHAR(150),
PRIMARY KEY(id)
);
# API de Gestion des Clients : Kawa_customer

Cette API permet la gestion des clients, incluant la création, la lecture, la mise à jour et la suppression de clients. L'API utilise JWT pour la sécurisation des routes sensibles.

## Base URL

`http://localhost:3000/api`

## Endpoints

### 1. Authentification

**POST** `/login`

Authentifie un client et renvoie un token JWT.

- **Corps de la requête :**
```json
{
"email": "string",
"mot_de_passe": "string"
}
```

- **Réponse :**
```json
{
"id": "int",
"email": "string",
"accessToken": "string"
}
```

- **Codes d'erreur :**
- `404 Not Found` : Client non trouvé.
- `401 Unauthorized` : Mot de passe invalide.

### 2. Créer un client

**POST** `/customers`

Crée un nouveau client dans la base de données.

- **Corps de la requête :**
```json
{
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"mot_de_passe": "string",
"adresse": "string"
}
```

- **Réponse :**
```json
{
"id": "int",
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"adresse": "string"
}
```

- **Codes d'erreur :**
- `400 Bad Request` : Requête mal formée ou données manquantes.
- `500 Internal Server Error` : Erreur lors de la création du client.

### 3. Récupérer tous les clients

**GET** `/customers`

Récupère la liste de tous les clients.

- **Headers :**
- `x-access-token` : Token JWT pour l'authentification.

- **Réponse :**
```json
[
{
"id": "int",
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"adresse": "string"
},
...
]
```

- **Codes d'erreur :**
- `401 Unauthorized` : Token JWT manquant ou invalide.
- `500 Internal Server Error` : Erreur lors de la récupération des clients.

### 4. Récupérer un client par ID

**GET** `/customers/:clientId`

Récupère un client spécifique en utilisant son ID.

- **Paramètres d'URL :**
- `clientId` : ID du client (int)

- **Réponse :**
```json
{
"id": "int",
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"adresse": "string"
}
```

- **Codes d'erreur :**
- `404 Not Found` : Client non trouvé.
- `500 Internal Server Error` : Erreur lors de la récupération du client.

### 5. Mettre à jour un client

**PUT** `/customers/:clientId`

Met à jour les informations d'un client existant.

- **Paramètres d'URL :**
- `clientId` : ID du client (int)

- **Headers :**
- `x-access-token` : Token JWT pour l'authentification.

- **Corps de la requête :**
```json
{
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"mot_de_passe": "string",
"adresse": "string"
}
```

- **Réponse :**
```json
{
"id": "int",
"nom": "string",
"prenom": "string",
"date_naissance": "date",
"email": "string",
"adresse": "string"
}
```

- **Codes d'erreur :**
- `400 Bad Request` : Requête mal formée ou données manquantes.
- `404 Not Found` : Client non trouvé.
- `500 Internal Server Error` : Erreur lors de la mise à jour du client.

### 6. Supprimer un client

**DELETE** `/customers/:clientId`

Supprime un client de la base de données.

- **Paramètres d'URL :**
- `clientId` : ID du client (int)

- **Headers :**
- `x-access-token` : Token JWT pour l'authentification.

- **Réponse :**
```json
{
"message": "Le client a été supprimé avec succès !"
}
```

- **Codes d'erreur :**
- `404 Not Found` : Client non trouvé.
- `500 Internal Server Error` : Erreur lors de la suppression du client.

## Sécurité

Certaines routes de l'API (comme la récupération, la mise à jour, et la suppression des clients) sont protégées par des tokens JWT. Assurez-vous d'inclure le token d'accès dans les en-têtes de requête sous `x-access-token` pour ces routes.

## Installation et Utilisation

1. Clonez ce dépôt : `git clone <URL du dépôt>`
2. Naviguez dans le répertoire du projet : `cd <nom du projet>`
3. Installez les dépendances : `npm install`
4. Démarrez le serveur : `npm start`

Le serveur sera disponible sur `http://localhost:3000/api`.

## Tests

Pour exécuter les tests, utilisez la commande :

```bash
npm test
```

## Scipt de la table

CREATE TABLE `clients` (
`id` int(11) NOT NULL,
`nom` varchar(50) DEFAULT NULL,
`prenom` varchar(150) DEFAULT NULL,
`date_naissance` date DEFAULT NULL,
`adresse` varchar(150) NOT NULL,
`email` varchar(50) DEFAULT NULL,
`mot_de_passe` varchar(150) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE `clients`
ADD PRIMARY KEY (`id`);

ALTER TABLE `clients`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=147;
COMMIT;

## License

Ce projet est sous licence MIT.

0 comments on commit 7db1037

Please sign in to comment.