loopbackio / loopbackio/loopback-datasource-juggler
[BUG] Empty string id is not correctly validated by forceId
Nessuno ha ancora preso questa issue.
- Lingua principale
- JavaScript
- Stelle
- 282
- Fork
- 366
- Merge medio
- 17h 4m
- PR unite (30g)
- 10
Descrizione
Description/Steps to reproduce
- define a model with
forceId: true - associate this model to a mongodb data source
- call the API to create a new model with an explicit empty string id
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "{
\"id\": \"\"
}" "http://localhost:3000/api/foos"
- this call creates a db entry with empty id and returns:
{"id": ""}
Seems related to #1453 (see my comment)
Link to reproduction sandbox
https://github.com/simonbrunel/loopback-sandbox/tree/bug/empty-id-mongodb
Expected result
{
"error": {
"name": "ValidationError",
"status": 422,
"message": "The `foo` instance is not valid. Details : `id` can't be set (value: \"\").",
"statusCode": 422,
"details": {
"context": "foo",
"codes": {
"id": [
"absence"
]
},
"messages": {
"id": [
"can't be set"
]
}
}
}
}
Additional information
node v6.11.3, Windows 10 64bit
npm ls --prod --depth 0 | grep loopback
loopback-sandbox@1.0.0
+-- loopback@2.39.0
+-- loopback-boot@2.27.0
+-- loopback-component-explorer@2.7.0
+-- loopback-datasource-juggler@2.55.3
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il problema utilizzando il branch loopback-sandbox collegato, con un modello configurato con forceId: true e una sorgente dati MongoDB. Traccia il percorso di creazione dell'API e la validazione di forceId per un id esplicitamente vuoto; il lavoro è completato quando la richiesta viene rifiutata con il 422 ValidationError documentato invece di creare una voce nel database.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, mongodb, node.js
- Ambito
- backend, database
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100