/**
  * Validates Request
  *
  * @param       Request                 $request        Request for validation
  *
  * @throws      ValidationException                     Request data is invalid
  */
 protected function validateRequest(Request $request)
 {
     $validationErrors = array();
     if (strlen($request->getApiMethod()) == 0) {
         $validationErrors[] = 'Request api method is empty';
     }
     if (strlen($request->getEndPoint()) == 0 && strlen($request->getEndPointGroup()) === 0) {
         $validationErrors[] = 'Request end point is empty and request end point group is empty. Set one of them.';
     }
     if (strlen($request->getEndPoint()) > 0 && strlen($request->getEndPointGroup()) > 0) {
         $validationErrors[] = 'Request end point was set and request end point group was set. Set only one of them.';
     }
     if (count($request->getRequestFields()) === 0) {
         $validationErrors[] = 'Request data is empty';
     }
     if (!Validator::validateByRule($request->getGatewayUrl(), Validator::URL, false)) {
         $validationErrors[] = 'Gateway url does not valid in Request';
     }
     if (!empty($validationErrors)) {
         throw new ValidationException("Some Request fields are invalid:\n" . implode(";\n", $validationErrors));
     }
 }