Completed
Push — master ( d9411c...c78c84 )
by CloudyCity
04:36
created

Client::factory()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

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