Die folgende Funktion ist für ein "Sammlungsmodell".Bedingtes Aktualisieren/Löschen eines Dokuments im Backend. Sollte ich? Ordne ich eine HTTP-Methode PUT, POST oder DELETE zu?
Bei bestimmten Bedingungen möchte ich das Dokument entweder löschen oder aktualisieren.
Sollte ich einen PUT oder DELETE verwenden?
Ich könnte sie trennen und Überprüfung/Bedingungen auf dem Client überprüfen, aber das scheint weniger trocken.
Ich muss dem Client und dem Server zusätzliche Codezeilen hinzufügen, um dasselbe zu erreichen.
CollectionSchema.statics.kill = function(o, cb) {
return Collection
.findAsync(o)
.then(function(existing) {
if (existing.length && (existing[0].vote !== 0 || existing[0].favorite == true)) {
return Collection
.findByIdAndUpdate(o, {
collected: !existing[0].collected
}, {
new: true
})
.then(function(updated) {
console.log('updated ', updated)
return updated;
}).catch(function(err) {
return err;
})
} else if (existing.length && existing[0].vote == 0 && existing[0].favorite == false) {
return Collection
.removeAsync({
_id: existing[0]._id
})
.then(function(deleted) {
return {
message: 'deleted collection'
}
}).catch(function(err) {
return err;
})
}
}).catch(function(err) {
return err;
})
};
Wahrscheinlich so, es scheint nur ein weniger trockener Weg. – NoobSter
In manchen Fällen muss man zwischen DRY und KISS wählen, ich bevorzuge KISS, aber das ist ein Standpunkt. – Odonno