1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Auth;
- use App\{
- Hashtag,
- HashtagFollow,
- Status
- };
- class HashtagFollowController extends Controller
- {
- public function __construct()
- {
- $this->middleware('auth');
- }
- public function store(Request $request)
- {
- $this->validate($request, [
- 'name' => 'required|alpha_num|min:1|max:124|exists:hashtags,name'
- ]);
- $user = Auth::user();
- $profile = $user->profile;
- $tag = $request->input('name');
- $hashtag = Hashtag::whereName($tag)->firstOrFail();
- $hashtagFollow = HashtagFollow::firstOrCreate([
- 'user_id' => $user->id,
- 'profile_id' => $user->profile_id ?? $user->profile->id,
- 'hashtag_id' => $hashtag->id
- ]);
- if($hashtagFollow->wasRecentlyCreated) {
- $state = 'created';
- // todo: send to HashtagFollowService
- } else {
- $state = 'deleted';
- $hashtagFollow->delete();
- }
- return [
- 'state' => $state
- ];
- }
- }
|