Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
UserExtensionController
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
90
0.00% covered (danger)
0.00%
0 / 1
 track
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
90
1<?php
2
3namespace App\Http\Controllers\v1;
4
5use App\Http\Controllers\Controller;
6use App\Http\Models\Auth\User;
7use App\Http\Models\UserExtensionTrackActions;
8use App\Traits\SubscriptionTrait;
9use Carbon\Carbon;
10use Illuminate\Http\Request;
11use MongoDB\BSON\UTCDateTime;
12
13class UserExtensionController extends Controller
14{
15    use SubscriptionTrait;
16
17    public function track(Request $request)
18    {
19        $userParameter = $request->userId;
20
21        if (! empty($userParameter) && ! empty($request->event_name)) {
22            $user = User::where('id', $userParameter)->first();
23
24            if (! empty($user)) {
25                $event = new UserExtensionTrackActions;
26                $event->user_id = $user->id;
27                $event->heap_analytics_id = $user->heap_analytics_id;
28                $event->event_name = $request->event_name;
29
30                if (! empty($request->extension_version)) {
31                    $event->extension_version = $request->extension_version;
32                }
33
34                if (! empty($request->domain)) {
35                    $event->domain = $request->domain;
36                }
37
38                if (! empty($request->url)) {
39                    $event->url = $request->url;
40                }
41
42                if (! empty($request->browser)) {
43                    $event->browser = $request->browser;
44                }
45
46                if (! empty($request->executed_at)) {
47                    $date = Carbon::parse($request->executed_at);
48                    $event->executed_at = new UTCDateTime($date->getTimestamp() * 1000);
49                }
50
51                $event->save();
52
53                $quota = $this->getFlyCutsQuota($user);
54            }
55        }
56
57        return response()->json([
58            'quota' => $quota,
59        ], 201);
60    }
61}