/var/www/html_fr/wp-content/plugins/fluent-smtp/app/Http/Controllers/LoggerController.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php

namespace FluentMail\App\Http\Controllers;

use 
FluentMail\App\Models\Logger;
use 
FluentMail\Includes\Request\Request;

class 
LoggerController extends Controller
{
    public function 
get(Request $requestLogger $logger)
    {
        
$this->verify();

        return 
$this->send(
            
$logger->get(
                
$request->except(['nonce''action'])
            )
        );
    }

    public function 
show(Request $requestLogger $logger)
    {
        
$this->verify();

        
$result $logger->navigate($request->all());

        return 
$this->sendSuccess($result);
    }

    public function 
delete(Request $requestLogger $logger)
    {
        
$this->verify();

        
$id = (array) $request->get('id');

        
$logger->delete($id);

        if (
$id && $id[0] == 'all') {
            
$subject 'All logs';
        } else {
            
$count count($id);
            
$subject $count "{$count} Logs" 'Log';
        }
        
        return 
$this->sendSuccess([
            
'message' => sprintf(__('%s deleted successfully.''fluent-smtp'), $subject)
        ]);
    }

    public function 
retry(Request $requestLogger $logger)
    {
        
$this->verify();

        try {
            
$this->app->addAction('wp_mail_failed', function($response) use ($logger$request) {
                
$log $logger->find($id $request->get('id'));
                
$log['retries'] = $log['retries'] + 1;
                
$logger->updateLog($log, ['id' => $id]);

                return 
$this->sendError([
                    
'message' => $response->get_error_message(),
                    
'errors' => $response->get_error_data()
                ], 
$response->get_error_code());
            });

            if (
$email $logger->resendEmailFromLog($request->get('id'), $request->get('type'))) {
                return 
$this->sendSuccess([
                    
'email' => $email,
                    
'message' => __('Email sent successfully.''fluent-smtp')
                ]);
            }

            throw new 
\Exception(esc_html__('Something went wrong''fluent-smtp'), 400);

        } catch (
\Exception $e) {
            return 
$this->sendError([
                
'message' => $e->getMessage()
            ], 
$e->getCode());
        }
    }

    public function 
retryBulk(Request $requestLogger $logger)
    {
        
$this->verify();
        
$logIds $request->get('log_ids', []);

        
$failedCount 0;
        
$this->app->addAction('wp_mail_failed', function($response) use (&$failedCount) {
            
$failedCount++;
        });

        
$failedInitiated 0;
        
$successCount 0;
        foreach (
$logIds as $logId) {
            try {
                
$email $logger->resendEmailFromLog($logId'check_realtime');
                
$successCount++;
            } catch (
\Exception $exception) {
                
$failedInitiated++;
            }
        }
        
$message __('Selected Emails have been proceed to send.''fluent-smtp');

        if (
$failedCount) {
            
$message .= sprintf(__(' But %d emails are reported to failed to send.''fluent-smtp'), $failedCount);
        }

        if (
$failedInitiated) {
            
$message .= sprintf(__(' And %d emails are failed to init the emails''fluent-smtp'), $failedInitiated);
        }

        return 
$this->sendSuccess([
            
'message' => $message
        
]);

    }
}