Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
62.50% covered (warning)
62.50%
5 / 8
75.00% covered (warning)
75.00%
3 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
Transaction_Event
62.50% covered (warning)
62.50%
5 / 8
75.00% covered (warning)
75.00%
3 / 4
6.32
0.00% covered (danger)
0.00%
0 / 1
 get_instance
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 created
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 updated
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 deleted
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Transaction Event.
4 *
5 * @package automattic/jetpack-crm
6 */
7
8namespace Automattic\Jetpack\CRM\Event_Manager;
9
10use Automattic\Jetpack\CRM\Entities\Factories\Transaction_Factory;
11use Automattic\Jetpack\CRM\Entities\Transaction;
12
13/**
14 * Transaction Event class.
15 *
16 * @since 6.2.0
17 */
18class Transaction_Event implements Event {
19
20    /**
21     * The Transaction_Event instance.
22     *
23     * @since 6.2.0
24     * @var Transaction_Event
25     */
26    private static $instance = null;
27
28    /**
29     * Get the singleton instance of this class.
30     *
31     * @since 6.2.0
32     *
33     * @return Transaction_Event The Transaction_Event instance.
34     */
35    public static function get_instance(): Transaction_Event {
36        if ( ! self::$instance ) {
37            self::$instance = new self();
38        }
39
40        return self::$instance;
41    }
42
43    /**
44     * A new transaction was created.
45     *
46     * @since 6.2.0
47     *
48     * @param array $transaction_data The created transaction data.
49     * @return void
50     */
51    public function created( array $transaction_data ): void {
52        /** @var Transaction $transaction */
53        $transaction = Transaction_Factory::create( $transaction_data );
54
55        do_action( 'jpcrm_transaction_created', $transaction );
56    }
57
58    /**
59     * The transaction was updated.
60     *
61     * @since 6.2.0
62     *
63     * @param array $transaction_data The updated transaction data.
64     * @return void
65     */
66    public function updated( array $transaction_data ): void {
67        $transaction = Transaction_Factory::create( $transaction_data );
68
69        do_action( 'jpcrm_transaction_updated', $transaction );
70    }
71
72    /**
73     * The transaction was deleted.
74     *
75     * @since 6.2.0
76     *
77     * @param int $transaction_id The deleted transaction id.
78     * @return void
79     */
80    public function deleted( int $transaction_id ): void {
81        do_action( 'jpcrm_transaction_deleted', $transaction_id );
82    }
83}