Helper functions for slug processing
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
Direzione di ricerca
Inizia leggendo l’issue correlata #151 per comprendere il contesto di elaborazione degli slug richiesto. Poi definisci i contratti degli helper elencati e i relativi comportamenti di validazione, ricerca, normalizzazione e trasferimento descritti in questa issue. Il lavoro è completato quando tutti gli helper specificati supportano i casi documentati di successo ed errore, incluso il rollback del trasferimento degli slug.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In support of #151, the following transforming library for slugs should be added:
getSlugFromMetadata(__rerum:Object)->validSlug:String- extract
"this-slug"from DB record property{__rerum: { slug : "this-slug" } } - throw invalid argument if not
__rerummetadata - return empty
""ifslugproperty empty or missing
- extract
assignSlug(slug:String, document:Object)->document:Object- insert or overwrite
"this-slug"to__rerumproperty for traditional save - empty/remove slug with empty
""
- insert or overwrite
findBySlug(slug:String)async ->document:Object- RERUM lookup for slug match
- 404 on a miss, 400 on a bad slug
transferSlug(toDocument:Object, fromDocument?:Object)async ->200 <location>- RERUM upsert toDocument with
"this-slug"and RERUM patch fromDocument with{ __rerum.slug: "" } - A single transaction, revert on a failure
- RERUM upsert toDocument with
slugExists(slug:String)async ->Boolean- *findBySlug(slug) is not 40x
slugIsValid(slug:String)->Boolean- slug and normalizeSlug(slug) match
normalizeSlug(userSlug:String)->validSlug:String- "This, That & the Other! Various Outré Considerations" -> "this-that-the-other-various-outre-considerations"
buildSluggedId(validSlug:String)->atIdUrl:Url- "this-slug" -> "https://store.rerum.io/v1/id/this-slug"
Only "normalizeSlug" takes user input.
- Lingua principale
- JavaScript
- Stelle
- 3
- Fork
- 6
- Merge medio
- 4g 9h
- PR unite (30g)
- 5
Preparare l'ambiente
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.
Altre issue di CenterForDigitalHumanities/rerum_server_nodejs
-
bug documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
backend dependencies easy
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
CenterForDigitalHumanities/rerum_server_nodejs#290 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
Tutte le issue di CenterForDigitalHumanities/rerum_server_nodejs
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
solana-foundation/solana-com#2202 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
yegor256/copyrights-action#216 ·
-
[BUG] onScroll never refreshes the window container's height after a vertical-only viewport resizeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
juliangarnier/anime#1192 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
PedestrianDynamics/pyFDS-Evac#226 ·
I maintainer di solito rispondono entro 1 giorno