예제 #1
0
 public function testCreate()
 {
     $picture = new Picture();
     $picture->setId(1);
     $picture->setTitle('announcement_1_1');
     $picture->setPath('/announcement/original/');
     $picture->setAlternative('Un texte alternatif');
     $picture->setIdAnnouncement(10);
     $picture->setExtension('gif');
     $pictureMapper = new PictureMapper();
     $pictureMapper->insertPicture($picture);
     $pictureMapper->setId(1);
     $this->assertEquals($picture, $pictureMapper->selectPicture());
 }
 /**
  * 
  * @param Announcement $announcement_
  * @throws InvalidArgumentException
  * Insert an announcement and if some pictures are upload they're upload 
  * on the Upload/announcement/original/ folder
  */
 public function insertAnnouncement(Announcement $announcement_)
 {
     try {
         $pictures = array();
         if (is_null($this->table)) {
             throw new InvalidArgumentException('Attribute "table" can\'t be NULL !');
         }
         if (parent::insert($this->table, $announcement_, array(), true)) {
             $idAnnouncement = parent::getlastInsertId();
             $announcement_->setId($idAnnouncement);
             if (isset($this->files) && !empty($this->files)) {
                 foreach ($this->files as $file) {
                     $picture = new Picture();
                     $picture = initObject($file, $picture, true);
                     $pictures[] = $picture;
                 }
             }
             $announcement_->setPictures($pictures);
             if (!is_null($announcement_->getPictures())) {
                 foreach ($announcement_->getPictures() as $key => $value) {
                     $pictureExt = substr(strrchr($value->getType(), "/"), 1);
                     $value->setIdAnnouncement($idAnnouncement);
                     $value->setPath('/announcement/original/');
                     $value->setTitle(uniqid());
                     $value->setExtension($pictureExt);
                     if (move_uploaded_file($value->getTmpName(), UPLOAD_PATH . '/announcement/original/' . $value->getTitle() . '.' . $pictureExt)) {
                         $pictureMapper = new PictureMapper();
                         $pictureMapper->insertPicture($value, array('tmp_name', 'size', 'type'), false);
                     } else {
                         throw new Exception('A problem occurred during the picture upload');
                     }
                 }
             }
             return true;
         }
     } catch (InvalidArgumentException $e) {
         print $e->getMessage();
         exit;
     } catch (Exception $e) {
         print $e->getMessage();
         exit;
     }
 }
예제 #3
0
                    $options = array('indent' => '     ', 'addDecl' => false, XML_SERIALIZER_OPTION_RETURN_RESULT => true, "defaultTagName" => "picture");
                    $serializer = new XML_Serializer($options);
                    Rest::sendResponse(200, $serializer->serialize($picturesArray), 'application/xml');
                }
            }
        } else {
            Rest::sendResponse(204);
        }
        break;
    case 'post':
        try {
            $picture = new Picture();
            $data_picture = $http->getRequestVars();
            $pictureObject = initObject($data_picture, $picture, true);
            if (!emptyObject($pictureObject)) {
                $pictureMapper = new PictureMapper();
                if ($pictureMapper->insertPicture($pictureObject, array(), true)) {
                    Rest::sendResponse(200);
                }
            } else {
                throw new InvalidArgumentException('Need arguments to POST data !');
            }
        } catch (InvalidArgumentException $e) {
            $e->getMessage();
            exit;
        }
        break;
    default:
        Rest::sendResponse(501);
        break;
}