/** * Creates an Article object based on a DB row. * * @param array $row The DB row containing Article data. * @return \MicroCMS\Domain\Article */ protected function buildDomainObject($row) { $article = new Article(); $article->setId($row['art_id']); $article->setTitle($row['art_title']); $article->setContent($row['art_content']); return $article; }
/** * Creates an Article object based on a DB row. * * @param array $row The DB row containing Article data. * @return \MicroCMS\Domain\Article */ private function buildArticle(array $row) { $article = new Article(); $article->setId($row['art_id']); $article->setTitle($row['art_title']); $article->setContent($row['art_content']); return $article; }
/** * API create article controller. * * @param Request $request Incoming request * @param Application $app Silex application * * @return Article details in JSON format */ public function addArticleAction(Request $request, Application $app) { // Check request parameters if (!$request->request->has('title')) { return $app->json('Missing required parameter: title', 400); } if (!$request->request->has('content')) { return $app->json('Missing required parameter: content', 400); } // Build and save the new article $article = new Article(); $article->setTitle($request->request->get('title')); $article->setContent($request->request->get('content')); $app['dao.article']->save($article); $responseData = $this->buildArticleArray($article); return $app->json($responseData, 201); // 201 = Created }
$responseData = array('id' => $article->getId(), 'title' => $article->getTitle(), 'content' => $article->getContent()); // Create and return a JSON response return $app->json($responseData); })->bind('api_article'); // API : create a new article $app->post('/api/article', function (Request $request) use($app) { // Check request parameters if (!$request->request->has('title')) { return $app->json('Missing required parameter: title', 400); } if (!$request->request->has('content')) { return $app->json('Missing required parameter: content', 400); } // Build and save the new article $article = new Article(); $article->setTitle($request->request->get('title')); $article->setContent($request->request->get('content')); $app['dao.article']->save($article); // Convert an object ($article) into an associative array ($responseData) $responseData = array('id' => $article->getId(), 'title' => $article->getTitle(), 'content' => $article->getContent()); return $app->json($responseData, 201); // 201 = Created })->bind('api_article_add'); // API : delete an existing article $app->delete('/api/article/{id}', function ($id, Request $request) use($app) { // Delete all associated comments $app['dao.comment']->deleteAllByArticle($id); // Delete the article $app['dao.article']->delete($id); return $app->json('No Content', 204); // 204 = No content