loopbackio / loopbackio/loopback-next

Empty relation should return empty array

Abierto
#8,910 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug
Lenguaje dominante
TypeScript
Estrellas
5.1k
Forks
1.1k
Merge medio
2 d 21 h
PR fusionados (30 d)
27

Descripción

### Describe the bug

Hi,

I'm migrating a project from loopback 3 to loopback 4 and I found inconsistencies between the two regarding relations.

I am querying a model which have a HasMany relation on another model like this:

```
export class User extends Entity {
...

@hasMany(() => Order)
orders: Order[];

...
}
```

The query looks like this:
`/users?filter={"include": ["orders"]}`

In the answer, I got an `orders` property for `users` that have orders **but** no `orders` property for users that don't. Here is an API response for example:
```
[
...
{
"id": "__",
"email": "admin@example.com",
},
{
"id": "__",
"email": "support@example.com",
"orders": [
{...}
]
},
...
]
```

Is this an intended behavior in loopback 4 ? I find this much harder to deal with undefined property instead of empty array when querying model with relation.

Best regards

### Logs

_No response_

### Additional information

_No response_

### Reproduction

https://codesandbox.io/s/falling-frost-qn03xh?file=/src/models/user.model.ts

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 con la reproducción de CodeSandbox enlazada en el issue e inspecciona cómo se representa una relación HasMany incluida en la respuesta de users. Compara users con y sin orders y, después, sigue el procesamiento de includes para determinar la forma esperada de la respuesta. Se considera terminado cuando el comportamiento está definido y cubierto tanto para relaciones con datos como para relaciones vacías.

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

Evaluación

Stack tecnológico
typescript
Área
api, backend
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.