Il client REST sviluppato comprende le seguenti funzionalità:
- Richiesta token di autenticazione (ed eventuale token-refresh) utilizzando le credenziali (client_id, client_secret, username e password) inserite nel file di configurazione. Da specifiche non è richiesto l’inserimento di username e password in modo dinamico.
- Selezione di una lista MailUp alla quale aggiungere un gruppo. Nel caso in cui nessuna lista sia presente, viene creata una lista fittizia (nelle specifiche non è richiesta la creazione di una lista)
- Creazione di un gruppo all’interno della lista selezionata. Metadati richiesti per la creazione di un gruppo: nome gruppo e note.
- Aggiunta di recipients al gruppo precedentemente creato. Viene richiesto il numero di recipients che si desidera aggiungere al gruppo (minimo 3). Per ogni recipient i metadati richiesti sono: nome ed indirizzo email (valido).
- Creazione di un nuovo messaggio per la lista precedentemente selezionata. I metadati del nuovo messaggio sono: titolo (subject) e body (content).
- Invio del messaggio creato al gruppo precedentemente creato (e agli n recipients).
$ git clone https://github.com/mz1991/MailUp-Assignment
$ cd MailUp-Assignment
$ nano mail_up_configuration.ini
Insert you client_id, client_secret, username and password.
$ virtualenv -p python3 virtualenvname
$ cd virtualenvname
$ ./bin/pip install -r your_path/MailUp-Assignment/requirements.txt
$ ./bin/python your_path/MailUp-Assignment/main.py
Il modulo sviluppato può essere migliorato/esteso nel seguente modo:
- Migliore controllo degli errori durante la chiamata alle API di MailUp
- Inserimento dinamico delle credenziali (username e password)
- Maggior numero di metadati in fase di creazione recipients e messaggio.
- Aggiunta di una UI per l’inserimento dei dati richiesti (e username/password)
- Migliore validazione sui dati inseriti dall’utente
- Controllo sull’esistenza del gruppo in fase di creazione (e magari avvisare l’utente che un gruppo con lo stesso nome è già presente nella lista)