This commit is contained in:
2022-11-01 11:07:41 +08:00
commit c23de98690
131 changed files with 14088 additions and 0 deletions

View 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('没有相应评论');
}
}
}