Client   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 16
c 0
b 0
f 0
dl 0
loc 34
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A factory() 0 7 1
1
<?php
2
3
namespace CloudyCity\TencentMarketingSDK;
4
5
use CloudyCity\TencentMarketingSDK\Kernel\BaseClient;
6
use CloudyCity\TencentMarketingSDK\Kernel\BaseInvoker;
7
8
/**
9
 * Class Client.
10
 *
11
 * @property \CloudyCity\TencentMarketingSDK\Advertiser\Client                  $advertiser
12
 * @property \CloudyCity\TencentMarketingSDK\Advertiser\Fund\Client             $funds
13
 * @property \CloudyCity\TencentMarketingSDK\Advertising\Campaign\Client        $campaigns
14
 * @property \CloudyCity\TencentMarketingSDK\Advertising\AdGroup\Client         $adgroups
15
 * @property \CloudyCity\TencentMarketingSDK\Advertising\AdCreative\Client      $adcreatives
16
 * @property \CloudyCity\TencentMarketingSDK\Advertising\DynamicCreative\Client $dynamic_creatives
17
 * @property \CloudyCity\TencentMarketingSDK\Advertising\AD\Client              $ads
18
 * @property \CloudyCity\TencentMarketingSDK\Advertising\Targeting\Client       $targetings
19
 * @property \CloudyCity\TencentMarketingSDK\Report\Daily\Client                $daily_reports
20
 * @property \CloudyCity\TencentMarketingSDK\Report\Hourly\Client               $hourly_reports
21
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $qualifications
22
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $fund_transfer
23
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $fund_statements_daily
24
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $fund_statements_detailed
25
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $promoted_objects
26
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $product_catalog
27
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $dynamic_ad_templates
28
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $dynamic_ad_images
29
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $wechat_pages
30
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $android_channel_packages
31
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $targeting_tag_reports
32
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $product_catalogs_reports
33
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_audience_insights
34
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $tracking_reports
35
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $ecommerce_order
36
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $wechat_leads
37
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $leads
38
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_audience_reports
39
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $wechat_ad_followers
40
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $targeting_tags
41
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $adcreative_templates
42
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $adcreative_template_detail
43
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $capabilities
44
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $estimation
45
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $adcreative_previews
46
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $realtime_cost
47
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $async_tasks
48
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $async_task_file
49
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $compliance_validation
50
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $union_position_packages
51
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $split_tests
52
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $diagnosis
53
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $system_status
54
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $user_action_sets
55
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $user_action_set_reports
56
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $user_actions
57
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_audiences
58
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_audience_files
59
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_audience_estimations
60
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_tag_files
61
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $custom_tags
62
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $user_property_sets
63
 * @property \CloudyCity\TencentMarketingSDK\Kernel\BaseClient                  $user_properties
64
 */
65
class Client extends BaseInvoker
66
{
67
    protected $providers = [
68
        'advertiser'        => \CloudyCity\TencentMarketingSDK\Advertiser\Client::class,
69
        'funds'             => \CloudyCity\TencentMarketingSDK\Advertiser\Fund\Client::class,
70
        'campaigns'         => \CloudyCity\TencentMarketingSDK\Advertising\Campaign\Client::class,
71
        'adgroups'          => \CloudyCity\TencentMarketingSDK\Advertising\AdGroup\Client::class,
72
        'adcreatives'       => \CloudyCity\TencentMarketingSDK\Advertising\AdCreative\Client::class,
73
        'dynamic_creatives' => \CloudyCity\TencentMarketingSDK\Advertising\DynamicCreative\Client::class,
74
        'ads'               => \CloudyCity\TencentMarketingSDK\Advertising\Ad\Client::class,
75
        'targetings'        => \CloudyCity\TencentMarketingSDK\Advertising\Targeting\Client::class,
76
        'daily_reports'     => \CloudyCity\TencentMarketingSDK\Report\Daily\Client::class,
77
        'hourly_reports'    => \CloudyCity\TencentMarketingSDK\Report\Hourly\Client::class,
78
    ];
79
80
    /**
81
     * This method is called automatically when accessing member properties which is a valid resource name.
82
     * You should only call this method manually when the resource name you need does not exist in the preset
83
     * member properties.
84
     *
85
     * @param $resource
86
     * @param $checkSource
87
     *
88
     * @throws \CloudyCity\TencentMarketingSDK\Kernel\Exceptions\InvalidResourceException
89
     *
90
     * @return BaseClient
91
     */
92
    public function factory($resource, $checkSource = true)
93
    {
94
        $advertiserId = $this->getAdvertiserId();
95
        $accessToken = $this->getAccessToken();
96
        $responseType = $this->getResponseType();
97
98
        return Factory::getClient($resource, $advertiserId, $accessToken, $responseType, $checkSource);
99
    }
100
}
101