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\Models\UserExtensionTrackActions;
6use Carbon\Carbon;
7use Illuminate\Http\Request;
8use App\Http\Models\Auth\User;
9use App\Http\Controllers\Controller;
10use App\Traits\SubscriptionTrait;
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
58        return response()->json([
59            'quota' => $quota
60        ], 201);
61    }
62}