BulkReportTrait   A
last analyzed

Complexity

Total Complexity 12

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 22
c 1
b 0
f 0
dl 0
loc 69
rs 10
wmc 12

3 Methods

Rating   Name   Duplication   Size   Complexity  
A printBulkReportSavedReports() 0 6 4
A printBulkReportDetail() 0 6 1
B printBulkReportErrors() 0 20 7
1
<?php declare(strict_types=1);
2
3
/**
4
 *       _                 ___ ___ ___  ___
5
 *  __ _| |__ _  _ ___ ___|_ _| _ \   \| _ )
6
 * / _` | '_ \ || (_-</ -_)| ||  _/ |) | _ \
7
 * \__,_|_.__/\_,_/__/\___|___|_| |___/|___/
8
 * 
9
 * This file is part of Kristuff\AbuseIPDB.
10
 *
11
 * (c) Kristuff <[email protected]>
12
 *
13
 * For the full copyright and license information, please view the LICENSE
14
 * file that was distributed with this source code.
15
 *
16
 * @version    0.9.20
17
 * @copyright  2020-2022 Kristuff
18
 */
19
namespace Kristuff\AbuseIPDB;
20
21
use Kristuff\Mishell\Console;
22
23
/**
24
 * Trait BulkReport
25
 * 
26
 */
27
trait BulkReportTrait
28
{
29
    /**
30
     * Print report detail
31
     * 
32
     * @access protected
33
     * @static
34
     * @param object    $response
35
     * @param string    $fileName
36
     * 
37
     * @return void
38
     */
39
    protected static function printBulkReportDetail(string $fileName): void
40
    {
41
        Console::log(
42
            Console::text('   Bulk report for file: [', 'white') .
43
            Console::text($fileName, 'lightyellow') .
44
            Console::text('] done!', 'white')
45
        );
46
    }
47
48
    /**
49
     * Print report SavedReports
50
     * 
51
     * @access protected
52
     * @static
53
     * @param object    $response
54
     * @param string    $fileName
55
     * 
56
     * @return void
57
     */
58
    protected static function printBulkReportSavedReports(object $response): void
59
    {
60
        $nbSavedReports = isset($response->data->savedReports) ? $response->data->savedReports : 0;
61
        $savedColor = $nbSavedReports > 0 ? 'green' : 'red';
62
        $savedIcon  = $nbSavedReports > 0 ? '✓' : '✗';
63
        Console::log(Console::text('   ' . $savedIcon, $savedColor) . self::printResult(' Saved reports:    ', $nbSavedReports, $savedColor, '', false));
64
    }
65
66
    /**
67
     * Print report errors
68
     * 
69
     * @access protected
70
     * @static
71
     * @param object    $response
72
     * @param string    $fileName
73
     * 
74
     * @return void
75
     */
76
    protected static function printBulkReportErrors(object $response): void
77
    {
78
        $nbErrorReports = isset($response->data->invalidReports) ? count($response->data->invalidReports) : 0;
79
        $errorColor = $nbErrorReports > 0 ? 'red' : 'green';
80
        $errorIcon  = $nbErrorReports > 0 ? '✗' : '✓';
81
82
        Console::log(Console::text('   ' . $errorIcon, $errorColor) . self::printResult(' Invalid reports:  ', $nbErrorReports, $errorColor, '', false));
83
84
        if ($nbErrorReports > 0){
85
            $numberDiplayedReports = 0;
86
            $defaultColor = 'lightyellow'; // reset color for last reports
87
88
            foreach ($response->data->invalidReports as $report){
89
                $input = $report->input ? escapeshellcmd($report->input) : ''; // in case on blank line, IP is null
90
                Console::log(Console::text('      →', 'red') . self::printResult(' Input:         ', $input, $defaultColor, '', false));
91
                self::printResult('        Error:         ', $report->error, $defaultColor);
92
                self::printResult('        Line number:   ', $report->rowNumber, $defaultColor);
93
                
94
                // counter
95
                $numberDiplayedReports++;
96
            }
97
        }
98
    }
99
}