public static function type_form_validation($mform, $data, $errors)
 {
     if (!empty($data['filters']) && !json_decode($data['filters'])) {
         $errors['filters'] = get_string('invalid_filters', 'repository_entermedia');
     }
     try {
         $client = new Client(array('base_uri' => $data['uri'] . 'mediadb/services/'));
         $response = $client->get('system/systemstatus');
         if ($response->getStatusCode() === 200) {
             $body = json_decode($response->getBody());
             if (!$body || $body->response->status !== 'ok') {
                 $errors['uri'] = get_string('uri_notok', 'repository_entermedia');
             }
         } else {
             $errors['uri'] = get_string('uri_statuscode', 'repository_entermedia') . $response->getStatusCode();
         }
     } catch (GuzzleException $e) {
         $errors['uri'] = get_string('uri_exception', 'repository_entermedia');
     }
     if (isset($data['autologin_enable'])) {
         if (!repository_entermedia::static_try_login($data['uri'], $data['autologin_user'], $data['autologin_password'])) {
             $errors['autologin_enable'] = get_string('autologin_error', 'repository_entermedia');
         }
     }
     // A little bit hacky to empty the cache here...
     $cache = cache::make('repository_entermedia', 'filters');
     $cache->delete('filters');
     return parent::type_form_validation($mform, $data, $errors);
 }