Commit 6f4ef1a5 by Luciano Barletta

expanded functionality, docuemnted

1 parent dcff0b99
...@@ -15,38 +15,39 @@ Para correr el servicio en el servidor simplemente hay que escribir en la consol ...@@ -15,38 +15,39 @@ Para correr el servicio en el servidor simplemente hay que escribir en la consol
python3 deploy.py python3 deploy.py
``` ```
Aclaración: es muy importante que no se borre ninguna carpeta si no va a borrar la base de datos. Al borrar la base de datos los archivos que se estaban por mandar no se mandarán, pero entonces se vuelve indistinto borrar las carpetas.
## Uso ## Uso
Para enviar mensajes se puede usar dos formas, la forma encriptada o la forma sin encripción, ambas son similares. Para enviar mensajes se puede usar dos formas, la forma encriptada o la forma sin encripción, ambas son similares.
### myserver.com/init ### myserver.com/key
Llame a este siempre que quiera mandar mensajes, una vez llamado puede mandar tantos como quiera siempre y cuando no cambie su MAC address, este link siempre devolverá una llave pública nueva, pero el uso de la misma es opcional. Llame a esta ruta para conseguir la llave pública del servidor en caso de querer encriptar la data. Este paso es opcional.
### myserver.com/data ### myserver.com/data
Este link es usado para subir los datos a enviar, por ahora solo se puede mandar texto plano, pero obligatoriamente debe estar en formato de archivo. Opcionalmente puede estar encriptado, en cuyo caso debe mandar una llave en formato de archivo, los detalles son los siguientes: Este link es usado para subir los datos a enviar, pero obligatoriamente debe estar en formato de archivo. Opcionalmente puede estar encriptado, en cuyo caso debe mandar una llave en formato de archivo, el procedimiento es el siguiente:
- Crear una llave simétrica (por ejemplo con AES) - Crear una llave simétrica AES
- Encriptar el archivo con la llave simétrica - Encriptar el archivo con la llave simétrica
- Encriptar la llave simétrica con la llave pública dada por el servidor - Encriptar la llave simétrica con la llave pública dada por el servidor
- Enviar el archivo encriptado con el nombre 'data' y la llave encriptada en formato de archivo con el nombre 'key' (data=@data.file, key=@key.file) - Enviar el archivo encriptado con el nombre 'data' y la llave encriptada en formato de archivo con el nombre 'key' (data=@data.file, key=@key.file)
Si no se envía una llave se presume que el archivo no está encriptado. Si no se envía una llave se presume que el archivo no está encriptado.
/data devuelve un string de 16 caracteres que corresponde al mensaje, se usa en el siguiente paso.
Aclaración: el Content-Type debe ser multipart/form-data Aclaración: el Content-Type debe ser multipart/form-data
### myserver.com/msg ### myserver.com/msg
Llamando a este link se envían los parámetros de envío del mensaje pasado en data, y se procede a poner en la cola el mensaje. (POST) Llamando a este link se envían los parámetros de envío del mensaje pasado en data, y se procede a poner en la cola el mensaje. (POST)
- Bajo 'id' se envía el string del paso anterior
- Bajo 'serv' se envía el servicio a usar, por ahora solo hay 'wpp1' correspondiente a WhatsApp - Bajo 'serv' se envía el servicio a usar, por ahora solo hay 'wpp1' correspondiente a WhatsApp
- Bajo 'dest' se envía el número de destino, el formato puede variar dependiendo del servicio y dicho formato será documentado, el de 'wpp1' es el formato internacional sin el '+' y sin espacios ni guiones - Bajo 'dest' se envía el número de destino, el formato puede variar dependiendo del servicio y dicho formato será documentado, el de 'wpp1' es el formato internacional sin el '+' y sin espacios ni guiones
- Bajo 'type' se envía el tipo de dato a enviar, por ahora solo se permite 'text', los nombres serán documentados. - Bajo 'type' se envía el tipo de dato a enviar, por ahora solo se permite 'text', los nombres serán documentados.
En caso de que no exista el servicio o este no admita el tipo, se devolverá un mensaje de error con esa información. Caso contrario, se devolverá el id del mensaje para futura consulta. En caso de que no exista el servicio o este no admita el tipo, o que el id no exista, se devolverá un mensaje de error con esa información. Caso contrario, se devolverá el id de base de datos del mensaje para futura consulta.
### myserver.com/cons ### myserver.com/cons
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!