Listas
Colecciones y rankings, y los juegos que contienen.
Una lista es alcanzable por su id o su id público. La respuesta trae owned, para que el cliente sepa si puede escribir antes de intentarlo.
/api/ v1/ lists/ {id}/ tiersTierlist visible con portadas. pool=1 incluye juegos disponibles para su dueño.
/api/ v1/ lists/ {id}/ collaboratorsQuién edita los juegos de la lista con su dueño, tan visible como la propia lista.
/api/ v1/ lists/ {id}/ collaboratorsInvita a alguien a editar los juegos. Cuerpo: username. Solo el dueño; hasta 20 personas; las cuentas bloqueadas no se encuentran. Los colaboradores añaden, quitan, reordenan y marcan juegos; nombre, visibilidad y eliminación siguen siendo del dueño.
/api/ v1/ lists/ {id}/ collaboratorsQuita un colaborador: profile_id en la query. El dueño quita a cualquiera; un colaborador se quita a sí mismo para salir.
/api/ v1/ search/ listsListas públicas, 24 por página. q, kind: COLLECTION o TIERLIST, sort: recent, oldest o name; page: 1 a 100.
/api/ v1/ listsLas listas del dueño.
/api/ v1/ lists/ foldersLas carpetas del dueño, con cuántas listas hay en cada una. unfiled cuenta las listas sin carpeta. Una carpeta es solo un título sobre listas: no tiene visibilidad propia, así que archivar una lista privada no la publica y archivar una pública no la esconde.
/api/ v1/ lists/ foldersCrea una carpeta. Pedir un nombre que ya existe devuelve esa carpeta, y `created` dice qué pasó.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
nameobligatorio | string | Hasta 60 caracteres. |
position | integer | El orden del dueño, de 0 a 999. Alfabético no es lo que nadie quiere decir con sus propios estantes. |
/api/ v1/ lists/ folders/ {id}Renombra una carpeta o la mueve en el orden. La carpeta de otra persona no se rechaza: sencillamente no existe para quien pregunta.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
name | string | Hasta 60 caracteres. |
position | integer | 0 a 999. |
/api/ v1/ lists/ folders/ {id}Olvida una carpeta. Las listas que había quedan sin carpeta y siguen existiendo: ordenar un estante no es tirar lo que había en él.
/api/ v1/ listsCrea una lista. Responde 201.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
nameobligatorio | string | Hasta 100 caracteres. |
description | string | Hasta 500 caracteres. |
kind | string | COLLECTION o TIERLIST. Una TIERLIST nace con cinco filas: una creada sin ellas no tendría dónde poner nada. |
visibility | string | PUBLIC, FOLLOWERS o PRIVATE. |
ranked | boolean | Un ranking en lugar de una colección. |
/api/ v1/ lists/ {id}Una lista con sus elementos. Acepta el id o el id público, y trae `owned` para que el cliente sepa si puede escribir.
/api/ v1/ lists/ {id}Renombra una lista o cambia su descripción, visibilidad, orden o comments_scope, que acepta EVERYONE, FOLLOWERS o NOBODY. folder_ids archiva la lista en las carpetas tuyas que nombre, reemplazando las anteriores: una lista puede estar en varias, y una lista vacía la saca de todas. Archivar no cambia quién ve qué.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
name | string | Hasta 120 caracteres. |
description | string | Hasta 1000 caracteres. |
visibility | string | PUBLIC, FOLLOWERS o PRIVATE. |
ranked | boolean | Si el orden de la lista es su razón de ser. |
folder_ids | array | Los ids de tus carpetas, hasta 40. Reemplaza el conjunto anterior, así que [] la saca de todas. La carpeta de otra persona la rechaza la base de datos, y no una comprobación escrita dos veces. |
/api/ v1/ lists/ {id}Elimina una lista.
/api/ v1/ lists/ {id}/ tiersGuarda las filas de una tierlist y dónde está cada juego, de una vez. No es un PATCH por elemento: una tierlist solo tiene sentido entera, y guardar una fila y su contenido por separado dejaría un instante en que un juego está en una fila que nadie definió.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
tiersobligatorio | array | Las filas, cada una con id, label, color y position. El id es tuyo y no de la base: las filas se reescriben enteras en cada guardado, y son los elementos los que necesitan nombrarlas. Hasta 26. |
itemsobligatorio | array | Cada juego, con tier_id, igdb_id, game_slug y position. Un juego que salió de la biblioteca del dueño, o cuyo tier_id no está entre las filas enviadas, se omite en silencio en vez de tumbar el guardado. Hasta 1000. |
/api/ v1/ lists/ {id}/ itemsAgrega un juego a una lista. Responde 201.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
igdb_idobligatorio | integer | El id del juego en el catálogo. |
game_slugobligatorio | string | El slug del juego. |
/api/ v1/ lists/ {id}/ items/ {item_id}Anota un elemento, cambia cómo se ve en la lista, o lo mueve. Posición y dirección son dos formas de decir lo mismo, así que envía una u otra.
Cuerpo
| Campo | Tipo | Notas |
|---|---|---|
note | string | Hasta 500 caracteres. |
mark_mode | string | COLOR o DIM, o null para quitar el destacado. Es solo apariencia: lo que significa lo dice el autor, en la descripción de la lista. El sistema nunca asocia un color a un estado. |
mark_color | string | Con mark_mode COLOR: RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, PURPLE, PINK o NEUTRAL. |
marked | boolean | Obsoleto. Significaba «completado», que es un significado entre muchos. true se vuelve mark_mode DIM y false quita el destacado. |
position | integer | La posición exacta, contando desde 0. |
direction | string | up, down o top, para mover sin saber la posición. |
/api/ v1/ lists/ {id}/ items/ {item_id}Saca un juego de la lista.