{
  "info": {
    "name": "API YGG",
    "description": "Collection Postman pour tester l'API YGG Express.js",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:3000/api",
      "type": "string"
    },
    {
      "key": "token",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Health Check",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/health",
          "host": ["{{baseUrl}}"],
          "path": ["health"]
        },
        "description": "Vérifier l'état de l'API"
      }
    },
    {
      "name": "Auth",
      "item": [
        {
          "name": "Login",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "if (pm.response.code === 200) {",
                  "    var jsonData = pm.response.json();",
                  "    pm.collectionVariables.set('token', jsonData.data.token);",
                  "    console.log('Token saved:', jsonData.data.token);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nickname\": \"votre_pseudo\",\n  \"password\": \"votre_mot_de_passe\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/auth/login",
              "host": ["{{baseUrl}}"],
              "path": ["auth", "login"]
            },
            "description": "Connexion utilisateur"
          }
        },
        {
          "name": "Get Me",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/auth/me",
              "host": ["{{baseUrl}}"],
              "path": ["auth", "me"]
            },
            "description": "Récupérer les informations de l'utilisateur connecté"
          }
        },
        {
          "name": "Refresh Token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/auth/refresh",
              "host": ["{{baseUrl}}"],
              "path": ["auth", "refresh"]
            },
            "description": "Rafraîchir le token JWT"
          }
        }
      ]
    },
    {
      "name": "Users",
      "item": [
        {
          "name": "Get My Profile",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/profile",
              "host": ["{{baseUrl}}"],
              "path": ["users", "profile"]
            },
            "description": "Récupérer son propre profil"
          }
        },
        {
          "name": "Get Profile By ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/users/profile/123",
              "host": ["{{baseUrl}}"],
              "path": ["users", "profile", "123"]
            },
            "description": "Récupérer le profil d'un utilisateur par ID"
          }
        },
        {
          "name": "Update Profile",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"age\": 26,\n  \"gender\": \"male\",\n  \"country\": \"France\",\n  \"profile_desc\": \"Ma nouvelle description\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/users/profile",
              "host": ["{{baseUrl}}"],
              "path": ["users", "profile"]
            },
            "description": "Mettre à jour son profil"
          }
        }
      ]
    },
    {
      "name": "Torrents",
      "item": [
        {
          "name": "Get My Torrents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/torrents?limit=10&offset=0",
              "host": ["{{baseUrl}}"],
              "path": ["users", "torrents"],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                }
              ]
            },
            "description": "Récupérer ses propres torrents"
          }
        },
        {
          "name": "Get User Torrents By ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/users/torrents/123?limit=10&offset=0",
              "host": ["{{baseUrl}}"],
              "path": ["users", "torrents", "123"],
              "query": [
                {
                  "key": "limit",
                  "value": "10"
                },
                {
                  "key": "offset",
                  "value": "0"
                }
              ]
            },
            "description": "Récupérer les torrents d'un utilisateur par ID"
          }
        }
      ]
    },
    {
      "name": "Comments",
      "item": [
        {
          "name": "Get My Comments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{token}}"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/users/comments?limit=15&offset=0",
              "host": ["{{baseUrl}}"],
              "path": ["users", "comments"],
              "query": [
                {
                  "key": "limit",
                  "value": "15"
                },
                {
                  "key": "offset",
                  "value": "0"
                }
              ]
            },
            "description": "Récupérer ses propres commentaires"
          }
        },
        {
          "name": "Get User Comments By ID",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/users/comments/123?limit=15&offset=0",
              "host": ["{{baseUrl}}"],
              "path": ["users", "comments", "123"],
              "query": [
                {
                  "key": "limit",
                  "value": "15"
                },
                {
                  "key": "offset",
                  "value": "0"
                }
              ]
            },
            "description": "Récupérer les commentaires d'un utilisateur par ID"
          }
        }
      ]
    }
  ]
}

