Skip to content

Proposition de solution de Mick - #1

Open
mick-manda wants to merge 1 commit into
adaedra:mainfrom
mick-manda:solution-mick
Open

Proposition de solution de Mick#1
mick-manda wants to merge 1 commit into
adaedra:mainfrom
mick-manda:solution-mick

Conversation

@mick-manda

Copy link
Copy Markdown

No description provided.

@AlexisVincentManda

Copy link
Copy Markdown

De mon côté j'avais été plus verbeux en vérifiant les types pour les cas de fail comme par exemple [_, { error: String => msg, ** }]

J'avais mis un _ plutôt que 500 pour gérer tout ce qui n'est pas 200 comme une erreur

Et en l'écrivant je me dis que plutôt que 200 pour les succès on pourrait faire un range in [200..299, {}]

@adaedra

adaedra commented Oct 6, 2025

Copy link
Copy Markdown
Owner

J'avais mis un _ plutôt que 500 pour gérer tout ce qui n'est pas 200 comme une erreur

J'avais ça dans mon implémentation initiale aussi, je crois que j'avais un pattern in [500, { }] | [_, { success: false, **nil }] ou similaire pour en aggréger plusieurs

Et oui, tu peux parfaitement mettre une range (quoi que ce soit qui implémente ===) aussi, c'est une bonne pratique aussi

@adaedra adaedra left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

C'est super cool, t'aurais pu utiliser plus du local binding c:

in [200, {success: false}]
Result::Failure.new([])
in [200, {payload:}]
Result::Success.new(api[:payload])

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
Result::Success.new(api[:payload])
Result::Success.new(payload)

Comment on lines +14 to +15
in [200, Hash]
Result::Success.new(api.except(:success))

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
in [200, Hash]
Result::Success.new(api.except(:success))
in [200, { success:, **payload }]
Result::Success.new(payload)

Comment on lines +20 to +23
in [500, {error:}]
Result::Failure.new([api[:error]])
in [500, {errors:}]
Result::Failure.new(api[:errors])

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
in [500, {error:}]
Result::Failure.new([api[:error]])
in [500, {errors:}]
Result::Failure.new(api[:errors])
in [500, {error:}]
Result::Failure.new([error])
in [500, {errors:}]
Result::Failure.new(errors)

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.

3 participants