Test Failed
Push — develop ( 289f4b...2384b4 )
by Paul
09:15 queued 10s
created

Hooks   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 27
c 1
b 0
f 0
dl 0
loc 44
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A isInstalled() 0 3 1
A isEnabled() 0 4 2
A run() 0 29 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Integrations\SureCart;
4
5
use GeminiLabs\SiteReviews\Integrations\IntegrationHooks;
6
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\Controller;
7
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\ProductController;
8
use GeminiLabs\SiteReviews\Integrations\SureCart\Controllers\RestController;
9
10
class Hooks extends IntegrationHooks
11
{
12
    public function run(): void
13
    {
14
            $this->hook(RestController::class, [
15
                ['filterRestApiSummaryArgs', 'site-reviews/rest-api/summary/args', 10, 2],
16
            ]);
17
        $this->hook(Controller::class, [
18
            ['filterSettings', 'site-reviews/settings'],
19
            ['filterSettingsCallback', 'site-reviews/settings/sanitize', 10, 2],
20
            ['filterSubsubsub', 'site-reviews/integration/subsubsub'],
21
            ['renderNotice', 'admin_init'],
22
            ['renderSettings', 'site-reviews/settings/surecart'],
23
        ]);
24
        if ($this->isEnabled()) {
25
            $this->hook(ProductController::class, [
26
                ['filterAssignedPostsPostId', 'render_block_core/shortcode', 10, 3],
27
                ['filterBlockRenderCallback', 'block_type_metadata_settings', 15, 2],
28
                ['filterReviewAuthorTagValue', 'site-reviews/review/value/author', 10, 2],
29
                ['filterReviewCallbackHasProductOwner', 'site-reviews/review/call/hasProductOwner'],
30
                ['filterReviewFormBuild', 'site-reviews/build/template/reviews-form', 10, 2],
31
                ['parseProductQuery', 'parse_query'],
32
                // ['registerBlockPatterns', 'init'],
33
                ['registerBlocks', 'init', 11],
34
                ['registerProductAttributes', 'surecart/product/attributes_set'],
35
                ['verifyProductOwner', 'site-reviews/review/created', 20],
36
            ]);
37
            $this->hook(RestController::class, [
38
                ['filterProductModel', 'surecart/request/model', 10, 2],
39
                ['filterProductsRequest', 'rest_products_request'],
40
                ['filterRestApiSummaryArgs', 'site-reviews/rest-api/summary/args', 10, 2],
41
            ]);
42
        }
43
    }
44
45
    protected function isEnabled(): bool
46
    {
47
        return $this->isInstalled()
48
            && 'yes' === $this->option('integrations.surecart.enabled');
49
    }
50
51
    protected function isInstalled(): bool
52
    {
53
        return class_exists('SureCart');
54
    }
55
}
56