loopbackio / loopbackio/loopback-datasource-juggler

[BUG] create helper function ignores the id property when it's equal to 0.

Abierto
#1,968 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug
Lenguaje dominante
JavaScript
Estrellas
282
Forks
366
Merge medio
17 h 4 min
PR fusionados (30 d)
10

Descripción

Description :
Create call on a loopback model returns a property id as a response, in case where the property id starts from 0 it is removed from response. This is because the create function( dao.js line no 378) which gets the id as a callback on the create call in a loopback model, does not accepts 0 as an id.

Code snippet from dao.js
if id is 0 it is skipping the if block

function createCallback(err, id, rev) {          
if (id) {
  obj.__data[_idName] = id;
   defineReadonlyProp(obj, _idName, id);
}

We have a scenario where the id starts from 0, and this is causing the id property for our 0th element to be removed from the response.

Steps to reproduce :

  • Model which has a property id which starts from 0.
  • Call the api to create which will have the id (starting from 0) in response.
  • Response will be missing the id property for the first call where id is 0, and it'll add the id property in response starting from id as 1 onwards.

Current Response Behaviour :
id is removed when its value is equal to 0

{
    "property1" : "property1",
   "property2" : "property2"
}

Expected Results :

{
    "id" : 0
    "property1" : "property1",
    "property2" : "property2"
}

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza en la función createCallback de dao.js, alrededor de la línea 378, y sigue cómo se asigna el ID del callback al objeto creado. Reproduce una llamada create con un ID de 0, luego añade cobertura para la respuesta esperada y verifica que se conserven los IDs de 0 en adelante.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
databases
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.