handle(); return $this->jsonSuccess(['categories' => $categories]); } /** * @Get("/list", name="api.question.list") */ public function listAction() { $service = new QuestionListService(); $pager = $service->handle(); return $this->jsonPaginate($pager); } /** * @Get("/{id:[0-9]+}/info", name="api.question.info") */ public function infoAction($id) { $service = new QuestionInfoService(); $question = $service->handle($id); return $this->jsonSuccess(['question' => $question]); } /** * @Get("/{id:[0-9]+}/answers", name="api.question.answers") */ public function answersAction($id) { $service = new AnswerListService(); $pager = $service->handle($id); return $this->jsonPaginate($pager); } /** * @Get("/{id:[0-9]+}/comments", name="api.question.comments") */ public function commentsAction($id) { $service = new CommentListService(); $pager = $service->handle($id); return $this->jsonPaginate($pager); } /** * @Post("/{id:[0-9]+}/favorite", name="api.question.favorite") */ public function favoriteAction($id) { $service = new QuestionFavoriteService(); $data = $service->handle($id); $msg = $data['action'] == 'do' ? '收藏成功' : '取消收藏成功'; return $this->jsonSuccess(['data' => $data, 'msg' => $msg]); } /** * @Post("/{id:[0-9]+}/unfavorite", name="api.question.unfavorite") */ public function unfavoriteAction($id) { $service = new QuestionFavoriteService(); $data = $service->handle($id); $msg = $data['action'] == 'do' ? '收藏成功' : '取消收藏成功'; return $this->jsonSuccess(['data' => $data, 'msg' => $msg]); } /** * @Post("/{id:[0-9]+}/like", name="api.question.like") */ public function likeAction($id) { $service = new QuestionLikeService(); $data = $service->handle($id); $msg = $data['action'] == 'do' ? '点赞成功' : '取消点赞成功'; return $this->jsonSuccess(['data' => $data, 'msg' => $msg]); } /** * @Post("/{id:[0-9]+}/like", name="api.question.unlike") */ public function unlikeAction($id) { $service = new QuestionLikeService(); $data = $service->handle($id); $msg = $data['action'] == 'do' ? '点赞成功' : '取消点赞成功'; return $this->jsonSuccess(['data' => $data, 'msg' => $msg]); } }