---
# System prepended metadata

title: 'La route https://ws.chanel.com/mailsend'

---

# La route https://ws.chanel.com/mailsend
Concernant cette route, j'ai essayé de mettre un dump ("essayer d'affichier un message") sur le code de la route "**/mailsend**" sur le serveur de l'UAT, dans la fonction **mail_post**.

```php
// www/controllers/mailsend.php
//...
public function mail_post(){
    die("CE CI EST UN MESSAGE DE TEST SUR LE MAILSEND"); // le dump
    $this->load->config("email_validation"); // to get no reply address
    $this->load->config("mailsend");
    $this->load->library('form_validation');
    //...
}
```

et quand on visite la route https://uat-ws.chanel.com/mailsend, on ne voir pas le message 

"**CE CI EST UN MESSAGE DE TEST SUR LE MAILSEND**".

Par contre si fait le même dump sur la route https://uat-ws.chanel.com/subscribe/submit
```php
// www/controllers/subscribe.php
//...
function submit_post() {
    die("CE CI EST UN MESSAGE DE TEST SUR LE SUBSCRIBE"); // le dump
    // Authorization
    //$this->_check_authorization('subscribe_submit');

    // Get & check parameters
    //...
}
```

on voir bien notre dump sur le serveur de l'UAT.

J'ai aussi changé la réponse XML de l'erreur on modifiant la méthode **response_error** dans la classe **REST_Controller** que les deux route subscribe et mailsend utilisent pour retourner une erreur.

J'ai changé dans le code ci-dessous, le nompe de la balise xml **code** en **codee**

```php
// www/vendor/chanel/common_libs/libraries/REST_Controller.php
/**
 * Send a response error
 * @param $url
 * @param $data
 * @return void
 */
public function response_error($http_code, $code_erreur, $description = '', $invalid_param = null) {
    $this->_format_xml_basenode = "failed";
    $this->_format_xml_itemname = "param";
    $headline['platform'] = APPLICATION;
    $headline['service'] = $this->uri->uri_string();
    $headline['codee'] = $code_erreur; //le changement
    if ($description != '') {
        $headline['description'] = $description;
    }
    if ((is_array($invalid_param)) && (!empty($invalid_param))) {
        $headline['validation'] = $invalid_param ;
    }
    add_log('error', $code_erreur, $headline, $http_code);
    $this->response($headline, $http_code);
}
```

et quant on teste sur l'UAT les deux routes:

- https://uat-ws.chanel.com/mailsend
```xml
<failed>
    <platform>backend</platform>
    <service>mailsend</service>
    <code>WRONG_PARAMETERS</code>
    <description>Validation error WS</description>
</failed>
```
- https://uat-ws.chanel.com/subscribe/submit
```xml
<failed>
    <platform>backend</platform>
    <service>subscribe/submit</service>
    <codee>WRONG_PARAMETERS</codee>
    <validation>
        <param>
            <name>locale</name>
            <value/>
            <message>MISSING PARAMETER LOCALE</message>
        </param>
    </validation>
</failed>
```

Et comme on voit sur les deux réponse, nous avons bien la balise **codee** qui a apparu que sur la route **/subscribe/submit**

Pour conclure, la route **/mailsend** n'est pas géré côté PHP au contraire la route **/subscribe/submit**, et Mouhssine (l'ex dev) m'a confirmé qu'on support côté php que la **newsletter** (**/subscribe/submit**) que pour la chine