TagInfo::getTagInfo()   B
last analyzed

Complexity

Conditions 7
Paths 5

Size

Total Lines 21
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 21
rs 8.8333
cc 7
nc 5
nop 1
1
<?php
2
3
namespace Daaner\TikTok\Models;
4
5
use Daaner\TikTok\TikTok;
6
7
class TagInfo extends TikTok
8
{
9
    protected $url;
10
    protected $url_api;
11
    protected $api_field;
12
    protected $arrayPrimary;
13
    protected $arraySecondary;
14
15
    /**
16
     * @return $this
17
     */
18
    public function ModelSettings()
19
    {
20
        $this->url = config('tiktok.tag_info.link');
21
        $this->url_api = config('tiktok.tag_info.link_api');
22
        $this->api_field = config('tiktok.tag_info.api_field');
23
        $this->arrayPrimary = config('tiktok.tag_info.array_primary');
24
        $this->arraySecondary = config('tiktok.tag_info.array_secondary');
25
    }
26
27
    /**
28
     * @param string $tag
29
     * @return array
30
     */
31
    public function getTag($tag)
32
    {
33
        /* add settings */
34
        $this->ModelSettings();
35
36
        $tag = str_replace('#', '', $tag);
37
38
        if (! $tag) {
39
            return [
40
                'success' => false,
41
                'result' => null,
42
                'info' => __('tiktok::tiktok.error_tag'),
43
            ];
44
        }
45
46
        $response = $this->getResponse($this->url.$tag);
47
48
        return $response;
49
    }
50
51
    /**
52
     * @param int $id
53
     * @param int|null $count
54
     * @param int|null $cursor
55
     * @return array
56
     */
57
    public function getTagApi($id, $count = 30, $cursor = 0)
58
    {
59
        /* add settings */
60
        $this->ModelSettings();
61
62
        $body = [
63
            $this->api_field => $id,
64
            'count' => $count,
65
            'cursor' => $cursor,
66
        ];
67
68
        $body = array_merge($body, config('tiktok.primary_body_api'));
69
70
        $response = $this->getResponse($this->url_api, $body);
71
72
        return $response;
73
    }
74
75
    /**
76
     * @param string $tag
77
     * @return array
78
     */
79
    public function getTagInfo($tag)
80
    {
81
        $data = $this->getTag($tag);
82
83
        $result = [];
84
        $result['success'] = $data['success'];
85
86
        if ($data['success'] && isset($data['result']['statusCode']) && $data['result']['statusCode'] == 0) {
87
            if (isset($data['result'][$this->arrayPrimary])) {
88
                $result['primary'] = $data['result'][$this->arrayPrimary];
89
            }
90
91
            if ($this->arraySecondary && isset($data['result'][$this->arrayPrimary])) {
92
                $result['secondary'] = $data['result'][$this->arraySecondary];
93
            }
94
        } else {
95
            $result['info'] = __('tiktok::tiktok.user_no_found');
96
            $result['success'] = false;
97
        }
98
99
        return $result;
100
    }
101
}
102