dnum-mi / referentiel-applications

MIT License
2 stars 0 forks source link

Script d'intégration sur une source de données, permettant d'ajouter des applications #18

Closed Carolinedanslesnuages closed 1 month ago

Carolinedanslesnuages commented 3 months ago

Faire un script qui permet d’intégrer la donnée depuis un fichier json dans le referentiel curl -X 'GET' \ 'https://canel2-1-backend.dev.numerique-interieur.com/api/global-search?query=%2A' \ -H 'accept: /' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJBUFBMSSIsIm5hbWUiOiJEU08iLCJpYXQiOjE1MTYyMzkwMjJ9.hBob79fE97VlChR27KFFjTn22OEoEy202TotgfNvntU'

@CMentG voici le script que tu peux écrire sur un editeur comme VSCode (Je peux te montrer si tu veux )

#!/bin/bash

# Le chemin vers le fichier JSON
FILE_PATH="data.json"

# L'URL de l'endpoint API
API_URL="https://your-api-endpoint.com/api"

# Le token d'authentification
AUTH_TOKEN="your_auth_token"

# Envoyer le fichier JSON en utilisant curl avec le token d'authentification
RESPONSE=$(curl -s -w "\nHTTP_STATUS_CODE:%{http_code}" -X POST -H "Content-Type: application/json" -H "Authorization: Bearer ${AUTH_TOKEN}" --data "@${FILE_PATH}" "${API_URL}")

# Extraire le code de statut HTTP de la réponse
HTTP_STATUS_CODE=$(echo "${RESPONSE}" | grep "HTTP_STATUS_CODE" | awk -F: '{print $2}')

# Extraire le corps de la réponse
RESPONSE_BODY=$(echo "${RESPONSE}" | sed -e 's/HTTP_STATUS_CODE\:.*//g')

# Afficher le code de statut HTTP et le corps de la réponse
echo "HTTP Status Code: ${HTTP_STATUS_CODE}"
echo "Response Body: ${RESPONSE_BODY}"
chmod +x send_json_to_api.sh
./send_json_to_api.sh
CMentG commented 3 months ago

Echec avec curl et le proxy sur Orion. Solution avec la console Firefox :

//const baseEnvUrl = 'monUrl';
//const token = 'monToken';

endpoint = '/api/applications';
params = new URLSearchParams();
//params.append('currentPage', '1');
//params.append('maxPerPage', 100);

dataSet = [{
    "longname": "TESTINT_" + new Date().toISOString(),
    "description": "test d'intégration",
    "statut": "BLD",
    "organisationid": "98e14979-df97-44f6-a826-82f0912d633c"
  },
  {
    "longname": "TESTINT_" + new Date().toISOString(),
    "description": "test d'intégration",
    "statut": "BLD",
    "organisationid": "98e14979-df97-44f6-a826-82f0912d633c"
  }
];

// Fonction pour effectuer une requête Fetch pour un élément donné
function envoyerRequete(data) {
  fetch(`${baseEnvUrl}${endpoint}?` + params.toString(), {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
      },
      body: JSON.stringify(data)
    })
    .then(response => response.json())
    .then(data => {
      console.log(data);
    })
    .catch(error => {
      console.error('Erreur:', error);
    });
}

// Itérer sur le tableau et envoyer une requête pour chaque élément
dataSet.forEach(data => {
  envoyerRequete(data);
});

/* //gérer les résultats une fois que toutes les requêtes sont terminées
Promise.all(dataSet.map(element => envoyerRequete(element)))
  .then(responses => {
    console.log('Toutes les requêtes ont réussi:', responses);
  })
  .catch(error => {
    console.error('Une erreur s\'est produite:', error);
  });
/*
CMentG commented 3 months ago

Curl à faire pour mettre dans la chaine de déploiement

Carolinedanslesnuages commented 2 months ago

Le curl fonctionne pour le GET sur le noémi , pas pour le poste problème d'autorisation.

CMentG commented 1 month ago

Initialisation directement avec l'API et du JSON