API - UNIZAR-30226-2020-10/documentacion GitHub Wiki

URL: https://psoftware.herokuapp.com/


listar_canciones
/list
Devuelve una lista con todas las canciones

  • Entrada: None
  • Salida:
    • [ {“ID”:, “Nombre” : x, “Artistas”:[], ”Album”: ,”URL”:, “Imagen” , "Categorias":}, {}, …]
    • “Error”

listar_listas
/list_lists
Devuelve una lista con las listas de reproducción de un usuario

  • Entrada:
    • email: email del usuario cuyas listas se quieren mostrar
  • Salida:
    • [ {“ID”:, “Nombre” : x, "Descripcion”: , ”Imagen”: }, {}, …]
    • “Error”

listar_albums
/list_albums
Devuelve una lista con todos los álbumes existentes

  • Entrada: None
  • Salida:
    • [ {“Nombre” : x, "Descripcion”: , "fecha":, ”Imagen”: , "Artistas":}, {}, …]
    • “Error”

listar_artistas
/list_artists
Devuelve una lista con todos los artistas existentes

  • Entrada: None
  • Salida:
    • [ {“Nombre” : x, "Pais": , "Imagen": }, {}, …]
    • “Error”

listar_podcast
/list_podcast
Devuelve una lista con los podcast favoritos de un usuario

  • Entrada:
    • email: email del usuario cuyos podcast se muestran
  • Salida:
    • [ Id1, Id2, ...]
    • “Error”
    • "No existe usuario"

listar_categorias
/list_categories
Devuelve una lista con todas las categorias

  • Entrada:
  • Salida:
    • [{"Nombre": , "Imagen": } {}]
    • “Error”

listar_suscripciones
/list_suscriptions
Devuelve una lista con los artistas a los que esta suscrito un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [("/list_artists")]
    • “Error”
    • "No existe usuario"

listar_amistades
/list_friends
Devuelve una lista con los amigos de un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"Nombre": , "Imagen": , "Email": }, {…}]
    • “Error”
    • "No existe usuario"

listar_peticiones_enviadas
/list_peticiones_enviadas
Devuelve una lista con las solicitudes de amistad enviadas por un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario)}, {…}]
    • “Error”
    • "No existe usuario"

listar_peticiones_recibidas
/list_peticiones_recibidas
Devuelve una lista con las solicitudes de amistad recibidas por un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario)}, {…}]
    • “Error”
    • "No existe usuario"

listar_listas_compartidas
/list_listas_compartidas
Devuelve una lista con las listas de reproducción compartidas por un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario), "Lista": (list_lists_data), "Notificacion": }, {…}]
    • “Error”
    • "No existe usuario"

listar_listas_compartidas_conmigo
/list_listas_compartidas_conmigo
Devuelve una lista con las listas compartidas a un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario), "Lista": (list_lists_data : sin canciones), "Notificacion": }, {…}]
    • “Error”
    • "No existe usuario"

listar_canciones_compartidas
/list_canciones_compartidas
Devuelve una lista con las canciones compartidas por un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario), "Cancion": (list_song_data), "Notificacion": }, {…}]
    • “Error”
    • "No existe usuario"

listar_canciones_compartidas_conmigo
/list_canciones_compartidas_conmigo
Devuelve la lista de canciones compartidas a un usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario), "Cancion": (list_song_data), "Notificacion": }, {…}]
    • “Error”
    • "No existe usuario"

listar podcast compartidos
list_podcast_compartidos
Muestra los podcast compartidos con el usuario

  • Entrada:
    • email: email del usuario cuya información se muestra
  • Salida:
    • [{"ID": , "Emisor": (info_usuario), "Receptor": (info_usuario), "Podcast": id_serie_podcast, "Notificacion": }, {…}]
    • “Error”
    • "No existe usuario"

listar fotos de perfil
list_image
Muestra los podcast compartidos con el usuario

  • Entrada:
    • None
  • Salida:
    • [{"ID": x,"Nombre":"x","Url":"x"}, {…}]
    • “Error”
    • "No existe usuario"

listar datos de una lista
/list_lists_data
Devuelve un diccionario con los datos de una lista de reproduccion

  • Entrada:
    • lista : id de la lista
  • Salida:
    • {“ID”:, “Nombre” : x, Descripción”: , “Canciones”: [(listar_canciones)],”Imagen”: }
    • "No existe lista"
    • “Error”

listar datos de un album
/list_albums_data
Devuelve un diccionario con los datos de un album

  • Entrada:
    • album : id del album
  • Salida:
    • {“Nombre” : x, "Descripcion”: , "fecha":, ”Imagen”: , "Artistas": , "Canciones": [(listar_canciones)]}
    • "No existe album"
    • “Error”

listar datos de un artista
/list_artist_data
Devuelve un diccionario con los datos de un artista

  • Entrada:
    • artista : id del artista
  • Salida:
    • {“Nombre” : x, "Pais": , "Imagen": , "Albumes": [(list_albums)] }
    • "No existe artista"
    • “Error”

crear lista de reproducción
/create_list
Crea una lista de reproducción para un usuario

  • Entrada:*
    • lista: nombre de la lista
    • desc: descripción
    • email: email del usuario que crea la lista
  • Salida:
    • “Success”
    • “Error”
    • "No favoritos"

Eliminar lista de reproducción
/delete_list
Borra una lista de reproducción de un usuario

  • Entrada:*
    • lista: id de la lista
  • Salida:
    • “Error”
    • “Success”

Añadir canción a lista de reproducción
/add_to_list
Añade una canción a una lista de reproducción

  • Entrada:*
    • cancion: id de la canción
    • lista : id de la lista
  • Salida:
    • “Error_lista” : error al encontrar la lista
    • "No existe la lista"
    • “Error_cancion”: error al encontrar la canción
    • "No existe la cancion"
    • “Error” : error al hacer el commit
    • "Ya existe": la cancion ya esta en la lista de reproduccion
    • “Success”

Eliminar canción de lista de reproducción
/delete_from_list
Borra una canción de una lista de reproducción

  • Entrada:*
    • cancion: id de la canción
    • lista : id de la lista
  • Salida:
    • “Error_lista” : error al encontrar la lista
    • "No existe la lista"
    • “Error_cancion”: error al encontrar la canción
    • "No existe la cancion"
    • “Error” : error al hacer el commit
    • “Success”

Reordenar Listas
/reorder
Permite recolocar una canción en otra posición dentro de una lista de reproducción

  • Entrada:
    • lista: id de la lista a modificar
    • before: posición inicial de la cancion a mover
    • after: posición final de la cancion a mover
  • Salida:
    • "Error": error en la base de datos
    • "Success" : todo bien

Añadir podcast a favoritos
/podcast_fav
Añade un podcast a la lista de podcast favoritos de un usuario

  • Entrada:
    • nombre: nombre del podcast
    • podcast: id del podcast
    • email: email del usuario
  • Salida:
    • "Error"
    • "Success"
    • "No existe": no existe la lista

Eliminar podcast de favoritos
/delete_podcast_fav
Elimina un podcast de favoritos de un usuario

  • Entrada:
    • podcast: id del podcast
    • email: email del usuario
  • Salida:
    • "Error"
    • "Success"
    • "No existe el podcast"
    • "No existe la lista": no existe la lista

Saber si un podcast es favorito
/podcast_is_fav
Devuelve true si el podcast esta en la lista de favoritos de un usuario

  • Entrada:
    • podcast: id del podcast
    • email: email del usuario
  • Salida:
    • "Error"
    • "True"
    • "False"

Saber si una cancion es favorito
/is_fav
Devuelve true si la canción esta en la lista de favoritos de un usuario

  • Entrada:
    • cancion: id de la cancion
    • email: email del usuario
  • Salida:
    • "Error"
    • "True"
    • "False"

Buscar
/search
Busca las canciones, álbumes y artistas cuyo nombre esta relacionado con la cadena a buscar
Adicionalmente, devuelve las canciones cuyo artista o álbum estan relacionados

  • Entrada:
    • nombre: nombre o parte del nombre de lo que sea
  • Salida:
    • [ {"Canciones": [{“ID”:, “Nombre” : x, “Artistas”:[], ”Album”: ,”URL”:, “Imagen” }, {} ...], "Albums": (list_albums) "Artistas": (list_artists) }]

Buscar_en_lista
/search_in_list
Búsqueda dentro de una lista de reproducción

  • Entrada:
    • nombre : nombre o parte del nombre de lo que sea
    • lista : id de la lista(Numero)
  • Salida:
    • [ {“ID”:, “Nombre” : x, “Artistas”:[], ”Album”: ,”URL”:, “Imagen” }, Id2{}, …]
    • "No existe la lista"
    • "Error"

Buscar_lista
/search_list
Busca una lista de reproducción entre las listas de un usuario

  • Entrada:
    • lista : nombre o parte del nombre de la lista
    • email: usuario en el que buscar
  • Salida: [ {“ID”:, “Nombre” : x, Descripción”: , ”Imagen”: }, Id2{}, …]

Filtrar categorias
/filter_category
Devuevlve una lista con las canciones que pertenecen a alguna de las categorías proporcionadas

  • Entrada:
    • categorías: [ “Rock”, “Pop”, etc ]: lista de categorías a filtrar
  • Salida:
    • [ {“ID”:, “Nombre” : x, “Artistas”:[], ”Album”: ,”URL”:, “Imagen” }, Id2{}, …]

Filtrar categorias en lista
/filter_category_in_list
Devuevlve una lista con las canciones de una lista que pertenecen a alguna de las categorías proporcionadas

  • Entrada:
    • categorias : [ “Rock”, “Pop”, etc ]: lista de categorías a filtrar
    • lista: id de la lista donde filtrar
  • Salida:
    • [ {“ID”:, “Nombre” : x, “Artistas”:[], ”Album”: ,”URL”:, “Imagen” }, Id2{}, …]
    • "No existe la lista"
    • "Error"

Registro
/register
Registra a un usuario en la aplicación

  • Entrada:
    • email
    • nombre
    • password : pasármela cifrada
    • fecha: fecha nacimiento
    • pais
  • Salida:
    • “Error”: error de la base de datos
    • “Clave duplicada”: ya está registrado
    • “Fecha incorrecta”: formato de fecha no válido
    • “Success” : todo bien, todo correcto y yo que me alegro

Confirmar usuario
'/confirm_email/'
Confirma un usuario mediante el token que se envía por correo electronico

  • Salida:
    • "Ya estaba confirmado"
    • "Confirmación de exitosa"

Eliminar Usuarios
/delete_user
Elimina un usuario de la aplicación

  • Entrada:
    • email
    • password : pasármela cifrada
  • Salida:
    • Error: error de la base de datos
    • "No user”: usuario incorrecto, no existe
    • “Contraseña Incorrecta”: no coinciden las contraseñas
    • “Success” : todo bien, todo correcto y yo que me alegro

Inicio Sesión
/sign_in
Inicio de sesion

  • Entrada:
    • email
    • password : pasármela cifrada
  • Salida:
    • “Error”: error de la base de datos
    • “No user”: usuario incorrecto, no existe
    • “Contraseña Incorrecta”: no coinciden las contraseñas
    • “Success” : todo bien, todo correcto y yo que me alegro
    • "Sin confirmar": no se ha confirmado el usuario

Información de Usuario
/info_usuario
Devuelve la información de un usuario

  • Entrada:
    • email
  • Salida:
    • {"Nombre": , "Password": ,"fecha": ,"Pais": ,"Foto": }
    • "Error"
    • "No existe usuario"

Modificar
/modify
Permite modificar los datos de un usuario excepto el correo

  • Entrada: El email y la contraseña son obligatorio, los otros campos solo enviar si modificados
    • email
    • password
    • 'new_password'
    • fecha -> MM(- | /)DD(- | /)AAAA
    • nombre
    • pais
    • imagen : id de la imagen
  • Salida:
    • "Success"
    • "Error"
    • "No existe usuario"
    • "Contraseña incorrecta"

Buscar Usuarios
/search_users
Busca a un usuario registrado en la aplicación

  • Entrada:
    • nombre
  • Salida:
    • [{"Nombre": nombre, "Imagen": url_imagen, "Email": email, "Fecha": fecha, "Pais": pais, "Token", token}, {...}]
    • "Error"

Suscribir a artista
/suscription
Suscribe a un usuario a un artista

  • Entrada:
    • email: email del usuario
    • artista: nombre del artista
  • Salida:
    • "Success"
    • "No existe usuario"
    • "No existe artista"
    • "Error"

Dessuscribirse de un artista
/unsuscribe
Eliminar la suscripción de un usuario a un artista

  • Entrada:
    • email: email del usuario
    • artista: nombre del artista
  • Salida:
    • "Success"
    • "No existe usuario"
    • "No existe artista"
    • "Error"

Solucitud de amistad
/solicitud_amistad
Realiza una solicitud de amistad del emisor al receptor

  • Entrada:
    • emisor: email del usuario emisor
    • receptor: email del usuario receptor
  • Salida:
    • "Success"
    • "No existe emisor"
    • "No existe receptor"
    • "Mismo usuario"
    • "Ya hay una solicitud pendiente"
    • "Error"
    • "Ya son amigos"

Responder_peticion
/responder_peticion
Acepta o rechaza una petición de amistad

  • Entrada:
    • peticion: id de la peticion
    • respuesta: "Acepto", o lo que sea, mejor "Rechazo"
  • Salida:
    • "Success"
    • "Error"

Eliminar amigo
/delete_friend
Elimina un amigo de un usuario

  • Entrada:
    • email: email del usuario
    • amigo: email del amigo a eliminar
  • Salida:
    • "Success"
    • "No existe usuario"
    • "No existe amigo"
    • "Error"

Establecer cancion como ultima escuchada por un usuario
/set_last_song
Establece la cancion especificada como la ultima en ser escuchada para que aparezca al volver a abrir la aplicación

  • Entrada:
    • email: email del usuario
    • cancion: id de la cancion
    • segundo: segundo de la cancion en que se dejo de escuchar
    • lista: id de la ultima lista
  • Salida:
    • "Success"
    • "Error"
    • "No existe usuario"

Obtener la información de la ultima cancin de un usuario /get_last_song
Devuelve la ultima canción escuchada

  • Entrada
    • email: email del usuario
  • Salida:
    • {"Cancion": (/list) or null, "Segundo": entero or null, "Lista": id entero or null} Valores null si todavía no hay ultima cancion
    • "Error"
    • "No existe usuario"

Establecer el token de un usuario
/set_token
Establece el token para las notificaciones de android

  • Entrada
    • email: email del usuario
    • token: token a escribir
  • Salida:
    • "Success"
    • "Error"
    • "No existe usuario"

Obtener el token de un usuario
/get_token
Devuelve el token para las notificaciones de un usuario

  • Entrada
    • email: email del usuario
  • Salida:
    • Token, string de hasta 200 chars
    • "Error"
    • "No existe usuario"

Compartir cancion
/share_song
Comparte una cancion a un usuario

  • Entrada
    • cancion: id de la cancion a compartir
    • emisor: emisor de la cancion
    • receptor: receptor de la cancion
  • Salida
    • "Mismo usuario": no se puede enviar cosas a sí mismo
    • "Elemento ya compartido con ese usuario": ya se ha compartido antes
    • "Error"
    • "Success"

Compartir lista
/share_list
Comparte una lista de reproducción a un usuario

  • Entrada
    • lista: id de la lista a compartir
    • emisor: emisor de la cancion
    • receptor: receptor de la cancion
  • Salida
    • "Mismo usuario": no se puede enviar cosas a sí mismo
    • "Elemento ya compartido con ese usuario": ya se ha compartido antes
    • "Error"
    • "Success"

Compartir podcast
/share_podcast
Comparte un podcast a un usuario

  • Entrada
    • podcast: id de la lista a compartir
    • emisor: emisor de la cancion
    • receptor: receptor de la cancion
  • Salida
    • "Mismo usuario": no se puede enviar cosas a sí mismo
    • "Elemento ya compartido con ese usuario": ya se ha compartido antes
    • "Error"
    • "Success"

Dejar de compartir cancion
/unshare_song
Elimina la compartición de una cancion

  • Entrada
    • cancion: id de la cancion_compartida, no id de cancion
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Dejar de compartir lista
/unshare_list
Elimina la compartición de una lista de reproducción

  • Entrada
    • lista: id de la lista_compartida, no id de lista de reproduccion
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Dejar de compartir podcast
/unshare_podcast
Elimina la compartición de una lista de reproducción

  • Entrada
    • podcast: id del podcast_compartido
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Quitar la notificación de un elemento compartido
/unnotify_list
Pone a false el flag de mostrar notificación de un elemento compartido

  • Entrada
    • elemento: id del elemento
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Quitar la notificación de un elemento compartido
/unnotify_song
Pone a false el flag de mostrar notificación de un elemento compartido

  • Entrada
    • elemento: id del elemento
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Quitar la notificación de un elemento compartido
/unnotify_podcast
Pone a false el flag de mostrar notificación de un elemento compartido

  • Entrada
    • elemento: id del elemento
  • Salida
    • "No existe": no existe la compartición a eliminar
    • "Error"
    • "Success"

Añadir lista compartida a propias
/add_list
Añade una copia de una lista de reproducción ajena a la lista de listas de reproducción de un usuario

  • Entrada
    • lista: id de la lista a copiar
    • email: email del usuario que recibe la lista
  • Salida
    • "No existe usuario"
    • "No existe lista"
    • "Success"
    • "Error"

Subir imágenes a amazon
/sign_s3
Da permiso para subir una imagen a GitHub

  • Entrada
    • file_type: tipo de archivo
    • file_name: nombre de archivo
  • Salida
    • {"data": datos, "url": url de amazon}
⚠️ **GitHub.com Fallback** ⚠️