init
This commit is contained in:
158
app/Api/Controllers/DynamicController.php
Normal file
158
app/Api/Controllers/DynamicController.php
Normal file
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
|
||||
namespace App\Api\Controllers;
|
||||
|
||||
use App\Api\Requests\DynamicRequest;
|
||||
use App\Api\Resources\CommentResource;
|
||||
use App\Api\Resources\DynamicCollection;
|
||||
use App\Models\Comment;
|
||||
use App\Models\Dynamic;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Jason\Api\Api;
|
||||
|
||||
class DynamicController extends Controller
|
||||
{
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$createdAt = $request->created_at ?? '';
|
||||
$dynamics = Dynamic::where('status', 1)
|
||||
->when($createdAt, function ($query) use ($createdAt) {
|
||||
$query->where('created_at', '<', $createdAt);
|
||||
})
|
||||
->orderBy('created_at', 'desc')
|
||||
->paginate();
|
||||
|
||||
return $this->success(new DynamicCollection($dynamics));
|
||||
}
|
||||
/**
|
||||
* @Notes : 添加动态
|
||||
*
|
||||
* @Date : 2022/6/17 11:29
|
||||
* @param DynamicRequest $request
|
||||
* @return JsonResponse
|
||||
* @author : Mr.wang
|
||||
*/
|
||||
public function store(DynamicRequest $request): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
|
||||
$dynamic = Dynamic::create([
|
||||
'user_id' => $user->id,
|
||||
'description' => $request->description ?? '',
|
||||
'pictures' => $request->pictures ?? '',
|
||||
'status' => 1,
|
||||
]);
|
||||
if ($dynamic) {
|
||||
return $this->success();
|
||||
} else {
|
||||
return $this->failed('失败');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Notes : 删除动态
|
||||
*
|
||||
* @Date : 2022/6/17 11:33
|
||||
* @author : Mr.wang
|
||||
* @param Dynamic $dynamic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function destroy(Dynamic $dynamic): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
if ($user->id != $dynamic->user_id) {
|
||||
return $this->failed('没有删除权限');
|
||||
}
|
||||
|
||||
if ($dynamic->delete()) {
|
||||
return $this->success(true);
|
||||
} else {
|
||||
return $this->failed('失败');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Notes : 点赞/取消
|
||||
*
|
||||
* @Date : 2022/6/17 13:18
|
||||
* @author : Mr.wang
|
||||
* @param Dynamic $dynamic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function like(Dynamic $dynamic): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
|
||||
if ($user->hasLiked($dynamic)) {
|
||||
$user->unlike($dynamic);
|
||||
return $this->success([
|
||||
'is_like' => false,
|
||||
]);
|
||||
} else {
|
||||
$user->like($dynamic);
|
||||
return $this->success([
|
||||
'is_like' => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Notes : 添加评论
|
||||
*
|
||||
* @Date : 2022/6/20 15:43
|
||||
* @author : Mr.wang
|
||||
* @param Request $request
|
||||
* @param Dynamic $dynamic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function comment(Request $request, Dynamic $dynamic): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
if (empty($request->input('content'))) {
|
||||
return $this->failed('评论内容不能为空');
|
||||
}
|
||||
$parentId = $request->parent_id ?? 0;
|
||||
$result = $dynamic->comments()->create([
|
||||
'user_id' => $user->id,
|
||||
'parent_id' => $parentId,
|
||||
'content' => $request->input('content'),
|
||||
'status' => 1,
|
||||
]);
|
||||
if ($result) {
|
||||
return $this->success(new CommentResource($result));
|
||||
} else {
|
||||
return $this->failed('失败');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes :
|
||||
*
|
||||
* @Date : 2022/10/27 11:00
|
||||
* @Author : <Jason.C>
|
||||
* @param Dynamic $dynamic
|
||||
* @param Comment $comment
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function commentDestroy(Dynamic $dynamic, Comment $comment): JsonResponse
|
||||
{
|
||||
$user = Api::user();
|
||||
|
||||
if ($comment->user()->isNot($user)) {
|
||||
return $this->failed('没有删除权限');
|
||||
}
|
||||
|
||||
$dynComment = $dynamic->comments()->where('id', $comment->id)->first();
|
||||
if ($dynComment) {
|
||||
$dynComment->status = 0;
|
||||
if ($dynComment->save()) {
|
||||
return $this->success(true);
|
||||
} else {
|
||||
return $this->failed(false);
|
||||
}
|
||||
} else {
|
||||
return $this->failed('没有相应评论');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user