Returned error in result missing error subject (discovered in metafield create/update)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza en activeresource.py, en la clase Errors y su método from_hash, y después inspecciona cómo se desempaquetan las claves de error anidadas. Reproduce el caso metafield-on-variant usando la respuesta metafields.namespace mostrada. Se considera terminado cuando el error devuelto conserva la clave subject en lugar de perder el campo que causa el error.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The shopify API returns the subject of an error as a key in the json error string, and pyactiveresource sometimes adds the value but not the key when it unpacks the string.
This probably shows up for some errors generated when adding or modifying variants or metafields, as they show up as lists of hashes in the object attributes. I hit a problem when adding or updating a metafield on a variant, and decided to dig.
The issue is in class Errors in activeresource.py:
def from_hash(self, messages):
attribute_keys = self.base.attributes.keys()
for key, errors in six.iteritems(messages):
for message in errors:
if key in attribute_keys:
self.add(key, message)
else:
self.add_to_base(message)
An error return like this:
{
"errors": {
"metafields.namespace": ["can't be blank", "is too short (minimum is 3 characters)"]
}
}
(caused by trying to create or update a metafield with the key "name-space" instead of "namespace" :) will lose the important tidbit, the field causing the issue: "metafields" is a key in the variant attributes, but "metafields.namespace" is not.
Perhaps this might be a more robust approach?
def from_hash(self, messages):
attribute_keys = self.base.attributes.keys()
for key, errors in six.iteritems(messages):
for message in errors:
if key.split('.')[0] in attribute_keys:
self.add(key, message)
else:
self.add_to_base(' '.join([key, message]))
Thanks!
Rick
- Lenguaje dominante
- Python
- Estrellas
- 1.4k
- Forks
- 388
- Merge medio
- 5 h 39 min
- PR fusionados (30 d)
- 1
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Shopify/shopify_python_api
-
automated
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Shopify/shopify_python_api#799 ·
-
automated Stale
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Shopify/shopify_python_api#796 · 2 comentarios ·
-
automated
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Shopify/shopify_python_api#792 ·
-
Account Activation URL Abiertofeature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
Shopify/shopify_python_api#275 · 4 comentarios ·
-
feature request
Dificultad 2/5 1-3 horas Aptitud para principiantes 38/100
Shopify/shopify_python_api#233 ·
Todos los issues de Shopify/shopify_python_api
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
learningequality/ricecooker#747 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
run-llama/llama_index#23199 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
KhronosGroup/glTF-Blender-IO#2769 ·