johan-bouguermouh / epikure

0 stars 0 forks source link

Scrap https://www.lesfruitsetlegumesfrais.com/ #4

Closed johan-bouguermouh closed 1 month ago

johan-bouguermouh commented 1 month ago

Mise en place d'un script de scrapping pour récupérer des informations liées aux produits

Entité Product

Nom de l'attribut Type Contraintes Description
id number PrimaryGeneratedColumn Identifiant unique du produit
name string nullable: false, length: 255 Nom du produit
description string nullable: false, length: 255 Courte description du produit
categoryProducts CategoryProduct ManyToOne Appartenance à une ou plusieurs catégories
harvestStartMounth number nullable: false Date de début de récolte
harvestEndMounth number nullable: false Date de fin de récolte
thumbnail string nullable: false URL de la miniature du produit
urlBannerImage string nullable: false URL de la bannière du produit
conservationTime number nullable: false Temps de conservation du produit en jours
nutriscore NutriScoreDto[] type: 'simple-json', nullable: false Nutriscore du produit

Entité CategoryProduct

Nom de l'attribut Type Contraintes Description
id number PrimaryGeneratedColumn Identifiant unique de la catégorie
name string nullable: false, length: 255, Unique(['name']) Nom de la catégorie
products Product[] OneToMany Liste des produits dans cette catégorie

Entité NutriScoreDto

Nom de l'attribut Type Contraintes Description
name string @IsString(), @IsNotEmpty() Nom du critère du Nutriscore
value string @IsString(), @IsNotEmpty() Valeur du critère du Nutriscore

Exemples de Requêtes POST pour Créer un Produit

{
  "name": "Pomme",
  "description": "Une pomme rouge juteuse",
  "categoryProductsId": 1,
  "harvestStartMounth": 9,
  "harvestEndMounth": 10,
  "thumbnail": "http://example.com/images/pomme_thumbnail.jpg",
  "urlBannerImage": "http://example.com/images/pomme_banner.jpg",
  "conservationTime": 30,
  "nutriscore": [
    {
      "name": "Calories",
      "value": "52"
    },
    {
      "name": "Fat",
      "value": "0.2g"
    }
  ]
}
johan-bouguermouh commented 1 month ago

Voici un exemple de body qui marche :

"{
  "name": "Melon",
  "description": "Rond et savoureux, il fait partie des fruits et légumes d’été préférés des Français. Il se consomme aujourd’hui surtout comme un fruit, mais agrémente également des préparations salées.",
  "categoryProductId":  1,
  "harvestStartMounth": 6,
  "harvestEndMounth": 9,
  "thumbnail": "https://www.lesfruitsetlegumesfrais.com/media/lfm-media/Produits/Produit/Melon-descrip.jpg",
  "urlBannerImage": "https://www.lesfruitsetlegumesfrais.com/media/lfm-media/Produits/Produit/Melon-banniere.jpg",
  "conservationTime": 6,
  "nutriscore": [
    {
      "name": "Provitamine A Béta-carotène",
      "value": "2500 µg"
    },
    {
      "name": "Vitamine B9",
      "value": "58,90 µg"
    },
    {
      "name": "Potassium",
      "value": "380 mg"
    }
  ]
}
"