Ich habe ein Problem mit falowing Situation:Loopback model.find basierend auf param aus verwandtem Modell
Model 1: Guest - props {"slug":"string"}
Model 2: Project - props {"prefix":"string"}
Relation: Project has many guests
Wie Remote-Methode schreiben: findGuestWithProject(prefix, slug)
die guest
mit slug
(genauer Übereinstimmung aber Groß- und Kleinschreibung) zurück und verwandter Projekt mit genauen prefix
?
Probleme die ich gestoßen:
Initial Filter Rückkehr
Guests
mit ähnlichen, aber nicht genau Slug F. E. Wenn ich passiere"anna"
.find
könnte Gäste mit Slug"anna-maria"
zurückgeben, so später muss ich überprüfen ID Slug ist genau das gleiche.Erstes Filter zurück
Guests
mit verschiedenenproject.prefix
so muss ich extra Schleife zu finden, genau zu finden.Ich muss Iteration zählen, um Rückruf zurückzugeben, wenn keine Übereinstimmung gefunden wird.
Guest.getGuestProject = function(prefix, slug, cb) {
if (!prefix) return;
var pattern = new RegExp(slug, "i");
app.models.Project.findOne({
"where": {"prefix": prefix}
},(err, project) => {
if (err) { throw err};
if (!project) cb(null, null);
return project.guests({
"where": {"slug": pattern },
"include": {"relation": "project", "scope": {"include": {"relation": "rsvps"}}}
}, (err, guests) => {
if (guests.length === 0) cb(null, null)
guests.forEach(guest => {
if (guest.slug.toLowerCase() === slug.toLowerCase()) {
cb(null, guest)
}
})
})
})