Helper functions for slug processing
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
Línea de trabajo
Comienza leyendo el issue relacionado #151 para entender el contexto de procesamiento de slugs solicitado. Después, define los contratos de los helpers indicados y sus comportamientos de validación, búsqueda, normalización y transferencia según este issue. El trabajo estará terminado cuando todos los helpers especificados admitan los casos documentados de éxito y error, incluido el rollback de la transferencia de slugs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 3
- Forks
- 6
- Merge medio
- 4 d 9 h
- PR fusionados (30 d)
- 5
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CenterForDigitalHumanities/rerum_server_nodejs
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
backend dependencies easy
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CenterForDigitalHumanities/rerum_server_nodejs#290 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
Todos los issues de CenterForDigitalHumanities/rerum_server_nodejs
Issues similares
-
Complexity: Small P-Feature: Projects page ready for merge team role: back end/devOps role: front end size: 0.25pt
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 67/100
bellingcat/toolkit#905 ·
-
self-care self-care:docs-build-time-investigator
Dificultad 2/5 Medio día Aptitud para principiantes 76/100
githubnext/gh-aw-cao#14191 ·
Los mantenedores suelen responder en 1 día
-
effort:low impact:medium RAG status: auto-triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
mastra-ai/mastra#25229 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
sugarlabs/musicblocks#8984 ·
Los mantenedores suelen responder en 1 día