Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(PC-31625) Add PriceCategory.idAtProvider in public API #13947

Conversation

tcoudray-pass
Copy link
Contributor

@tcoudray-pass tcoudray-pass commented Sep 3, 2024

But de la pull request

Ticket Jira (ou description si BSR) : https://passculture.atlassian.net/browse/PC-31625

image

In this PR:

  • update of offer core api create_price_category and edit_price_category methods
  • update of POST event, POST price categories and PATCH price category public API endpoints
  • addition of GET price categories endpoint

Vérifications

  • J'ai écrit les tests nécessaires
  • J'ai mis à jour le fichier des plans de tests du portail pro si nécessaire
  • J'ai mis à jour la liste des routes et des titres de pages du portail pro si j'en ai rajouté/modifié ou supprimé une.
  • J'ai relu attentivement les migrations, en particulier pour éviter les locks, et je préviens les équipes Shérif et Data
  • J'ai ajouté des screenshots pour d'éventuels changements graphiques

@tcoudray-pass tcoudray-pass force-pushed the tcoudray-pass/PC-31625-add-price-category-id-at-provider-in-public-api branch from 159d9c4 to 01bd4d2 Compare September 4, 2024 09:51
@tcoudray-pass tcoudray-pass force-pushed the tcoudray-pass/PC-31625-add-price-category-id-at-provider-in-public-api branch 3 times, most recently from 7a3da53 to 5bf537a Compare September 4, 2024 13:57
… POST price categories and PATCH price category endpoints
@tcoudray-pass tcoudray-pass force-pushed the tcoudray-pass/PC-31625-add-price-category-id-at-provider-in-public-api branch from 5bf537a to 6d19af2 Compare September 4, 2024 14:45
Copy link
Contributor

github-actions bot commented Sep 4, 2024

mypy cop report: 436 (master) ↗ 437 (your branch)

Add changes related to price category idAtProvider
@tcoudray-pass tcoudray-pass force-pushed the tcoudray-pass/PC-31625-add-price-category-id-at-provider-in-public-api branch from 95ea2ef to 6347f30 Compare September 4, 2024 16:10
Copy link
Contributor

@jeremieb-pass jeremieb-pass left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A voir aussi si on ne veut pas rajouter des cas de tests pour l'api où on s'assure qu'on ne peut pas aller modifier une catégorie de prix à laquelle on n'a pas accès avec la clé d'API.

Comment on lines +485 to +491
# unique idAtProvider
if price_category.id_at_provider:
if price_category.id_at_provider in unique_id_at_provider_list:
raise ValueError(
f"Price category `idAtProvider` must be unique. Duplicated value : {price_category.id_at_provider}"
)
unique_id_at_provider_list.add(price_category.id_at_provider)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Simple suggestion, c'est du détail (l'avantage est d'avoir en quelques lignes tous les ids dupliqués)
⚠️ écrit à la main, sans vérifier en détail que tout fonctionne, c'est juste pour donner l'idée

Suggested change
# unique idAtProvider
if price_category.id_at_provider:
if price_category.id_at_provider in unique_id_at_provider_list:
raise ValueError(
f"Price category `idAtProvider` must be unique. Duplicated value : {price_category.id_at_provider}"
)
unique_id_at_provider_list.add(price_category.id_at_provider)
from collections import Counter
ids = Counter([pc.id_at_provider for pc in price_categories if pc.id_at_provider])
duplicates = [id_at_provider for id_at_provider, count in ids.items() if count > 1]
if duplicates:
raise ValueError("Price category `idAtProvider` must be unique. Duplicate values: {duplicates}")

Copy link
Contributor Author

@tcoudray-pass tcoudray-pass Sep 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je suis d'accord avec toi. Est-ce que ça te va si je fais ça dans une petite refacto à côté (en appliquant la même logique pour les couples (label, prix)) ?

@tcoudray-pass
Copy link
Contributor Author

A voir aussi si on ne veut pas rajouter des cas de tests pour l'api où on s'assure qu'on ne peut pas aller modifier une catégorie de prix à laquelle on n'a pas accès avec la clé d'API.

@jeremieb-pass : En fait ce check est fait à partir de l'offre. Pour pouvoir accéder à la price category, il faut avoir accès à l'offre. C'est ce que check les test 404 en début de class.

@tcoudray-pass tcoudray-pass merged commit f39dcd1 into master Sep 5, 2024
23 checks passed
@tcoudray-pass tcoudray-pass deleted the tcoudray-pass/PC-31625-add-price-category-id-at-provider-in-public-api branch September 5, 2024 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants