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; } }
$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; }