Completed
Branch FET/reg-form-builder/main (69a760)
by
unknown
04:39 queued 02:08
created
core/domain/services/graphql/types/RootQuery.php 1 patch
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 class RootQuery extends TypeBase
28 28
 {
29 29
 
30
-    /**
31
-     * RootQuery constructor.
32
-     */
33
-    public function __construct()
34
-    {
35
-        $this->setName('RootQuery');
36
-        $this->setIsCustomPostType(true);
37
-        parent::__construct();
38
-    }
30
+	/**
31
+	 * RootQuery constructor.
32
+	 */
33
+	public function __construct()
34
+	{
35
+		$this->setName('RootQuery');
36
+		$this->setIsCustomPostType(true);
37
+		parent::__construct();
38
+	}
39 39
 
40 40
 
41
-    /**
42
-     * @return GraphQLFieldInterface[]
43
-     */
44
-    public function getFields(): array
45
-    {
46
-        return [
47
-            new GraphQLOutputField(
48
-                lcfirst($this->namespace) . 'EventRelations',
49
-                'String',
50
-                null,
51
-                esc_html__('JSON encoded relational data of the models', 'event_espresso'),
52
-                null,
53
-                [$this, 'getEventRelationalData'],
54
-                [
55
-                    'eventId' => [
56
-                        'type'        => ['non_null' => 'Int'],
57
-                        'description' => esc_html__('The event ID to get the relational data for.', 'event_espresso'),
58
-                    ],
59
-                ]
60
-            ),
61
-        ];
62
-    }
41
+	/**
42
+	 * @return GraphQLFieldInterface[]
43
+	 */
44
+	public function getFields(): array
45
+	{
46
+		return [
47
+			new GraphQLOutputField(
48
+				lcfirst($this->namespace) . 'EventRelations',
49
+				'String',
50
+				null,
51
+				esc_html__('JSON encoded relational data of the models', 'event_espresso'),
52
+				null,
53
+				[$this, 'getEventRelationalData'],
54
+				[
55
+					'eventId' => [
56
+						'type'        => ['non_null' => 'Int'],
57
+						'description' => esc_html__('The event ID to get the relational data for.', 'event_espresso'),
58
+					],
59
+				]
60
+			),
61
+		];
62
+	}
63 63
 
64 64
 
65
-    /**
66
-     * @param mixed       $source  The source that's passed down the GraphQL queries
67
-     * @param array       $args    The inputArgs on the field
68
-     * @param AppContext  $context The AppContext passed down the GraphQL tree
69
-     * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
70
-     * @return string
71
-     * @throws Exception
72
-     * @throws InvalidArgumentException
73
-     * @throws InvalidDataTypeException
74
-     * @throws InvalidInterfaceException
75
-     * @throws UserError
76
-     * @throws UnexpectedEntityException
77
-     * @since $VID:$
78
-     */
79
-    public function getEventRelationalData($source, array $args, AppContext $context, ResolveInfo $info): string
80
-    {
81
-        /**
82
-         * Throw an exception if there's no event ID
83
-         */
84
-        if (empty($args['eventId']) || ! absint($args['eventId'])) {
85
-            throw new UserError(esc_html__(
86
-                'No event ID was provided to get the relational data for',
87
-                'event_espresso'
88
-            ));
89
-        }
65
+	/**
66
+	 * @param mixed       $source  The source that's passed down the GraphQL queries
67
+	 * @param array       $args    The inputArgs on the field
68
+	 * @param AppContext  $context The AppContext passed down the GraphQL tree
69
+	 * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
70
+	 * @return string
71
+	 * @throws Exception
72
+	 * @throws InvalidArgumentException
73
+	 * @throws InvalidDataTypeException
74
+	 * @throws InvalidInterfaceException
75
+	 * @throws UserError
76
+	 * @throws UnexpectedEntityException
77
+	 * @since $VID:$
78
+	 */
79
+	public function getEventRelationalData($source, array $args, AppContext $context, ResolveInfo $info): string
80
+	{
81
+		/**
82
+		 * Throw an exception if there's no event ID
83
+		 */
84
+		if (empty($args['eventId']) || ! absint($args['eventId'])) {
85
+			throw new UserError(esc_html__(
86
+				'No event ID was provided to get the relational data for',
87
+				'event_espresso'
88
+			));
89
+		}
90 90
 
91
-        $eventId = absint($args['eventId']);
92
-        /** @var EventEntityRelations $event_entity_relations */
93
-        $event_entity_relations = LoaderFactory::getLoader()->getShared(
94
-            'EventEspresso\core\domain\services\admin\events\editor\EventEntityRelations'
95
-        );
96
-        return json_encode($event_entity_relations->getData($eventId));
97
-    }
91
+		$eventId = absint($args['eventId']);
92
+		/** @var EventEntityRelations $event_entity_relations */
93
+		$event_entity_relations = LoaderFactory::getLoader()->getShared(
94
+			'EventEspresso\core\domain\services\admin\events\editor\EventEntityRelations'
95
+		);
96
+		return json_encode($event_entity_relations->getData($eventId));
97
+	}
98 98
 }
Please login to merge, or discard this patch.
core/domain/services/graphql/types/PriceType.php 2 patches
Indentation   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -20,117 +20,117 @@
 block discarded – undo
20 20
 class PriceType extends TypeBase
21 21
 {
22 22
 
23
-    /**
24
-     * PriceType constructor.
25
-     *
26
-     * @param EEM_Price_Type $price_type_model
27
-     */
28
-    public function __construct(EEM_Price_Type $price_type_model)
29
-    {
30
-        $this->setName($this->namespace . 'PriceType');
31
-        $this->setDescription(__('A price type.', 'event_espresso'));
32
-        $this->setIsCustomPostType(false);
33
-        parent::__construct($price_type_model);
34
-    }
23
+	/**
24
+	 * PriceType constructor.
25
+	 *
26
+	 * @param EEM_Price_Type $price_type_model
27
+	 */
28
+	public function __construct(EEM_Price_Type $price_type_model)
29
+	{
30
+		$this->setName($this->namespace . 'PriceType');
31
+		$this->setDescription(__('A price type.', 'event_espresso'));
32
+		$this->setIsCustomPostType(false);
33
+		parent::__construct($price_type_model);
34
+	}
35 35
 
36 36
 
37
-    /**
38
-     * @return GraphQLFieldInterface[]
39
-     */
40
-    public function getFields(): array
41
-    {
42
-        $fields = [
43
-            new GraphQLField(
44
-                'id',
45
-                ['non_null' => 'ID'],
46
-                null,
47
-                esc_html__('The globally unique ID for the object.', 'event_espresso')
48
-            ),
49
-            new GraphQLOutputField(
50
-                'dbId',
51
-                ['non_null' => 'Int'],
52
-                'ID',
53
-                esc_html__('Price type ID', 'event_espresso')
54
-            ),
55
-            new GraphQLField(
56
-                'baseType',
57
-                $this->namespace . 'PriceBaseTypeEnum',
58
-                'base_type',
59
-                esc_html__('Price Base type', 'event_espresso')
60
-            ),
61
-            new GraphQLOutputField(
62
-                'cacheId',
63
-                ['non_null' => 'String'],
64
-                null,
65
-                esc_html__('The cache ID of the object.', 'event_espresso')
66
-            ),
67
-            new GraphQLField(
68
-                'isBasePrice',
69
-                'Boolean',
70
-                'is_base_price',
71
-                esc_html__('Flag indicating price type is a base price.', 'event_espresso')
72
-            ),
73
-            new GraphQLField(
74
-                'isTrashed',
75
-                'Boolean',
76
-                'deleted',
77
-                esc_html__('Flag indicating price type has been trashed.', 'event_espresso')
78
-            ),
79
-            new GraphQLOutputField(
80
-                'isDiscount',
81
-                'Boolean',
82
-                'is_discount',
83
-                esc_html__('Flag indicating price type is a discount.', 'event_espresso')
84
-            ),
85
-            new GraphQLField(
86
-                'isPercent',
87
-                'Boolean',
88
-                'is_percent',
89
-                esc_html__('Flag indicating price type is a percentage.', 'event_espresso')
90
-            ),
91
-            new GraphQLOutputField(
92
-                'isTax',
93
-                'Boolean',
94
-                'is_tax',
95
-                esc_html__('Flag indicating price is a tax.', 'event_espresso')
96
-            ),
97
-            new GraphQLField(
98
-                'name',
99
-                'String',
100
-                'name',
101
-                esc_html__('Price type Name', 'event_espresso')
102
-            ),
103
-            new GraphQLField(
104
-                'order',
105
-                'Int',
106
-                'order',
107
-                esc_html__('Order in which price should be applied.', 'event_espresso')
108
-            ),
109
-            new GraphQLOutputField(
110
-                'wpUser',
111
-                'User',
112
-                null,
113
-                esc_html__('Price Type Creator', 'event_espresso')
114
-            ),
115
-            new GraphQLOutputField(
116
-                'userId',
117
-                'ID',
118
-                null,
119
-                esc_html__('Price Type Creator ID', 'event_espresso')
120
-            ),
121
-            new GraphQLInputField(
122
-                'wpUser',
123
-                'Int',
124
-                null,
125
-                esc_html__('Price Type Creator ID', 'event_espresso')
126
-            ),
127
-        ];
37
+	/**
38
+	 * @return GraphQLFieldInterface[]
39
+	 */
40
+	public function getFields(): array
41
+	{
42
+		$fields = [
43
+			new GraphQLField(
44
+				'id',
45
+				['non_null' => 'ID'],
46
+				null,
47
+				esc_html__('The globally unique ID for the object.', 'event_espresso')
48
+			),
49
+			new GraphQLOutputField(
50
+				'dbId',
51
+				['non_null' => 'Int'],
52
+				'ID',
53
+				esc_html__('Price type ID', 'event_espresso')
54
+			),
55
+			new GraphQLField(
56
+				'baseType',
57
+				$this->namespace . 'PriceBaseTypeEnum',
58
+				'base_type',
59
+				esc_html__('Price Base type', 'event_espresso')
60
+			),
61
+			new GraphQLOutputField(
62
+				'cacheId',
63
+				['non_null' => 'String'],
64
+				null,
65
+				esc_html__('The cache ID of the object.', 'event_espresso')
66
+			),
67
+			new GraphQLField(
68
+				'isBasePrice',
69
+				'Boolean',
70
+				'is_base_price',
71
+				esc_html__('Flag indicating price type is a base price.', 'event_espresso')
72
+			),
73
+			new GraphQLField(
74
+				'isTrashed',
75
+				'Boolean',
76
+				'deleted',
77
+				esc_html__('Flag indicating price type has been trashed.', 'event_espresso')
78
+			),
79
+			new GraphQLOutputField(
80
+				'isDiscount',
81
+				'Boolean',
82
+				'is_discount',
83
+				esc_html__('Flag indicating price type is a discount.', 'event_espresso')
84
+			),
85
+			new GraphQLField(
86
+				'isPercent',
87
+				'Boolean',
88
+				'is_percent',
89
+				esc_html__('Flag indicating price type is a percentage.', 'event_espresso')
90
+			),
91
+			new GraphQLOutputField(
92
+				'isTax',
93
+				'Boolean',
94
+				'is_tax',
95
+				esc_html__('Flag indicating price is a tax.', 'event_espresso')
96
+			),
97
+			new GraphQLField(
98
+				'name',
99
+				'String',
100
+				'name',
101
+				esc_html__('Price type Name', 'event_espresso')
102
+			),
103
+			new GraphQLField(
104
+				'order',
105
+				'Int',
106
+				'order',
107
+				esc_html__('Order in which price should be applied.', 'event_espresso')
108
+			),
109
+			new GraphQLOutputField(
110
+				'wpUser',
111
+				'User',
112
+				null,
113
+				esc_html__('Price Type Creator', 'event_espresso')
114
+			),
115
+			new GraphQLOutputField(
116
+				'userId',
117
+				'ID',
118
+				null,
119
+				esc_html__('Price Type Creator ID', 'event_espresso')
120
+			),
121
+			new GraphQLInputField(
122
+				'wpUser',
123
+				'Int',
124
+				null,
125
+				esc_html__('Price Type Creator ID', 'event_espresso')
126
+			),
127
+		];
128 128
 
129
-        return apply_filters(
130
-            'FHEE__EventEspresso_core_domain_services_graphql_types__priceType_fields',
131
-            $fields,
132
-            $this->name,
133
-            $this->model
134
-        );
135
-    }
129
+		return apply_filters(
130
+			'FHEE__EventEspresso_core_domain_services_graphql_types__priceType_fields',
131
+			$fields,
132
+			$this->name,
133
+			$this->model
134
+		);
135
+	}
136 136
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
      */
28 28
     public function __construct(EEM_Price_Type $price_type_model)
29 29
     {
30
-        $this->setName($this->namespace . 'PriceType');
30
+        $this->setName($this->namespace.'PriceType');
31 31
         $this->setDescription(__('A price type.', 'event_espresso'));
32 32
         $this->setIsCustomPostType(false);
33 33
         parent::__construct($price_type_model);
@@ -54,7 +54,7 @@  discard block
 block discarded – undo
54 54
             ),
55 55
             new GraphQLField(
56 56
                 'baseType',
57
-                $this->namespace . 'PriceBaseTypeEnum',
57
+                $this->namespace.'PriceBaseTypeEnum',
58 58
                 'base_type',
59 59
                 esc_html__('Price Base type', 'event_espresso')
60 60
             ),
Please login to merge, or discard this patch.
core/domain/services/graphql/types/Country.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@
 block discarded – undo
26 26
      */
27 27
     public function __construct(EEM_Country $country_model)
28 28
     {
29
-        $this->setName($this->namespace . 'Country');
29
+        $this->setName($this->namespace.'Country');
30 30
         $this->setDescription(__('A country', 'event_espresso'));
31 31
         $this->setIsCustomPostType(false);
32 32
         parent::__construct($country_model);
Please login to merge, or discard this patch.
Indentation   +113 added lines, -113 removed lines patch added patch discarded remove patch
@@ -20,120 +20,120 @@
 block discarded – undo
20 20
 class Country extends TypeBase
21 21
 {
22 22
 
23
-    /**
24
-     * Country constructor.
25
-     *
26
-     * @param EEM_Country $country_model
27
-     */
28
-    public function __construct(EEM_Country $country_model)
29
-    {
30
-        $this->setName($this->namespace . 'Country');
31
-        $this->setDescription(__('A country', 'event_espresso'));
32
-        $this->setIsCustomPostType(false);
33
-        parent::__construct($country_model);
34
-    }
23
+	/**
24
+	 * Country constructor.
25
+	 *
26
+	 * @param EEM_Country $country_model
27
+	 */
28
+	public function __construct(EEM_Country $country_model)
29
+	{
30
+		$this->setName($this->namespace . 'Country');
31
+		$this->setDescription(__('A country', 'event_espresso'));
32
+		$this->setIsCustomPostType(false);
33
+		parent::__construct($country_model);
34
+	}
35 35
 
36 36
 
37
-    /**
38
-     * @return GraphQLFieldInterface[]
39
-     */
40
-    public function getFields(): array
41
-    {
42
-        $fields = [
43
-            new GraphQLField(
44
-                'id',
45
-                ['non_null' => 'ID'],
46
-                null,
47
-                esc_html__('The globally unique ID for the object.', 'event_espresso')
48
-            ),
49
-            new GraphQLOutputField(
50
-                'cacheId',
51
-                ['non_null' => 'String'],
52
-                null,
53
-                esc_html__('The cache ID of the object.', 'event_espresso')
54
-            ),
55
-            new GraphQLField(
56
-                'isActive',
57
-                'Boolean',
58
-                'is_active',
59
-                esc_html__(
60
-                    'Flag that indicates if the country should appear in dropdown select lists',
61
-                    'event_espresso'
62
-                )
63
-            ),
64
-            new GraphQLField(
65
-                'ISO',
66
-                'String',
67
-                'ID',
68
-                esc_html__('Country ISO Code', 'event_espresso')
69
-            ),
70
-            new GraphQLField(
71
-                'ISO3',
72
-                'String',
73
-                'ISO3',
74
-                esc_html__('Country ISO3 Code', 'event_espresso')
75
-            ),
76
-            new GraphQLField(
77
-                'name',
78
-                'String',
79
-                'name',
80
-                esc_html__('Country Name', 'event_espresso')
81
-            ),
82
-            new GraphQLField(
83
-                'currencyCode',
84
-                'String',
85
-                'currency_code',
86
-                esc_html__('Country Currency Code', 'event_espresso')
87
-            ),
88
-            new GraphQLField(
89
-                'currencySingular',
90
-                'String',
91
-                'currency_name_single',
92
-                esc_html__('Currency Name Singular', 'event_espresso')
93
-            ),
94
-            new GraphQLField(
95
-                'currencyPlural',
96
-                'String',
97
-                'currency_name_plural',
98
-                esc_html__('Currency Name Plural', 'event_espresso')
99
-            ),
100
-            new GraphQLField(
101
-                'currencySign',
102
-                'String',
103
-                'currency_sign',
104
-                __('Currency Sign', 'event_espresso')
105
-            ),
106
-            new GraphQLField(
107
-                'currencySignBeforeNumber',
108
-                'String',
109
-                'currency_sign_before',
110
-                esc_html__('Currency Sign Before Number', 'event_espresso')
111
-            ),
112
-            new GraphQLField(
113
-                'currencyDecimalPlaces',
114
-                'String',
115
-                'currency_decimal_places',
116
-                esc_html__('Currency Decimal Places', 'event_espresso')
117
-            ),
118
-            new GraphQLField(
119
-                'currencyDecimalMark',
120
-                'String',
121
-                'currency_decimal_mark',
122
-                esc_html__('Currency Decimal Mark', 'event_espresso')
123
-            ),
124
-            new GraphQLField(
125
-                'currencyThousandsSeparator',
126
-                'String',
127
-                'currency_thousands_separator',
128
-                esc_html__('Currency Thousands Separator', 'event_espresso')
129
-            ),
130
-        ];
37
+	/**
38
+	 * @return GraphQLFieldInterface[]
39
+	 */
40
+	public function getFields(): array
41
+	{
42
+		$fields = [
43
+			new GraphQLField(
44
+				'id',
45
+				['non_null' => 'ID'],
46
+				null,
47
+				esc_html__('The globally unique ID for the object.', 'event_espresso')
48
+			),
49
+			new GraphQLOutputField(
50
+				'cacheId',
51
+				['non_null' => 'String'],
52
+				null,
53
+				esc_html__('The cache ID of the object.', 'event_espresso')
54
+			),
55
+			new GraphQLField(
56
+				'isActive',
57
+				'Boolean',
58
+				'is_active',
59
+				esc_html__(
60
+					'Flag that indicates if the country should appear in dropdown select lists',
61
+					'event_espresso'
62
+				)
63
+			),
64
+			new GraphQLField(
65
+				'ISO',
66
+				'String',
67
+				'ID',
68
+				esc_html__('Country ISO Code', 'event_espresso')
69
+			),
70
+			new GraphQLField(
71
+				'ISO3',
72
+				'String',
73
+				'ISO3',
74
+				esc_html__('Country ISO3 Code', 'event_espresso')
75
+			),
76
+			new GraphQLField(
77
+				'name',
78
+				'String',
79
+				'name',
80
+				esc_html__('Country Name', 'event_espresso')
81
+			),
82
+			new GraphQLField(
83
+				'currencyCode',
84
+				'String',
85
+				'currency_code',
86
+				esc_html__('Country Currency Code', 'event_espresso')
87
+			),
88
+			new GraphQLField(
89
+				'currencySingular',
90
+				'String',
91
+				'currency_name_single',
92
+				esc_html__('Currency Name Singular', 'event_espresso')
93
+			),
94
+			new GraphQLField(
95
+				'currencyPlural',
96
+				'String',
97
+				'currency_name_plural',
98
+				esc_html__('Currency Name Plural', 'event_espresso')
99
+			),
100
+			new GraphQLField(
101
+				'currencySign',
102
+				'String',
103
+				'currency_sign',
104
+				__('Currency Sign', 'event_espresso')
105
+			),
106
+			new GraphQLField(
107
+				'currencySignBeforeNumber',
108
+				'String',
109
+				'currency_sign_before',
110
+				esc_html__('Currency Sign Before Number', 'event_espresso')
111
+			),
112
+			new GraphQLField(
113
+				'currencyDecimalPlaces',
114
+				'String',
115
+				'currency_decimal_places',
116
+				esc_html__('Currency Decimal Places', 'event_espresso')
117
+			),
118
+			new GraphQLField(
119
+				'currencyDecimalMark',
120
+				'String',
121
+				'currency_decimal_mark',
122
+				esc_html__('Currency Decimal Mark', 'event_espresso')
123
+			),
124
+			new GraphQLField(
125
+				'currencyThousandsSeparator',
126
+				'String',
127
+				'currency_thousands_separator',
128
+				esc_html__('Currency Thousands Separator', 'event_espresso')
129
+			),
130
+		];
131 131
 
132
-        return apply_filters(
133
-            'FHEE__EventEspresso_core_domain_services_graphql_types__country_fields',
134
-            $fields,
135
-            $this->name,
136
-            $this->model
137
-        );
138
-    }
132
+		return apply_filters(
133
+			'FHEE__EventEspresso_core_domain_services_graphql_types__country_fields',
134
+			$fields,
135
+			$this->name,
136
+			$this->model
137
+		);
138
+	}
139 139
 }
Please login to merge, or discard this patch.
core/domain/services/graphql/types/Attendee.php 2 patches
Indentation   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -23,187 +23,187 @@
 block discarded – undo
23 23
 class Attendee extends TypeBase
24 24
 {
25 25
 
26
-    /**
27
-     * Attendee constructor.
28
-     *
29
-     * @param EEM_Attendee $attendee_model
30
-     */
31
-    public function __construct(EEM_Attendee $attendee_model)
32
-    {
33
-        $this->setName($this->namespace . 'Attendee');
34
-        $this->setIsCustomPostType(false); // Set to false to use our model queries
35
-        parent::__construct($attendee_model);
36
-    }
26
+	/**
27
+	 * Attendee constructor.
28
+	 *
29
+	 * @param EEM_Attendee $attendee_model
30
+	 */
31
+	public function __construct(EEM_Attendee $attendee_model)
32
+	{
33
+		$this->setName($this->namespace . 'Attendee');
34
+		$this->setIsCustomPostType(false); // Set to false to use our model queries
35
+		parent::__construct($attendee_model);
36
+	}
37 37
 
38 38
 
39
-    /**
40
-     * @return GraphQLFieldInterface[]
41
-     */
42
-    public function getFields(): array
43
-    {
44
-        $fields = [
45
-            new GraphQLField(
46
-                'id',
47
-                ['non_null' => 'ID'],
48
-                null,
49
-                esc_html__('The globally unique ID for the object.', 'event_espresso')
50
-            ),
51
-            new GraphQLOutputField(
52
-                'dbId',
53
-                ['non_null' => 'Int'],
54
-                'ID',
55
-                esc_html__('The attendee ID.', 'event_espresso')
56
-            ),
57
-            new GraphQLOutputField(
58
-                'cacheId',
59
-                ['non_null' => 'String'],
60
-                null,
61
-                esc_html__('The cache ID of the object.', 'event_espresso')
62
-            ),
63
-            new GraphQLOutputField(
64
-                'address',
65
-                'String',
66
-                'address',
67
-                esc_html__('Address Part 1', 'event_espresso'),
68
-                null,
69
-                null,
70
-                ['ee_edit_contacts']
71
-            ),
72
-            new GraphQLOutputField(
73
-                'address2',
74
-                'String',
75
-                'address2',
76
-                esc_html__('Address Part 2', 'event_espresso'),
77
-                null,
78
-                null,
79
-                ['ee_edit_contacts']
80
-            ),
81
-            new GraphQLOutputField(
82
-                'avatar',
83
-                'String',
84
-                null,
85
-                esc_html__('User avatar URL', 'event_espresso'),
86
-                null,
87
-                [$this, 'getAvatar'],
88
-                ['ee_edit_contacts']
89
-            ),
90
-            new GraphQLOutputField(
91
-                'bio',
92
-                'String',
93
-                'bio',
94
-                esc_html__('Attendee Biography', 'event_espresso'),
95
-                null,
96
-                null,
97
-                ['ee_edit_contacts']
98
-            ),
99
-            new GraphQLOutputField(
100
-                'city',
101
-                'String',
102
-                'city',
103
-                esc_html__('City', 'event_espresso'),
104
-                null,
105
-                null,
106
-                ['ee_edit_contacts']
107
-            ),
108
-            new GraphQLOutputField(
109
-                'country',
110
-                $this->namespace . 'Country',
111
-                null,
112
-                esc_html__('Country', 'event_espresso'),
113
-                null,
114
-                null,
115
-                ['ee_edit_contacts']
116
-            ),
117
-            new GraphQLOutputField(
118
-                'email',
119
-                'String',
120
-                'email',
121
-                esc_html__('Email Address', 'event_espresso'),
122
-                null,
123
-                null,
124
-                ['ee_edit_contacts']
125
-            ),
126
-            new GraphQLOutputField(
127
-                'firstName',
128
-                'String',
129
-                'fname',
130
-                esc_html__('Attendee First Name', 'event_espresso')
131
-            ),
132
-            new GraphQLOutputField(
133
-                'fullName',
134
-                'String',
135
-                'full_name',
136
-                esc_html__('Attendee Name', 'event_espresso')
137
-            ),
138
-            new GraphQLOutputField(
139
-                'lastName',
140
-                'String',
141
-                'lname',
142
-                esc_html__('Attendee Last Name', 'event_espresso')
143
-            ),
144
-            new GraphQLOutputField(
145
-                'phone',
146
-                'String',
147
-                'phone',
148
-                esc_html__('Phone', 'event_espresso'),
149
-                null,
150
-                null,
151
-                ['ee_edit_contacts']
152
-            ),
153
-            new GraphQLOutputField(
154
-                'shortBio',
155
-                'String',
156
-                'short_bio',
157
-                esc_html__('Attendee Short Biography', 'event_espresso'),
158
-                null,
159
-                null,
160
-                ['ee_edit_contacts']
161
-            ),
162
-            new GraphQLOutputField(
163
-                'state',
164
-                $this->namespace . 'State',
165
-                null,
166
-                esc_html__('State', 'event_espresso'),
167
-                null,
168
-                null,
169
-                ['ee_edit_contacts']
170
-            ),
171
-            new GraphQLOutputField(
172
-                'zip',
173
-                'String',
174
-                'zip',
175
-                esc_html__('ZIP/Postal Code', 'event_espresso'),
176
-                null,
177
-                null,
178
-                ['ee_edit_contacts']
179
-            ),
180
-        ];
39
+	/**
40
+	 * @return GraphQLFieldInterface[]
41
+	 */
42
+	public function getFields(): array
43
+	{
44
+		$fields = [
45
+			new GraphQLField(
46
+				'id',
47
+				['non_null' => 'ID'],
48
+				null,
49
+				esc_html__('The globally unique ID for the object.', 'event_espresso')
50
+			),
51
+			new GraphQLOutputField(
52
+				'dbId',
53
+				['non_null' => 'Int'],
54
+				'ID',
55
+				esc_html__('The attendee ID.', 'event_espresso')
56
+			),
57
+			new GraphQLOutputField(
58
+				'cacheId',
59
+				['non_null' => 'String'],
60
+				null,
61
+				esc_html__('The cache ID of the object.', 'event_espresso')
62
+			),
63
+			new GraphQLOutputField(
64
+				'address',
65
+				'String',
66
+				'address',
67
+				esc_html__('Address Part 1', 'event_espresso'),
68
+				null,
69
+				null,
70
+				['ee_edit_contacts']
71
+			),
72
+			new GraphQLOutputField(
73
+				'address2',
74
+				'String',
75
+				'address2',
76
+				esc_html__('Address Part 2', 'event_espresso'),
77
+				null,
78
+				null,
79
+				['ee_edit_contacts']
80
+			),
81
+			new GraphQLOutputField(
82
+				'avatar',
83
+				'String',
84
+				null,
85
+				esc_html__('User avatar URL', 'event_espresso'),
86
+				null,
87
+				[$this, 'getAvatar'],
88
+				['ee_edit_contacts']
89
+			),
90
+			new GraphQLOutputField(
91
+				'bio',
92
+				'String',
93
+				'bio',
94
+				esc_html__('Attendee Biography', 'event_espresso'),
95
+				null,
96
+				null,
97
+				['ee_edit_contacts']
98
+			),
99
+			new GraphQLOutputField(
100
+				'city',
101
+				'String',
102
+				'city',
103
+				esc_html__('City', 'event_espresso'),
104
+				null,
105
+				null,
106
+				['ee_edit_contacts']
107
+			),
108
+			new GraphQLOutputField(
109
+				'country',
110
+				$this->namespace . 'Country',
111
+				null,
112
+				esc_html__('Country', 'event_espresso'),
113
+				null,
114
+				null,
115
+				['ee_edit_contacts']
116
+			),
117
+			new GraphQLOutputField(
118
+				'email',
119
+				'String',
120
+				'email',
121
+				esc_html__('Email Address', 'event_espresso'),
122
+				null,
123
+				null,
124
+				['ee_edit_contacts']
125
+			),
126
+			new GraphQLOutputField(
127
+				'firstName',
128
+				'String',
129
+				'fname',
130
+				esc_html__('Attendee First Name', 'event_espresso')
131
+			),
132
+			new GraphQLOutputField(
133
+				'fullName',
134
+				'String',
135
+				'full_name',
136
+				esc_html__('Attendee Name', 'event_espresso')
137
+			),
138
+			new GraphQLOutputField(
139
+				'lastName',
140
+				'String',
141
+				'lname',
142
+				esc_html__('Attendee Last Name', 'event_espresso')
143
+			),
144
+			new GraphQLOutputField(
145
+				'phone',
146
+				'String',
147
+				'phone',
148
+				esc_html__('Phone', 'event_espresso'),
149
+				null,
150
+				null,
151
+				['ee_edit_contacts']
152
+			),
153
+			new GraphQLOutputField(
154
+				'shortBio',
155
+				'String',
156
+				'short_bio',
157
+				esc_html__('Attendee Short Biography', 'event_espresso'),
158
+				null,
159
+				null,
160
+				['ee_edit_contacts']
161
+			),
162
+			new GraphQLOutputField(
163
+				'state',
164
+				$this->namespace . 'State',
165
+				null,
166
+				esc_html__('State', 'event_espresso'),
167
+				null,
168
+				null,
169
+				['ee_edit_contacts']
170
+			),
171
+			new GraphQLOutputField(
172
+				'zip',
173
+				'String',
174
+				'zip',
175
+				esc_html__('ZIP/Postal Code', 'event_espresso'),
176
+				null,
177
+				null,
178
+				['ee_edit_contacts']
179
+			),
180
+		];
181 181
 
182
-        return apply_filters(
183
-            'FHEE__EventEspresso_core_domain_services_graphql_types__attendee_fields',
184
-            $fields,
185
-            $this->name,
186
-            $this->model
187
-        );
188
-    }
182
+		return apply_filters(
183
+			'FHEE__EventEspresso_core_domain_services_graphql_types__attendee_fields',
184
+			$fields,
185
+			$this->name,
186
+			$this->model
187
+		);
188
+	}
189 189
 
190 190
 
191
-    /**
192
-     * @param EE_Attendee $source  The source that's passed down the GraphQL queries
193
-     * @param array       $args    The inputArgs on the field
194
-     * @param AppContext  $context The AppContext passed down the GraphQL tree
195
-     * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
196
-     * @return string|null
197
-     * @throws EE_Error
198
-     */
199
-    public function getAvatar(EE_Attendee $source, array $args, AppContext $context, ResolveInfo $info): ?string
200
-    {
201
-        $email = $source->email();
191
+	/**
192
+	 * @param EE_Attendee $source  The source that's passed down the GraphQL queries
193
+	 * @param array       $args    The inputArgs on the field
194
+	 * @param AppContext  $context The AppContext passed down the GraphQL tree
195
+	 * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
196
+	 * @return string|null
197
+	 * @throws EE_Error
198
+	 */
199
+	public function getAvatar(EE_Attendee $source, array $args, AppContext $context, ResolveInfo $info): ?string
200
+	{
201
+		$email = $source->email();
202 202
 
203
-        if (empty($email)) {
204
-            return get_avatar_url('', ['force_default' => true]);
205
-        }
206
-        $avatar = get_avatar_url($email);
207
-        return $avatar ?: null;
208
-    }
203
+		if (empty($email)) {
204
+			return get_avatar_url('', ['force_default' => true]);
205
+		}
206
+		$avatar = get_avatar_url($email);
207
+		return $avatar ?: null;
208
+	}
209 209
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -30,7 +30,7 @@  discard block
 block discarded – undo
30 30
      */
31 31
     public function __construct(EEM_Attendee $attendee_model)
32 32
     {
33
-        $this->setName($this->namespace . 'Attendee');
33
+        $this->setName($this->namespace.'Attendee');
34 34
         $this->setIsCustomPostType(false); // Set to false to use our model queries
35 35
         parent::__construct($attendee_model);
36 36
     }
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
             ),
108 108
             new GraphQLOutputField(
109 109
                 'country',
110
-                $this->namespace . 'Country',
110
+                $this->namespace.'Country',
111 111
                 null,
112 112
                 esc_html__('Country', 'event_espresso'),
113 113
                 null,
@@ -161,7 +161,7 @@  discard block
 block discarded – undo
161 161
             ),
162 162
             new GraphQLOutputField(
163 163
                 'state',
164
-                $this->namespace . 'State',
164
+                $this->namespace.'State',
165 165
                 null,
166 166
                 esc_html__('State', 'event_espresso'),
167 167
                 null,
Please login to merge, or discard this patch.
core/domain/services/graphql/resolvers/FieldResolver.php 2 patches
Indentation   +233 added lines, -233 removed lines patch added patch discarded remove patch
@@ -38,260 +38,260 @@
 block discarded – undo
38 38
 class FieldResolver extends ResolverBase
39 39
 {
40 40
 
41
-    /**
42
-     * @var EEM_Base $model
43
-     */
44
-    protected $model;
41
+	/**
42
+	 * @var EEM_Base $model
43
+	 */
44
+	protected $model;
45 45
 
46
-    /**
47
-     * @var array $fields .
48
-     */
49
-    protected $fields;
46
+	/**
47
+	 * @var array $fields .
48
+	 */
49
+	protected $fields;
50 50
 
51 51
 
52
-    /**
53
-     * FieldResolver constructor.
54
-     *
55
-     * @param EEM_Base|null $model  The model instance.
56
-     * @param array         $fields The fields registered for the type.
57
-     */
58
-    public function __construct(EEM_Base $model = null, array $fields = [])
59
-    {
60
-        $this->model  = $model;
61
-        $this->fields = $fields;
62
-    }
52
+	/**
53
+	 * FieldResolver constructor.
54
+	 *
55
+	 * @param EEM_Base|null $model  The model instance.
56
+	 * @param array         $fields The fields registered for the type.
57
+	 */
58
+	public function __construct(EEM_Base $model = null, array $fields = [])
59
+	{
60
+		$this->model  = $model;
61
+		$this->fields = $fields;
62
+	}
63 63
 
64 64
 
65
-    /**
66
-     * @param mixed       $source  The source that's passed down the GraphQL queries
67
-     * @param array       $args    The inputArgs on the field
68
-     * @param AppContext  $context The AppContext passed down the GraphQL tree
69
-     * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
70
-     * @return EE_Base_Class|Deferred|string
71
-     * @throws EE_Error
72
-     * @throws Exception
73
-     * @throws InvalidArgumentException
74
-     * @throws InvalidDataTypeException
75
-     * @throws InvalidInterfaceException
76
-     * @throws ReflectionException
77
-     * @throws UserError
78
-     * @throws UnexpectedEntityException
79
-     */
80
-    public function resolve($source, array $args, AppContext $context, ResolveInfo $info)
81
-    {
82
-        $fieldName = $info->fieldName;
83
-        $field     = $this->fields[ $fieldName ] ?? null;
84
-        // Field should exist in teh registered fields
85
-        if ($field instanceof GraphQLField) {
86
-            // check if the field should be resolved.
87
-            if (! $field->shouldResolve()) {
88
-                return null;
89
-            }
90
-            // Give priority to the internal resolver.
91
-            if ($field->hasInternalResolver()) {
92
-                return $field->resolve($source, $args, $context, $info);
93
-            }
94
-            if (! ($source instanceof EE_Base_Class)) {
95
-                return null;
96
-            }
97
-            // Check if the field has a key mapped to model.
98
-            if (! empty($field->key())) {
99
-                $value = $source->{$field->key()}();
100
-                return $field->mayBeFormatValue($value, $source);
101
-            }
102
-            switch ($fieldName) {
103
-                case 'id': // the global ID
104
-                    return $this->resolveId($source);
105
-                case 'cacheId':
106
-                    return $this->resolveCacheId($source);
107
-                case 'parent':
108
-                    return $this->resolveParent($source);
109
-                case 'event':
110
-                    return $this->resolveEvent($source, $args, $context);
111
-                case 'wpUser':
112
-                case 'manager':
113
-                    return $this->resolveWpUser($source, $args, $context);
114
-                case 'userId':
115
-                    return $this->resolveUserId($source, $args, $context);
116
-                case 'state': // Venue
117
-                    return $this->resolveState($source);
118
-                case 'country': // State, Venue
119
-                    return $this->resolveCountry($source);
120
-            }
121
-        }
122
-        return null;
123
-    }
65
+	/**
66
+	 * @param mixed       $source  The source that's passed down the GraphQL queries
67
+	 * @param array       $args    The inputArgs on the field
68
+	 * @param AppContext  $context The AppContext passed down the GraphQL tree
69
+	 * @param ResolveInfo $info    The ResolveInfo passed down the GraphQL tree
70
+	 * @return EE_Base_Class|Deferred|string
71
+	 * @throws EE_Error
72
+	 * @throws Exception
73
+	 * @throws InvalidArgumentException
74
+	 * @throws InvalidDataTypeException
75
+	 * @throws InvalidInterfaceException
76
+	 * @throws ReflectionException
77
+	 * @throws UserError
78
+	 * @throws UnexpectedEntityException
79
+	 */
80
+	public function resolve($source, array $args, AppContext $context, ResolveInfo $info)
81
+	{
82
+		$fieldName = $info->fieldName;
83
+		$field     = $this->fields[ $fieldName ] ?? null;
84
+		// Field should exist in teh registered fields
85
+		if ($field instanceof GraphQLField) {
86
+			// check if the field should be resolved.
87
+			if (! $field->shouldResolve()) {
88
+				return null;
89
+			}
90
+			// Give priority to the internal resolver.
91
+			if ($field->hasInternalResolver()) {
92
+				return $field->resolve($source, $args, $context, $info);
93
+			}
94
+			if (! ($source instanceof EE_Base_Class)) {
95
+				return null;
96
+			}
97
+			// Check if the field has a key mapped to model.
98
+			if (! empty($field->key())) {
99
+				$value = $source->{$field->key()}();
100
+				return $field->mayBeFormatValue($value, $source);
101
+			}
102
+			switch ($fieldName) {
103
+				case 'id': // the global ID
104
+					return $this->resolveId($source);
105
+				case 'cacheId':
106
+					return $this->resolveCacheId($source);
107
+				case 'parent':
108
+					return $this->resolveParent($source);
109
+				case 'event':
110
+					return $this->resolveEvent($source, $args, $context);
111
+				case 'wpUser':
112
+				case 'manager':
113
+					return $this->resolveWpUser($source, $args, $context);
114
+				case 'userId':
115
+					return $this->resolveUserId($source, $args, $context);
116
+				case 'state': // Venue
117
+					return $this->resolveState($source);
118
+				case 'country': // State, Venue
119
+					return $this->resolveCountry($source);
120
+			}
121
+		}
122
+		return null;
123
+	}
124 124
 
125 125
 
126
-    /**
127
-     * Resolve the global ID
128
-     *
129
-     * @param mixed $source
130
-     * @return string|null
131
-     * @throws Exception
132
-     */
133
-    public function resolveId($source): ?string
134
-    {
135
-        if (! $source instanceof EE_Base_Class) {
136
-            return null;
137
-        }
138
-        // If the model has a UUID method
139
-        if (method_exists($source, 'UUID') && is_callable([$source, 'UUID'])) {
140
-            return $source->UUID();
141
-        }
126
+	/**
127
+	 * Resolve the global ID
128
+	 *
129
+	 * @param mixed $source
130
+	 * @return string|null
131
+	 * @throws Exception
132
+	 */
133
+	public function resolveId($source): ?string
134
+	{
135
+		if (! $source instanceof EE_Base_Class) {
136
+			return null;
137
+		}
138
+		// If the model has a UUID method
139
+		if (method_exists($source, 'UUID') && is_callable([$source, 'UUID'])) {
140
+			return $source->UUID();
141
+		}
142 142
 
143
-        return Relay::toGlobalId($this->model->item_name(), $source->ID());
144
-    }
143
+		return Relay::toGlobalId($this->model->item_name(), $source->ID());
144
+	}
145 145
 
146 146
 
147
-    /**
148
-     * Resolve the cache ID
149
-     *
150
-     * @param mixed $source
151
-     * @return string
152
-     */
153
-    public function resolveCacheId($source): string
154
-    {
155
-        $model_name = $this->model->item_name();
156
-        $ID         = $source->ID();
157
-        // Since cacheId does not need to be globally unique
158
-        // $uniqid is sufficient, still adding the model name and ID
159
-        // may be we need/use them in future.
160
-        return uniqid("{$model_name}:{$ID}:", true);
161
-    }
147
+	/**
148
+	 * Resolve the cache ID
149
+	 *
150
+	 * @param mixed $source
151
+	 * @return string
152
+	 */
153
+	public function resolveCacheId($source): string
154
+	{
155
+		$model_name = $this->model->item_name();
156
+		$ID         = $source->ID();
157
+		// Since cacheId does not need to be globally unique
158
+		// $uniqid is sufficient, still adding the model name and ID
159
+		// may be we need/use them in future.
160
+		return uniqid("{$model_name}:{$ID}:", true);
161
+	}
162 162
 
163 163
 
164
-    /**
165
-     * @param mixed     $source
166
-     * @param           $args
167
-     * @param           $context
168
-     * @return Deferred|null
169
-     * @throws Exception
170
-     */
171
-    public function resolveWpUser($source, $args, $context): ?Deferred
172
-    {
173
-        $user_id = $source->wp_user();
174
-        return $user_id
175
-            ? $context->get_loader('user')->load_deferred($user_id)
176
-            : null;
177
-    }
164
+	/**
165
+	 * @param mixed     $source
166
+	 * @param           $args
167
+	 * @param           $context
168
+	 * @return Deferred|null
169
+	 * @throws Exception
170
+	 */
171
+	public function resolveWpUser($source, $args, $context): ?Deferred
172
+	{
173
+		$user_id = $source->wp_user();
174
+		return $user_id
175
+			? $context->get_loader('user')->load_deferred($user_id)
176
+			: null;
177
+	}
178 178
 
179 179
 
180
-    /**
181
-     * @param mixed     $source
182
-     * @param           $args
183
-     * @param           $context
184
-     * @return string|null
185
-     * @throws Exception
186
-     */
187
-    public function resolveUserId($source, $args, $context): ?string
188
-    {
189
-        $user_id = $source->wp_user();
190
-        return $user_id
191
-            ? Relay::toGlobalId('user', $user_id)
192
-            : null;
193
-    }
180
+	/**
181
+	 * @param mixed     $source
182
+	 * @param           $args
183
+	 * @param           $context
184
+	 * @return string|null
185
+	 * @throws Exception
186
+	 */
187
+	public function resolveUserId($source, $args, $context): ?string
188
+	{
189
+		$user_id = $source->wp_user();
190
+		return $user_id
191
+			? Relay::toGlobalId('user', $user_id)
192
+			: null;
193
+	}
194 194
 
195 195
 
196
-    /**
197
-     * @param mixed $source
198
-     * @return EE_Base_Class|null
199
-     * @throws InvalidArgumentException
200
-     * @throws InvalidDataTypeException
201
-     * @throws InvalidInterfaceException
202
-     * @throws EE_Error
203
-     */
204
-    public function resolveParent($source): ?EE_Base_Class
205
-    {
206
-        return $this->model->get_one_by_ID($source->parent());
207
-    }
196
+	/**
197
+	 * @param mixed $source
198
+	 * @return EE_Base_Class|null
199
+	 * @throws InvalidArgumentException
200
+	 * @throws InvalidDataTypeException
201
+	 * @throws InvalidInterfaceException
202
+	 * @throws EE_Error
203
+	 */
204
+	public function resolveParent($source): ?EE_Base_Class
205
+	{
206
+		return $this->model->get_one_by_ID($source->parent());
207
+	}
208 208
 
209 209
 
210
-    /**
211
-     * @param mixed       $source
212
-     * @param             $args
213
-     * @param             $context
214
-     * @return Deferred|null
215
-     * @throws EE_Error
216
-     * @throws InvalidArgumentException
217
-     * @throws InvalidDataTypeException
218
-     * @throws InvalidInterfaceException
219
-     * @throws ReflectionException
220
-     * @throws UserError
221
-     * @throws UnexpectedEntityException
222
-     */
223
-    public function resolveEvent($source, $args, $context): ?Deferred
224
-    {
225
-        switch (true) {
226
-            case $source instanceof EE_Datetime:
227
-                $event = $source->event();
228
-                break;
229
-            case $source instanceof EE_Venue:
230
-            case $source instanceof EE_Ticket:
231
-                $event = $source->get_related_event();
232
-                break;
233
-            default:
234
-                $event = null;
235
-                break;
236
-        }
237
-        return $event instanceof EE_Event
238
-            ? $context->get_loader('post')->load_deferred($event->ID())
239
-            : null;
240
-    }
210
+	/**
211
+	 * @param mixed       $source
212
+	 * @param             $args
213
+	 * @param             $context
214
+	 * @return Deferred|null
215
+	 * @throws EE_Error
216
+	 * @throws InvalidArgumentException
217
+	 * @throws InvalidDataTypeException
218
+	 * @throws InvalidInterfaceException
219
+	 * @throws ReflectionException
220
+	 * @throws UserError
221
+	 * @throws UnexpectedEntityException
222
+	 */
223
+	public function resolveEvent($source, $args, $context): ?Deferred
224
+	{
225
+		switch (true) {
226
+			case $source instanceof EE_Datetime:
227
+				$event = $source->event();
228
+				break;
229
+			case $source instanceof EE_Venue:
230
+			case $source instanceof EE_Ticket:
231
+				$event = $source->get_related_event();
232
+				break;
233
+			default:
234
+				$event = null;
235
+				break;
236
+		}
237
+		return $event instanceof EE_Event
238
+			? $context->get_loader('post')->load_deferred($event->ID())
239
+			: null;
240
+	}
241 241
 
242 242
 
243
-    /**
244
-     * @param mixed $source The source instance.
245
-     * @return EE_Base_Class|null
246
-     * @throws EE_Error
247
-     * @throws InvalidArgumentException
248
-     * @throws InvalidDataTypeException
249
-     * @throws InvalidInterfaceException
250
-     * @throws ReflectionException
251
-     */
252
-    public function resolveState($source): ?EE_Base_Class
253
-    {
254
-        switch (true) {
255
-            case $source instanceof EE_Attendee:
256
-            case $source instanceof EE_Venue:
257
-                $state_id = $source->state_ID();
258
-                break;
259
-            default:
260
-                $state_id = null;
261
-                break;
262
-        }
263
-        return $state_id
264
-            ? EEM_State::instance()->get_one_by_ID($state_id)
265
-            : null;
266
-    }
243
+	/**
244
+	 * @param mixed $source The source instance.
245
+	 * @return EE_Base_Class|null
246
+	 * @throws EE_Error
247
+	 * @throws InvalidArgumentException
248
+	 * @throws InvalidDataTypeException
249
+	 * @throws InvalidInterfaceException
250
+	 * @throws ReflectionException
251
+	 */
252
+	public function resolveState($source): ?EE_Base_Class
253
+	{
254
+		switch (true) {
255
+			case $source instanceof EE_Attendee:
256
+			case $source instanceof EE_Venue:
257
+				$state_id = $source->state_ID();
258
+				break;
259
+			default:
260
+				$state_id = null;
261
+				break;
262
+		}
263
+		return $state_id
264
+			? EEM_State::instance()->get_one_by_ID($state_id)
265
+			: null;
266
+	}
267 267
 
268 268
 
269
-    /**
270
-     * @param mixed $source The source instance.
271
-     * @return EE_Base_Class|null
272
-     * @throws EE_Error
273
-     * @throws InvalidArgumentException
274
-     * @throws InvalidDataTypeException
275
-     * @throws InvalidInterfaceException
276
-     * @throws ReflectionException
277
-     */
278
-    public function resolveCountry($source): ?EE_Base_Class
279
-    {
280
-        switch (true) {
281
-            case $source instanceof EE_State:
282
-                $country_iso = $source->country_iso();
283
-                break;
284
-            case $source instanceof EE_Attendee:
285
-            case $source instanceof EE_Venue:
286
-                $country_iso = $source->country_ID();
287
-                break;
288
-            default:
289
-                $country_iso = null;
290
-                break;
291
-        }
269
+	/**
270
+	 * @param mixed $source The source instance.
271
+	 * @return EE_Base_Class|null
272
+	 * @throws EE_Error
273
+	 * @throws InvalidArgumentException
274
+	 * @throws InvalidDataTypeException
275
+	 * @throws InvalidInterfaceException
276
+	 * @throws ReflectionException
277
+	 */
278
+	public function resolveCountry($source): ?EE_Base_Class
279
+	{
280
+		switch (true) {
281
+			case $source instanceof EE_State:
282
+				$country_iso = $source->country_iso();
283
+				break;
284
+			case $source instanceof EE_Attendee:
285
+			case $source instanceof EE_Venue:
286
+				$country_iso = $source->country_ID();
287
+				break;
288
+			default:
289
+				$country_iso = null;
290
+				break;
291
+		}
292 292
 
293
-        return $country_iso
294
-            ? EEM_Country::instance()->get_one_by_ID($country_iso)
295
-            : null;
296
-    }
293
+		return $country_iso
294
+			? EEM_Country::instance()->get_one_by_ID($country_iso)
295
+			: null;
296
+	}
297 297
 }
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -80,22 +80,22 @@  discard block
 block discarded – undo
80 80
     public function resolve($source, array $args, AppContext $context, ResolveInfo $info)
81 81
     {
82 82
         $fieldName = $info->fieldName;
83
-        $field     = $this->fields[ $fieldName ] ?? null;
83
+        $field     = $this->fields[$fieldName] ?? null;
84 84
         // Field should exist in teh registered fields
85 85
         if ($field instanceof GraphQLField) {
86 86
             // check if the field should be resolved.
87
-            if (! $field->shouldResolve()) {
87
+            if ( ! $field->shouldResolve()) {
88 88
                 return null;
89 89
             }
90 90
             // Give priority to the internal resolver.
91 91
             if ($field->hasInternalResolver()) {
92 92
                 return $field->resolve($source, $args, $context, $info);
93 93
             }
94
-            if (! ($source instanceof EE_Base_Class)) {
94
+            if ( ! ($source instanceof EE_Base_Class)) {
95 95
                 return null;
96 96
             }
97 97
             // Check if the field has a key mapped to model.
98
-            if (! empty($field->key())) {
98
+            if ( ! empty($field->key())) {
99 99
                 $value = $source->{$field->key()}();
100 100
                 return $field->mayBeFormatValue($value, $source);
101 101
             }
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
      */
133 133
     public function resolveId($source): ?string
134 134
     {
135
-        if (! $source instanceof EE_Base_Class) {
135
+        if ( ! $source instanceof EE_Base_Class) {
136 136
             return null;
137 137
         }
138 138
         // If the model has a UUID method
Please login to merge, or discard this patch.
services/graphql/connection_resolvers/FormSectionConnectionResolver.php 2 patches
Indentation   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -14,127 +14,127 @@
 block discarded – undo
14 14
  */
15 15
 class FormSectionConnectionResolver extends AbstractConnectionResolver
16 16
 {
17
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
18
-    public function get_loader_name(): string
19
-    {
20
-        return 'espresso_formSection';
21
-    }
22
-
23
-    /**
24
-     * @return EEM_Form_Section
25
-     * @throws EE_Error
26
-     * @throws InvalidArgumentException
27
-     * @throws InvalidDataTypeException
28
-     * @throws InvalidInterfaceException
29
-     * @throws ReflectionException
30
-     */
31
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
32
-    public function get_query(): EEM_Form_Section
33
-    {
34
-        return EEM_Form_Section::instance();
35
-    }
36
-
37
-
38
-    /**
39
-     * Return an array of item IDs from the query
40
-     *
41
-     * @return array
42
-     */
43
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
44
-    public function get_ids(): array
45
-    {
46
-        $results = $this->query->get_col($this->query_args);
47
-        return ! empty($results) ? $results : [];
48
-    }
49
-
50
-
51
-    /**
52
-     * Here, we map the args from the input, then we make sure that we're only querying
53
-     * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
54
-     * handle batch resolution of the posts.
55
-     *
56
-     * @return array
57
-     * @throws InvalidArgumentException
58
-     * @throws InvalidDataTypeException
59
-     * @throws InvalidInterfaceException
60
-     */
61
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
62
-    public function get_query_args(): array
63
-    {
64
-        $where_params = [];
65
-        $query_args   = [];
66
-
67
-        $query_args['limit'] = $this->getLimit();
68
-
69
-        // Avoid multiple entries by join.
70
-        $query_args['group_by'] = 'FSC_UUID';
71
-
72
-        /**
73
-         * Collect the input fields and sanitize them to prepare them for sending to the Query
74
-         */
75
-        $input_fields = [];
76
-        if (! empty($this->args['where'])) {
77
-            $input_fields = $this->sanitizeInputFields($this->args['where']);
78
-
79
-            // Use the proper operator.
80
-            if (! empty($input_fields['FSC_appliesTo']) && is_array($input_fields['FSC_appliesTo'])) {
81
-                $input_fields['FSC_appliesTo'] = ['IN', $input_fields['FSC_appliesTo']];
82
-            }
83
-            if (! empty($input_fields['FSC_belongsTo']) && is_array($input_fields['FSC_belongsTo'])) {
84
-                $input_fields['FSC_belongsTo'] = ['IN', $input_fields['FSC_belongsTo']];
85
-            }
86
-            if (! empty($input_fields['FSC_status']) && is_array($input_fields['FSC_status'])) {
87
-                $input_fields['FSC_status'] = ['IN', $input_fields['FSC_status']];
88
-            }
89
-        }
90
-
91
-        /**
92
-         * Merge the input_fields with the default query_args
93
-         */
94
-        if (! empty($input_fields)) {
95
-            $where_params = array_merge($where_params, $input_fields);
96
-        }
97
-
98
-        $where_params = apply_filters(
99
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__form_section_where_params',
100
-            $where_params,
101
-            $this->source,
102
-            $this->args
103
-        );
104
-
105
-        if (! empty($where_params)) {
106
-            $query_args[] = $where_params;
107
-        }
108
-
109
-
110
-        /**
111
-         * Return the $query_args
112
-         */
113
-        return apply_filters(
114
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__form_section_query_args',
115
-            $query_args,
116
-            $this->source,
117
-            $this->args
118
-        );
119
-    }
120
-
121
-
122
-    /**
123
-     * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
124
-     * friendly keys.
125
-     *
126
-     * @param array $where_args
127
-     * @return array
128
-     */
129
-    public function sanitizeInputFields(array $where_args): array
130
-    {
131
-        return $this->sanitizeWhereArgsForInputFields(
132
-            $where_args,
133
-            [
134
-                'appliesTo' => 'FSC_appliesTo',
135
-                'belongsTo' => 'FSC_belongsTo',
136
-                'status'    => 'FSC_status',
137
-            ]
138
-        );
139
-    }
17
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
18
+	public function get_loader_name(): string
19
+	{
20
+		return 'espresso_formSection';
21
+	}
22
+
23
+	/**
24
+	 * @return EEM_Form_Section
25
+	 * @throws EE_Error
26
+	 * @throws InvalidArgumentException
27
+	 * @throws InvalidDataTypeException
28
+	 * @throws InvalidInterfaceException
29
+	 * @throws ReflectionException
30
+	 */
31
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
32
+	public function get_query(): EEM_Form_Section
33
+	{
34
+		return EEM_Form_Section::instance();
35
+	}
36
+
37
+
38
+	/**
39
+	 * Return an array of item IDs from the query
40
+	 *
41
+	 * @return array
42
+	 */
43
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
44
+	public function get_ids(): array
45
+	{
46
+		$results = $this->query->get_col($this->query_args);
47
+		return ! empty($results) ? $results : [];
48
+	}
49
+
50
+
51
+	/**
52
+	 * Here, we map the args from the input, then we make sure that we're only querying
53
+	 * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
54
+	 * handle batch resolution of the posts.
55
+	 *
56
+	 * @return array
57
+	 * @throws InvalidArgumentException
58
+	 * @throws InvalidDataTypeException
59
+	 * @throws InvalidInterfaceException
60
+	 */
61
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
62
+	public function get_query_args(): array
63
+	{
64
+		$where_params = [];
65
+		$query_args   = [];
66
+
67
+		$query_args['limit'] = $this->getLimit();
68
+
69
+		// Avoid multiple entries by join.
70
+		$query_args['group_by'] = 'FSC_UUID';
71
+
72
+		/**
73
+		 * Collect the input fields and sanitize them to prepare them for sending to the Query
74
+		 */
75
+		$input_fields = [];
76
+		if (! empty($this->args['where'])) {
77
+			$input_fields = $this->sanitizeInputFields($this->args['where']);
78
+
79
+			// Use the proper operator.
80
+			if (! empty($input_fields['FSC_appliesTo']) && is_array($input_fields['FSC_appliesTo'])) {
81
+				$input_fields['FSC_appliesTo'] = ['IN', $input_fields['FSC_appliesTo']];
82
+			}
83
+			if (! empty($input_fields['FSC_belongsTo']) && is_array($input_fields['FSC_belongsTo'])) {
84
+				$input_fields['FSC_belongsTo'] = ['IN', $input_fields['FSC_belongsTo']];
85
+			}
86
+			if (! empty($input_fields['FSC_status']) && is_array($input_fields['FSC_status'])) {
87
+				$input_fields['FSC_status'] = ['IN', $input_fields['FSC_status']];
88
+			}
89
+		}
90
+
91
+		/**
92
+		 * Merge the input_fields with the default query_args
93
+		 */
94
+		if (! empty($input_fields)) {
95
+			$where_params = array_merge($where_params, $input_fields);
96
+		}
97
+
98
+		$where_params = apply_filters(
99
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__form_section_where_params',
100
+			$where_params,
101
+			$this->source,
102
+			$this->args
103
+		);
104
+
105
+		if (! empty($where_params)) {
106
+			$query_args[] = $where_params;
107
+		}
108
+
109
+
110
+		/**
111
+		 * Return the $query_args
112
+		 */
113
+		return apply_filters(
114
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__form_section_query_args',
115
+			$query_args,
116
+			$this->source,
117
+			$this->args
118
+		);
119
+	}
120
+
121
+
122
+	/**
123
+	 * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
124
+	 * friendly keys.
125
+	 *
126
+	 * @param array $where_args
127
+	 * @return array
128
+	 */
129
+	public function sanitizeInputFields(array $where_args): array
130
+	{
131
+		return $this->sanitizeWhereArgsForInputFields(
132
+			$where_args,
133
+			[
134
+				'appliesTo' => 'FSC_appliesTo',
135
+				'belongsTo' => 'FSC_belongsTo',
136
+				'status'    => 'FSC_status',
137
+			]
138
+		);
139
+	}
140 140
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -73,17 +73,17 @@  discard block
 block discarded – undo
73 73
          * Collect the input fields and sanitize them to prepare them for sending to the Query
74 74
          */
75 75
         $input_fields = [];
76
-        if (! empty($this->args['where'])) {
76
+        if ( ! empty($this->args['where'])) {
77 77
             $input_fields = $this->sanitizeInputFields($this->args['where']);
78 78
 
79 79
             // Use the proper operator.
80
-            if (! empty($input_fields['FSC_appliesTo']) && is_array($input_fields['FSC_appliesTo'])) {
80
+            if ( ! empty($input_fields['FSC_appliesTo']) && is_array($input_fields['FSC_appliesTo'])) {
81 81
                 $input_fields['FSC_appliesTo'] = ['IN', $input_fields['FSC_appliesTo']];
82 82
             }
83
-            if (! empty($input_fields['FSC_belongsTo']) && is_array($input_fields['FSC_belongsTo'])) {
83
+            if ( ! empty($input_fields['FSC_belongsTo']) && is_array($input_fields['FSC_belongsTo'])) {
84 84
                 $input_fields['FSC_belongsTo'] = ['IN', $input_fields['FSC_belongsTo']];
85 85
             }
86
-            if (! empty($input_fields['FSC_status']) && is_array($input_fields['FSC_status'])) {
86
+            if ( ! empty($input_fields['FSC_status']) && is_array($input_fields['FSC_status'])) {
87 87
                 $input_fields['FSC_status'] = ['IN', $input_fields['FSC_status']];
88 88
             }
89 89
         }
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
         /**
92 92
          * Merge the input_fields with the default query_args
93 93
          */
94
-        if (! empty($input_fields)) {
94
+        if ( ! empty($input_fields)) {
95 95
             $where_params = array_merge($where_params, $input_fields);
96 96
         }
97 97
 
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
             $this->args
103 103
         );
104 104
 
105
-        if (! empty($where_params)) {
105
+        if ( ! empty($where_params)) {
106 106
             $query_args[] = $where_params;
107 107
         }
108 108
 
Please login to merge, or discard this patch.
domain/services/graphql/connection_resolvers/AttendeeConnectionResolver.php 1 patch
Indentation   +173 added lines, -173 removed lines patch added patch discarded remove patch
@@ -16,177 +16,177 @@
 block discarded – undo
16 16
  */
17 17
 class AttendeeConnectionResolver extends AbstractConnectionResolver
18 18
 {
19
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
20
-    public function get_loader_name(): string
21
-    {
22
-        return 'espresso_attendee';
23
-    }
24
-
25
-    /**
26
-     * @return EEM_Attendee
27
-     * @throws EE_Error
28
-     * @throws InvalidArgumentException
29
-     * @throws InvalidDataTypeException
30
-     * @throws InvalidInterfaceException
31
-     * @throws ReflectionException
32
-     */
33
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
34
-    public function get_query(): EEM_Attendee
35
-    {
36
-        return EEM_Attendee::instance();
37
-    }
38
-
39
-
40
-    /**
41
-     * Return an array of item IDs from the query
42
-     *
43
-     * @return array
44
-     */
45
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
46
-    public function get_ids(): array
47
-    {
48
-        $results = $this->query->get_col($this->query_args);
49
-
50
-        return ! empty($results) ? $results : [];
51
-    }
52
-
53
-
54
-    /**
55
-     * Here, we map the args from the input, then we make sure that we're only querying
56
-     * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
57
-     * handle batch resolution of the posts.
58
-     *
59
-     * @return array
60
-     * @throws InvalidArgumentException
61
-     * @throws InvalidDataTypeException
62
-     * @throws InvalidInterfaceException
63
-     */
64
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
65
-    public function get_query_args(): array
66
-    {
67
-        $where_params = [];
68
-        $query_args   = [];
69
-
70
-        $query_args['limit'] = $this->getLimit();
71
-
72
-        // Avoid multiple entries by join.
73
-        $query_args['group_by'] = 'ATT_ID';
74
-
75
-        $query_args['default_where_conditions'] = 'minimum';
76
-
77
-        /**
78
-         * Collect the input_fields and sanitize them to prepare them for sending to the Query
79
-         */
80
-        $input_fields = [];
81
-        if (! empty($this->args['where'])) {
82
-            $input_fields = $this->sanitizeInputFields($this->args['where']);
83
-
84
-            // Since we do not have any falsy values in query params
85
-            // Lets get rid of empty values
86
-            $input_fields = array_filter($input_fields);
87
-
88
-            // Use the proper operator.
89
-            if (! empty($input_fields['Registration.Event.EVT_ID']) && is_array($input_fields['Registration.Event.EVT_ID'])) {
90
-                $input_fields['Registration.Event.EVT_ID'] = ['IN', $input_fields['Registration.Event.EVT_ID']];
91
-            }
92
-            if (! empty($input_fields['Registration.Ticket.TKT_ID']) && is_array($input_fields['Registration.Ticket.TKT_ID'])) {
93
-                $input_fields['Registration.Ticket.TKT_ID'] = ['IN', $input_fields['Registration.Ticket.TKT_ID']];
94
-            }
95
-            // If Ticket param is passed, it will have preference over Datetime param
96
-            // So, use Datetime param only if a Ticket param is not passed
97
-            if (! empty($input_fields['Datetime.DTT_ID']) && empty($input_fields['Registration.Ticket.TKT_ID'])) {
98
-                $datetimeIds = $input_fields['Datetime.DTT_ID'];
99
-                // Make sure it's an array, ready for "IN" operator
100
-                $datetimeIds = is_array($datetimeIds) ? $datetimeIds : [$datetimeIds];
101
-
102
-                try {
103
-                    // Get related ticket IDs for the given dates
104
-                    $ticketIds = EEM_Ticket::instance()->get_col([
105
-                        [
106
-                            'Datetime.DTT_ID' => ['IN', $datetimeIds],
107
-                            'TKT_deleted'     => ['IN', [true, false]],
108
-                        ],
109
-                        'default_where_conditions' => 'minimum',
110
-                    ]);
111
-                } catch (Throwable $th) {
112
-                    $ticketIds = [];
113
-                }
114
-
115
-                if (!empty($ticketIds)) {
116
-                    $input_fields['Registration.Ticket.TKT_ID'] = ['IN', $ticketIds];
117
-                }
118
-            }
119
-            // Since there is no relation between Attendee and Datetime, we need to remove it
120
-            unset($input_fields['Datetime.DTT_ID']);
121
-        }
122
-
123
-        /**
124
-         * Merge the input_fields with the default query_args
125
-         */
126
-        if (! empty($input_fields)) {
127
-            $where_params = array_merge($where_params, $input_fields);
128
-        }
129
-
130
-        [$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'ATT_ID');
131
-
132
-        $search = $this->getSearchKeywords($this->args['where']);
133
-
134
-        if (! empty($search)) {
135
-            // use OR operator to search in any of the fields
136
-            $where_params['OR'] = array(
137
-                'ATT_full_name' => array('LIKE', '%' . $search . '%'),
138
-                'ATT_bio'       => array('LIKE', '%' . $search . '%'),
139
-                'ATT_short_bio' => array('LIKE', '%' . $search . '%'),
140
-            );
141
-        }
142
-
143
-        $where_params = apply_filters(
144
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__attendee_where_params',
145
-            $where_params,
146
-            $this->source,
147
-            $this->args
148
-        );
149
-
150
-        $query_args[] = $where_params;
151
-
152
-        /**
153
-         * Return the $query_args
154
-         */
155
-        return apply_filters(
156
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__attendee_query_args',
157
-            $query_args,
158
-            $this->source,
159
-            $this->args
160
-        );
161
-    }
162
-
163
-
164
-    /**
165
-     * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
166
-     * friendly keys.
167
-     *
168
-     * @param array $where_args
169
-     * @return array
170
-     */
171
-    public function sanitizeInputFields(array $where_args): array
172
-    {
173
-        $arg_mapping = [
174
-            // There is no direct relation between Attendee and Datetime
175
-            // But we will handle it via Tickets related to given dates
176
-            'datetime'      => 'Datetime.DTT_ID',
177
-            'datetimeIn'    => 'Datetime.DTT_ID',
178
-            'event'         => 'Registration.Event.EVT_ID',
179
-            'eventIn'       => 'Registration.Event.EVT_ID',
180
-            'regTicket'     => 'Registration.Ticket.TKT_ID',
181
-            'regTicketIn'   => 'Registration.Ticket.TKT_ID',
182
-            'regTicketIdIn' => 'Registration.Ticket.TKT_ID',
183
-            'regTicketId'   => 'Registration.Ticket.TKT_ID', // priority.
184
-            'regStatus'     => 'Registration.Status.STS_ID',
185
-        ];
186
-        return $this->sanitizeWhereArgsForInputFields(
187
-            $where_args,
188
-            $arg_mapping,
189
-            ['datetime', 'datetimeIn', 'event', 'eventIn', 'regTicket', 'regTicketIn']
190
-        );
191
-    }
19
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
20
+	public function get_loader_name(): string
21
+	{
22
+		return 'espresso_attendee';
23
+	}
24
+
25
+	/**
26
+	 * @return EEM_Attendee
27
+	 * @throws EE_Error
28
+	 * @throws InvalidArgumentException
29
+	 * @throws InvalidDataTypeException
30
+	 * @throws InvalidInterfaceException
31
+	 * @throws ReflectionException
32
+	 */
33
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
34
+	public function get_query(): EEM_Attendee
35
+	{
36
+		return EEM_Attendee::instance();
37
+	}
38
+
39
+
40
+	/**
41
+	 * Return an array of item IDs from the query
42
+	 *
43
+	 * @return array
44
+	 */
45
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
46
+	public function get_ids(): array
47
+	{
48
+		$results = $this->query->get_col($this->query_args);
49
+
50
+		return ! empty($results) ? $results : [];
51
+	}
52
+
53
+
54
+	/**
55
+	 * Here, we map the args from the input, then we make sure that we're only querying
56
+	 * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
57
+	 * handle batch resolution of the posts.
58
+	 *
59
+	 * @return array
60
+	 * @throws InvalidArgumentException
61
+	 * @throws InvalidDataTypeException
62
+	 * @throws InvalidInterfaceException
63
+	 */
64
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
65
+	public function get_query_args(): array
66
+	{
67
+		$where_params = [];
68
+		$query_args   = [];
69
+
70
+		$query_args['limit'] = $this->getLimit();
71
+
72
+		// Avoid multiple entries by join.
73
+		$query_args['group_by'] = 'ATT_ID';
74
+
75
+		$query_args['default_where_conditions'] = 'minimum';
76
+
77
+		/**
78
+		 * Collect the input_fields and sanitize them to prepare them for sending to the Query
79
+		 */
80
+		$input_fields = [];
81
+		if (! empty($this->args['where'])) {
82
+			$input_fields = $this->sanitizeInputFields($this->args['where']);
83
+
84
+			// Since we do not have any falsy values in query params
85
+			// Lets get rid of empty values
86
+			$input_fields = array_filter($input_fields);
87
+
88
+			// Use the proper operator.
89
+			if (! empty($input_fields['Registration.Event.EVT_ID']) && is_array($input_fields['Registration.Event.EVT_ID'])) {
90
+				$input_fields['Registration.Event.EVT_ID'] = ['IN', $input_fields['Registration.Event.EVT_ID']];
91
+			}
92
+			if (! empty($input_fields['Registration.Ticket.TKT_ID']) && is_array($input_fields['Registration.Ticket.TKT_ID'])) {
93
+				$input_fields['Registration.Ticket.TKT_ID'] = ['IN', $input_fields['Registration.Ticket.TKT_ID']];
94
+			}
95
+			// If Ticket param is passed, it will have preference over Datetime param
96
+			// So, use Datetime param only if a Ticket param is not passed
97
+			if (! empty($input_fields['Datetime.DTT_ID']) && empty($input_fields['Registration.Ticket.TKT_ID'])) {
98
+				$datetimeIds = $input_fields['Datetime.DTT_ID'];
99
+				// Make sure it's an array, ready for "IN" operator
100
+				$datetimeIds = is_array($datetimeIds) ? $datetimeIds : [$datetimeIds];
101
+
102
+				try {
103
+					// Get related ticket IDs for the given dates
104
+					$ticketIds = EEM_Ticket::instance()->get_col([
105
+						[
106
+							'Datetime.DTT_ID' => ['IN', $datetimeIds],
107
+							'TKT_deleted'     => ['IN', [true, false]],
108
+						],
109
+						'default_where_conditions' => 'minimum',
110
+					]);
111
+				} catch (Throwable $th) {
112
+					$ticketIds = [];
113
+				}
114
+
115
+				if (!empty($ticketIds)) {
116
+					$input_fields['Registration.Ticket.TKT_ID'] = ['IN', $ticketIds];
117
+				}
118
+			}
119
+			// Since there is no relation between Attendee and Datetime, we need to remove it
120
+			unset($input_fields['Datetime.DTT_ID']);
121
+		}
122
+
123
+		/**
124
+		 * Merge the input_fields with the default query_args
125
+		 */
126
+		if (! empty($input_fields)) {
127
+			$where_params = array_merge($where_params, $input_fields);
128
+		}
129
+
130
+		[$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'ATT_ID');
131
+
132
+		$search = $this->getSearchKeywords($this->args['where']);
133
+
134
+		if (! empty($search)) {
135
+			// use OR operator to search in any of the fields
136
+			$where_params['OR'] = array(
137
+				'ATT_full_name' => array('LIKE', '%' . $search . '%'),
138
+				'ATT_bio'       => array('LIKE', '%' . $search . '%'),
139
+				'ATT_short_bio' => array('LIKE', '%' . $search . '%'),
140
+			);
141
+		}
142
+
143
+		$where_params = apply_filters(
144
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__attendee_where_params',
145
+			$where_params,
146
+			$this->source,
147
+			$this->args
148
+		);
149
+
150
+		$query_args[] = $where_params;
151
+
152
+		/**
153
+		 * Return the $query_args
154
+		 */
155
+		return apply_filters(
156
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__attendee_query_args',
157
+			$query_args,
158
+			$this->source,
159
+			$this->args
160
+		);
161
+	}
162
+
163
+
164
+	/**
165
+	 * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
166
+	 * friendly keys.
167
+	 *
168
+	 * @param array $where_args
169
+	 * @return array
170
+	 */
171
+	public function sanitizeInputFields(array $where_args): array
172
+	{
173
+		$arg_mapping = [
174
+			// There is no direct relation between Attendee and Datetime
175
+			// But we will handle it via Tickets related to given dates
176
+			'datetime'      => 'Datetime.DTT_ID',
177
+			'datetimeIn'    => 'Datetime.DTT_ID',
178
+			'event'         => 'Registration.Event.EVT_ID',
179
+			'eventIn'       => 'Registration.Event.EVT_ID',
180
+			'regTicket'     => 'Registration.Ticket.TKT_ID',
181
+			'regTicketIn'   => 'Registration.Ticket.TKT_ID',
182
+			'regTicketIdIn' => 'Registration.Ticket.TKT_ID',
183
+			'regTicketId'   => 'Registration.Ticket.TKT_ID', // priority.
184
+			'regStatus'     => 'Registration.Status.STS_ID',
185
+		];
186
+		return $this->sanitizeWhereArgsForInputFields(
187
+			$where_args,
188
+			$arg_mapping,
189
+			['datetime', 'datetimeIn', 'event', 'eventIn', 'regTicket', 'regTicketIn']
190
+		);
191
+	}
192 192
 }
Please login to merge, or discard this patch.
domain/services/graphql/connection_resolvers/PriceConnectionResolver.php 1 patch
Indentation   +215 added lines, -215 removed lines patch added patch discarded remove patch
@@ -17,219 +17,219 @@
 block discarded – undo
17 17
  */
18 18
 class PriceConnectionResolver extends AbstractConnectionResolver
19 19
 {
20
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
21
-    public function get_loader_name(): string
22
-    {
23
-        return 'espresso_price';
24
-    }
25
-
26
-    /**
27
-     * @return EEM_Price
28
-     * @throws EE_Error
29
-     * @throws InvalidArgumentException
30
-     * @throws InvalidDataTypeException
31
-     * @throws InvalidInterfaceException
32
-     * @throws ReflectionException
33
-     */
34
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
35
-    public function get_query(): EEM_Price
36
-    {
37
-        return EEM_Price::instance();
38
-    }
39
-
40
-
41
-    /**
42
-     * Return an array of item IDs from the query
43
-     *
44
-     * @return array
45
-     */
46
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
47
-    public function get_ids(): array
48
-    {
49
-        $results = $this->query->get_col($this->query_args);
50
-
51
-        return ! empty($results) ? $results : [];
52
-    }
53
-
54
-
55
-    /**
56
-     * Here, we map the args from the input, then we make sure that we're only querying
57
-     * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
58
-     * handle batch resolution of the posts.
59
-     *
60
-     * @return array
61
-     * @throws EE_Error
62
-     * @throws InvalidArgumentException
63
-     * @throws ReflectionException
64
-     * @throws InvalidDataTypeException
65
-     * @throws InvalidInterfaceException
66
-     */
67
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
68
-    public function get_query_args(): array
69
-    {
70
-        $where_params = [];
71
-        $query_args   = [];
72
-
73
-        $query_args['limit'] = $this->getLimit();
74
-
75
-        // Avoid multiple entries by join.
76
-        $query_args['group_by'] = 'PRC_ID';
77
-
78
-        $query_args['default_where_conditions'] = 'minimum';
79
-
80
-        /**
81
-         * Collect the input_fields and sanitize them to prepare them for sending to the Query
82
-         */
83
-        $input_fields = [];
84
-        if (! empty($this->args['where'])) {
85
-            $input_fields = $this->sanitizeInputFields($this->args['where']);
86
-
87
-            // Use the proper operator.
88
-            if (! empty($input_fields['PRC_ID']) && is_array($input_fields['PRC_ID'])) {
89
-                $input_fields['PRC_ID'] = ['in', $input_fields['PRC_ID']];
90
-            }
91
-            if (! empty($input_fields['Ticket.TKT_ID']) && is_array($input_fields['Ticket.TKT_ID'])) {
92
-                $input_fields['Ticket.TKT_ID'] = ['in', $input_fields['Ticket.TKT_ID']];
93
-            }
94
-            if (! empty($input_fields['Price_Type.PBT_ID']) && is_array($input_fields['Price_Type.PBT_ID'])) {
95
-                $input_fields['Price_Type.PBT_ID'] = ['in', $input_fields['Price_Type.PBT_ID']];
96
-            }
97
-            if (! empty($input_fields['Price_Type.PRT_ID']) && is_array($input_fields['Price_Type.PRT_ID'])) {
98
-                $input_fields['Price_Type.PRT_ID'] = ['in', $input_fields['Price_Type.PRT_ID']];
99
-            }
100
-            // if event ID is passed but not a ticket ID
101
-            if (! isset($input_fields['Ticket.TKT_ID']) && isset($input_fields['Event.EVT_ID'])) {
102
-                $event_id = $input_fields['Event.EVT_ID'];
103
-                // Ensure that this doesn't go to the query.
104
-                // After all there is no DB relation between event and price
105
-                unset($input_fields['Event.EVT_ID']);
106
-                // get all the datetimeIds of the event
107
-                $event_datetime_ids = EEM_Datetime::instance()->get_col([
108
-                    [
109
-                        'EVT_ID'      => $event_id,
110
-                    ],
111
-                    'default_where_conditions' => 'minimum'
112
-                ]);
113
-                // get all the related ticket Ids
114
-                $ticket_ids = EEM_Ticket::instance()->get_col([
115
-                    [
116
-                        'Datetime.DTT_ID' => ['IN', $event_datetime_ids],
117
-                    ],
118
-                    'default_where_conditions' => 'minimum'
119
-                ]);
120
-
121
-                // add tickets relation to the query
122
-                $input_fields['Ticket.TKT_ID'] = ['IN', $ticket_ids];
123
-            }
124
-        }
125
-
126
-        /**
127
-         * Determine where we're at in the Graph and adjust the query context appropriately.
128
-         */
129
-        if ($this->source instanceof EE_Ticket) {
130
-            $where_params['Ticket.TKT_ID'] = $this->source->ID();
131
-        }
132
-
133
-        /**
134
-         * Merge the input_fields with the default query_args
135
-         */
136
-        if (! empty($input_fields)) {
137
-            $where_params = array_merge($where_params, $input_fields);
138
-        }
139
-
140
-        [$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'PRC_ID');
141
-
142
-        $default_prices_params = [];
143
-
144
-        // If default ticket prices should be included.
145
-        if (! empty($this->args['where']['includeDefaultTicketsPrices'])) {
146
-            $default_ticket_ids = EEM_Ticket::instance()->get_col([
147
-                [
148
-                    'TKT_is_default' => 1,
149
-                ],
150
-                'default_where_conditions' => 'minimum'
151
-            ]);
152
-
153
-            // if we have default tickets
154
-            if (! empty($default_ticket_ids)) {
155
-                $default_prices_params['OR'] = [
156
-                    'Ticket.TKT_ID' => ['IN', $default_ticket_ids],
157
-                ];
158
-            }
159
-        }
160
-
161
-        // If default prices should be included.
162
-        if (! empty($this->args['where']['includeDefaultPrices'])) {
163
-            $default_prices_params['AND'] = [
164
-                'PRC_deleted'    => 0,
165
-                'PRC_is_default' => 1,
166
-            ];
167
-        }
168
-
169
-        if (! empty($default_prices_params)) {
170
-            if (empty($where_params)) {
171
-                $where_params['OR'] = $default_prices_params;
172
-            } else {
173
-                $where_params = [
174
-                    'OR' => [
175
-                        'OR'  => $default_prices_params,
176
-                        'AND' => $where_params,
177
-                    ],
178
-                ];
179
-            }
180
-        }
181
-
182
-        $where_params = apply_filters(
183
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__price_where_params',
184
-            $where_params,
185
-            $this->source,
186
-            $this->args
187
-        );
188
-
189
-        $query_args[] = $where_params;
190
-
191
-        /**
192
-         * Return the $query_args
193
-         */
194
-        return apply_filters(
195
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__price_query_args',
196
-            $query_args,
197
-            $this->source,
198
-            $this->args
199
-        );
200
-    }
201
-
202
-
203
-    /**
204
-     * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
205
-     * friendly keys.
206
-     *
207
-     * @param array $where_args
208
-     * @return array
209
-     */
210
-    public function sanitizeInputFields(array $where_args): array
211
-    {
212
-        $arg_mapping = [
213
-            'in'              => 'PRC_ID',
214
-            'idIn'            => 'PRC_ID',
215
-            'isDefault'       => 'PRC_is_default',
216
-            'event'           => 'Event.EVT_ID',
217
-            'eventId'         => 'Event.EVT_ID', // priority.
218
-            'ticket'          => 'Ticket.TKT_ID',
219
-            'ticketIn'        => 'Ticket.TKT_ID',
220
-            'ticketIdIn'      => 'Ticket.TKT_ID',
221
-            'ticketId'        => 'Ticket.TKT_ID', // priority.
222
-            'priceType'       => 'Price_Type.PRT_ID',
223
-            'priceTypeIn'     => 'Price_Type.PRT_ID',
224
-            'priceTypeIdIn'   => 'Price_Type.PRT_ID',
225
-            'priceTypeId'     => 'Price_Type.PRT_ID', // priority.
226
-            'priceBaseType'   => 'Price_Type.PBT_ID',
227
-            'priceBaseTypeIn' => 'Price_Type.PBT_ID',
228
-        ];
229
-        return $this->sanitizeWhereArgsForInputFields(
230
-            $where_args,
231
-            $arg_mapping,
232
-            ['in', 'event', 'ticket', 'ticketIn', 'priceType', 'priceTypeIn']
233
-        );
234
-    }
20
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
21
+	public function get_loader_name(): string
22
+	{
23
+		return 'espresso_price';
24
+	}
25
+
26
+	/**
27
+	 * @return EEM_Price
28
+	 * @throws EE_Error
29
+	 * @throws InvalidArgumentException
30
+	 * @throws InvalidDataTypeException
31
+	 * @throws InvalidInterfaceException
32
+	 * @throws ReflectionException
33
+	 */
34
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
35
+	public function get_query(): EEM_Price
36
+	{
37
+		return EEM_Price::instance();
38
+	}
39
+
40
+
41
+	/**
42
+	 * Return an array of item IDs from the query
43
+	 *
44
+	 * @return array
45
+	 */
46
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
47
+	public function get_ids(): array
48
+	{
49
+		$results = $this->query->get_col($this->query_args);
50
+
51
+		return ! empty($results) ? $results : [];
52
+	}
53
+
54
+
55
+	/**
56
+	 * Here, we map the args from the input, then we make sure that we're only querying
57
+	 * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
58
+	 * handle batch resolution of the posts.
59
+	 *
60
+	 * @return array
61
+	 * @throws EE_Error
62
+	 * @throws InvalidArgumentException
63
+	 * @throws ReflectionException
64
+	 * @throws InvalidDataTypeException
65
+	 * @throws InvalidInterfaceException
66
+	 */
67
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
68
+	public function get_query_args(): array
69
+	{
70
+		$where_params = [];
71
+		$query_args   = [];
72
+
73
+		$query_args['limit'] = $this->getLimit();
74
+
75
+		// Avoid multiple entries by join.
76
+		$query_args['group_by'] = 'PRC_ID';
77
+
78
+		$query_args['default_where_conditions'] = 'minimum';
79
+
80
+		/**
81
+		 * Collect the input_fields and sanitize them to prepare them for sending to the Query
82
+		 */
83
+		$input_fields = [];
84
+		if (! empty($this->args['where'])) {
85
+			$input_fields = $this->sanitizeInputFields($this->args['where']);
86
+
87
+			// Use the proper operator.
88
+			if (! empty($input_fields['PRC_ID']) && is_array($input_fields['PRC_ID'])) {
89
+				$input_fields['PRC_ID'] = ['in', $input_fields['PRC_ID']];
90
+			}
91
+			if (! empty($input_fields['Ticket.TKT_ID']) && is_array($input_fields['Ticket.TKT_ID'])) {
92
+				$input_fields['Ticket.TKT_ID'] = ['in', $input_fields['Ticket.TKT_ID']];
93
+			}
94
+			if (! empty($input_fields['Price_Type.PBT_ID']) && is_array($input_fields['Price_Type.PBT_ID'])) {
95
+				$input_fields['Price_Type.PBT_ID'] = ['in', $input_fields['Price_Type.PBT_ID']];
96
+			}
97
+			if (! empty($input_fields['Price_Type.PRT_ID']) && is_array($input_fields['Price_Type.PRT_ID'])) {
98
+				$input_fields['Price_Type.PRT_ID'] = ['in', $input_fields['Price_Type.PRT_ID']];
99
+			}
100
+			// if event ID is passed but not a ticket ID
101
+			if (! isset($input_fields['Ticket.TKT_ID']) && isset($input_fields['Event.EVT_ID'])) {
102
+				$event_id = $input_fields['Event.EVT_ID'];
103
+				// Ensure that this doesn't go to the query.
104
+				// After all there is no DB relation between event and price
105
+				unset($input_fields['Event.EVT_ID']);
106
+				// get all the datetimeIds of the event
107
+				$event_datetime_ids = EEM_Datetime::instance()->get_col([
108
+					[
109
+						'EVT_ID'      => $event_id,
110
+					],
111
+					'default_where_conditions' => 'minimum'
112
+				]);
113
+				// get all the related ticket Ids
114
+				$ticket_ids = EEM_Ticket::instance()->get_col([
115
+					[
116
+						'Datetime.DTT_ID' => ['IN', $event_datetime_ids],
117
+					],
118
+					'default_where_conditions' => 'minimum'
119
+				]);
120
+
121
+				// add tickets relation to the query
122
+				$input_fields['Ticket.TKT_ID'] = ['IN', $ticket_ids];
123
+			}
124
+		}
125
+
126
+		/**
127
+		 * Determine where we're at in the Graph and adjust the query context appropriately.
128
+		 */
129
+		if ($this->source instanceof EE_Ticket) {
130
+			$where_params['Ticket.TKT_ID'] = $this->source->ID();
131
+		}
132
+
133
+		/**
134
+		 * Merge the input_fields with the default query_args
135
+		 */
136
+		if (! empty($input_fields)) {
137
+			$where_params = array_merge($where_params, $input_fields);
138
+		}
139
+
140
+		[$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'PRC_ID');
141
+
142
+		$default_prices_params = [];
143
+
144
+		// If default ticket prices should be included.
145
+		if (! empty($this->args['where']['includeDefaultTicketsPrices'])) {
146
+			$default_ticket_ids = EEM_Ticket::instance()->get_col([
147
+				[
148
+					'TKT_is_default' => 1,
149
+				],
150
+				'default_where_conditions' => 'minimum'
151
+			]);
152
+
153
+			// if we have default tickets
154
+			if (! empty($default_ticket_ids)) {
155
+				$default_prices_params['OR'] = [
156
+					'Ticket.TKT_ID' => ['IN', $default_ticket_ids],
157
+				];
158
+			}
159
+		}
160
+
161
+		// If default prices should be included.
162
+		if (! empty($this->args['where']['includeDefaultPrices'])) {
163
+			$default_prices_params['AND'] = [
164
+				'PRC_deleted'    => 0,
165
+				'PRC_is_default' => 1,
166
+			];
167
+		}
168
+
169
+		if (! empty($default_prices_params)) {
170
+			if (empty($where_params)) {
171
+				$where_params['OR'] = $default_prices_params;
172
+			} else {
173
+				$where_params = [
174
+					'OR' => [
175
+						'OR'  => $default_prices_params,
176
+						'AND' => $where_params,
177
+					],
178
+				];
179
+			}
180
+		}
181
+
182
+		$where_params = apply_filters(
183
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__price_where_params',
184
+			$where_params,
185
+			$this->source,
186
+			$this->args
187
+		);
188
+
189
+		$query_args[] = $where_params;
190
+
191
+		/**
192
+		 * Return the $query_args
193
+		 */
194
+		return apply_filters(
195
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__price_query_args',
196
+			$query_args,
197
+			$this->source,
198
+			$this->args
199
+		);
200
+	}
201
+
202
+
203
+	/**
204
+	 * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
205
+	 * friendly keys.
206
+	 *
207
+	 * @param array $where_args
208
+	 * @return array
209
+	 */
210
+	public function sanitizeInputFields(array $where_args): array
211
+	{
212
+		$arg_mapping = [
213
+			'in'              => 'PRC_ID',
214
+			'idIn'            => 'PRC_ID',
215
+			'isDefault'       => 'PRC_is_default',
216
+			'event'           => 'Event.EVT_ID',
217
+			'eventId'         => 'Event.EVT_ID', // priority.
218
+			'ticket'          => 'Ticket.TKT_ID',
219
+			'ticketIn'        => 'Ticket.TKT_ID',
220
+			'ticketIdIn'      => 'Ticket.TKT_ID',
221
+			'ticketId'        => 'Ticket.TKT_ID', // priority.
222
+			'priceType'       => 'Price_Type.PRT_ID',
223
+			'priceTypeIn'     => 'Price_Type.PRT_ID',
224
+			'priceTypeIdIn'   => 'Price_Type.PRT_ID',
225
+			'priceTypeId'     => 'Price_Type.PRT_ID', // priority.
226
+			'priceBaseType'   => 'Price_Type.PBT_ID',
227
+			'priceBaseTypeIn' => 'Price_Type.PBT_ID',
228
+		];
229
+		return $this->sanitizeWhereArgsForInputFields(
230
+			$where_args,
231
+			$arg_mapping,
232
+			['in', 'event', 'ticket', 'ticketIn', 'priceType', 'priceTypeIn']
233
+		);
234
+	}
235 235
 }
Please login to merge, or discard this patch.
domain/services/graphql/connection_resolvers/TicketConnectionResolver.php 1 patch
Indentation   +174 added lines, -174 removed lines patch added patch discarded remove patch
@@ -15,178 +15,178 @@
 block discarded – undo
15 15
  */
16 16
 class TicketConnectionResolver extends AbstractConnectionResolver
17 17
 {
18
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
19
-    public function get_loader_name(): string
20
-    {
21
-        return 'espresso_ticket';
22
-    }
23
-
24
-    /**
25
-     * @return EEM_Ticket
26
-     * @throws EE_Error
27
-     * @throws InvalidArgumentException
28
-     * @throws InvalidDataTypeException
29
-     * @throws InvalidInterfaceException
30
-     * @throws ReflectionException
31
-     */
32
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
33
-    public function get_query(): EEM_Ticket
34
-    {
35
-        return EEM_Ticket::instance();
36
-    }
37
-
38
-
39
-    /**
40
-     * Return an array of item IDs from the query
41
-     *
42
-     * @return array
43
-     */
44
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
45
-    public function get_ids(): array
46
-    {
47
-        $results = $this->query->get_col($this->query_args);
48
-
49
-        return ! empty($results) ? $results : [];
50
-    }
51
-
52
-
53
-    /**
54
-     * Here, we map the args from the input, then we make sure that we're only querying
55
-     * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
56
-     * handle batch resolution of the posts.
57
-     *
58
-     * @return array
59
-     * @throws EE_Error
60
-     * @throws InvalidArgumentException
61
-     * @throws ReflectionException
62
-     * @throws InvalidDataTypeException
63
-     * @throws InvalidInterfaceException
64
-     */
65
-    // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
66
-    public function get_query_args(): array
67
-    {
68
-        $where_params = ['TKT_deleted' => ['IN', [true, false]]];
69
-        $query_args   = [];
70
-
71
-        $query_args['limit'] = $this->getLimit();
72
-
73
-        // Avoid multiple entries by join.
74
-        $query_args['group_by'] = 'TKT_ID';
75
-
76
-        $query_args['default_where_conditions'] = 'minimum';
77
-
78
-        /**
79
-         * Collect the input_fields and sanitize them to prepare them for sending to the Query
80
-         */
81
-        $input_fields = [];
82
-        if (! empty($this->args['where'])) {
83
-            $input_fields = $this->sanitizeInputFields($this->args['where']);
84
-
85
-            // Use the proper operator.
86
-            if (! empty($input_fields['Datetime.DTT_ID']) && is_array($input_fields['Datetime.DTT_ID'])) {
87
-                $input_fields['Datetime.DTT_ID'] = ['IN', $input_fields['Datetime.DTT_ID']];
88
-            }
89
-            if (! empty($input_fields['Datetime.EVT_ID']) && is_array($input_fields['Datetime.EVT_ID'])) {
90
-                $input_fields['Datetime.EVT_ID'] = ['IN', $input_fields['Datetime.EVT_ID']];
91
-            }
92
-        }
93
-
94
-        /**
95
-         * Determine where we're at in the Graph and adjust the query context appropriately.
96
-         */
97
-        if ($this->source instanceof EE_Datetime) {
98
-            $where_params['Datetime.DTT_ID'] = $this->source->ID();
99
-        }
100
-
101
-        /**
102
-         * Merge the input_fields with the default query_args
103
-         */
104
-        if (! empty($input_fields)) {
105
-            $where_params = array_merge($where_params, $input_fields);
106
-        }
107
-
108
-        [$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'TKT_ID');
109
-
110
-        $search = isset($this->args['where']) ? $this->getSearchKeywords($this->args['where']) : '';
111
-
112
-        if (! empty($search)) {
113
-            // use OR operator to search in any of the fields
114
-            $where_params['OR'] = array(
115
-                'TKT_name'        => array('LIKE', '%' . $search . '%'),
116
-                'TKT_description' => array('LIKE', '%' . $search . '%'),
117
-            );
118
-        }
119
-
120
-        // If default tickets should be included.
121
-        if (! empty($this->args['where']['includeDefaultTickets'])) {
122
-            /**
123
-             * We need to get each ticket that
124
-             * - satisfies $where_params above
125
-             * OR
126
-             * - it's a default ticket
127
-             */
128
-            $where_params = [
129
-                'OR' => [
130
-                    // use extra OR instead of AND to avoid it getting overridden
131
-                    'OR' => [
132
-                        'AND' => [
133
-                            'TKT_deleted'    => ['IN', [true, false]],
134
-                            'TKT_is_default' => 1,
135
-                        ]
136
-                    ],
137
-                    'AND' => $where_params,
138
-                ],
139
-            ];
140
-        }
141
-
142
-        $where_params = apply_filters(
143
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__ticket_where_params',
144
-            $where_params,
145
-            $this->source,
146
-            $this->args
147
-        );
148
-
149
-        $query_args[] = $where_params;
150
-
151
-        /**
152
-         * Return the $query_args
153
-         */
154
-        return apply_filters(
155
-            'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__ticket_query_args',
156
-            $query_args,
157
-            $this->source,
158
-            $this->args
159
-        );
160
-    }
161
-
162
-
163
-    /**
164
-     * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
165
-     * friendly keys.
166
-     *
167
-     * @param array $where_args
168
-     * @return array
169
-     */
170
-    public function sanitizeInputFields(array $where_args): array
171
-    {
172
-        $arg_mapping = [
173
-            'event'        => 'Datetime.EVT_ID',
174
-            'eventIn'      => 'Datetime.EVT_ID',
175
-            'eventIdIn'    => 'Datetime.EVT_ID',
176
-            'eventId'      => 'Datetime.EVT_ID', // priority.
177
-            'datetime'     => 'Datetime.DTT_ID',
178
-            'datetimeIn'   => 'Datetime.DTT_ID',
179
-            'datetimeIdIn' => 'Datetime.DTT_ID',
180
-            'datetimeId'   => 'Datetime.DTT_ID', // priority.
181
-            'isDefault'    => 'TKT_is_default',
182
-            'isRequired'   => 'TKT_required',
183
-            'isTaxable'    => 'TKT_taxable',
184
-            'isTrashed'    => 'TKT_deleted',
185
-        ];
186
-        return $this->sanitizeWhereArgsForInputFields(
187
-            $where_args,
188
-            $arg_mapping,
189
-            ['datetime', 'datetimeIn', 'event', 'eventIn']
190
-        );
191
-    }
18
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
19
+	public function get_loader_name(): string
20
+	{
21
+		return 'espresso_ticket';
22
+	}
23
+
24
+	/**
25
+	 * @return EEM_Ticket
26
+	 * @throws EE_Error
27
+	 * @throws InvalidArgumentException
28
+	 * @throws InvalidDataTypeException
29
+	 * @throws InvalidInterfaceException
30
+	 * @throws ReflectionException
31
+	 */
32
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
33
+	public function get_query(): EEM_Ticket
34
+	{
35
+		return EEM_Ticket::instance();
36
+	}
37
+
38
+
39
+	/**
40
+	 * Return an array of item IDs from the query
41
+	 *
42
+	 * @return array
43
+	 */
44
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
45
+	public function get_ids(): array
46
+	{
47
+		$results = $this->query->get_col($this->query_args);
48
+
49
+		return ! empty($results) ? $results : [];
50
+	}
51
+
52
+
53
+	/**
54
+	 * Here, we map the args from the input, then we make sure that we're only querying
55
+	 * for IDs. The IDs are then passed down the resolve tree, and deferred resolvers
56
+	 * handle batch resolution of the posts.
57
+	 *
58
+	 * @return array
59
+	 * @throws EE_Error
60
+	 * @throws InvalidArgumentException
61
+	 * @throws ReflectionException
62
+	 * @throws InvalidDataTypeException
63
+	 * @throws InvalidInterfaceException
64
+	 */
65
+	// phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps
66
+	public function get_query_args(): array
67
+	{
68
+		$where_params = ['TKT_deleted' => ['IN', [true, false]]];
69
+		$query_args   = [];
70
+
71
+		$query_args['limit'] = $this->getLimit();
72
+
73
+		// Avoid multiple entries by join.
74
+		$query_args['group_by'] = 'TKT_ID';
75
+
76
+		$query_args['default_where_conditions'] = 'minimum';
77
+
78
+		/**
79
+		 * Collect the input_fields and sanitize them to prepare them for sending to the Query
80
+		 */
81
+		$input_fields = [];
82
+		if (! empty($this->args['where'])) {
83
+			$input_fields = $this->sanitizeInputFields($this->args['where']);
84
+
85
+			// Use the proper operator.
86
+			if (! empty($input_fields['Datetime.DTT_ID']) && is_array($input_fields['Datetime.DTT_ID'])) {
87
+				$input_fields['Datetime.DTT_ID'] = ['IN', $input_fields['Datetime.DTT_ID']];
88
+			}
89
+			if (! empty($input_fields['Datetime.EVT_ID']) && is_array($input_fields['Datetime.EVT_ID'])) {
90
+				$input_fields['Datetime.EVT_ID'] = ['IN', $input_fields['Datetime.EVT_ID']];
91
+			}
92
+		}
93
+
94
+		/**
95
+		 * Determine where we're at in the Graph and adjust the query context appropriately.
96
+		 */
97
+		if ($this->source instanceof EE_Datetime) {
98
+			$where_params['Datetime.DTT_ID'] = $this->source->ID();
99
+		}
100
+
101
+		/**
102
+		 * Merge the input_fields with the default query_args
103
+		 */
104
+		if (! empty($input_fields)) {
105
+			$where_params = array_merge($where_params, $input_fields);
106
+		}
107
+
108
+		[$query_args, $where_params] = $this->mapOrderbyInputArgs($query_args, $where_params, 'TKT_ID');
109
+
110
+		$search = isset($this->args['where']) ? $this->getSearchKeywords($this->args['where']) : '';
111
+
112
+		if (! empty($search)) {
113
+			// use OR operator to search in any of the fields
114
+			$where_params['OR'] = array(
115
+				'TKT_name'        => array('LIKE', '%' . $search . '%'),
116
+				'TKT_description' => array('LIKE', '%' . $search . '%'),
117
+			);
118
+		}
119
+
120
+		// If default tickets should be included.
121
+		if (! empty($this->args['where']['includeDefaultTickets'])) {
122
+			/**
123
+			 * We need to get each ticket that
124
+			 * - satisfies $where_params above
125
+			 * OR
126
+			 * - it's a default ticket
127
+			 */
128
+			$where_params = [
129
+				'OR' => [
130
+					// use extra OR instead of AND to avoid it getting overridden
131
+					'OR' => [
132
+						'AND' => [
133
+							'TKT_deleted'    => ['IN', [true, false]],
134
+							'TKT_is_default' => 1,
135
+						]
136
+					],
137
+					'AND' => $where_params,
138
+				],
139
+			];
140
+		}
141
+
142
+		$where_params = apply_filters(
143
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__ticket_where_params',
144
+			$where_params,
145
+			$this->source,
146
+			$this->args
147
+		);
148
+
149
+		$query_args[] = $where_params;
150
+
151
+		/**
152
+		 * Return the $query_args
153
+		 */
154
+		return apply_filters(
155
+			'FHEE__EventEspresso_core_domain_services_graphql_connection_resolvers__ticket_query_args',
156
+			$query_args,
157
+			$this->source,
158
+			$this->args
159
+		);
160
+	}
161
+
162
+
163
+	/**
164
+	 * This sets up the "allowed" args, and translates the GraphQL-friendly keys to model
165
+	 * friendly keys.
166
+	 *
167
+	 * @param array $where_args
168
+	 * @return array
169
+	 */
170
+	public function sanitizeInputFields(array $where_args): array
171
+	{
172
+		$arg_mapping = [
173
+			'event'        => 'Datetime.EVT_ID',
174
+			'eventIn'      => 'Datetime.EVT_ID',
175
+			'eventIdIn'    => 'Datetime.EVT_ID',
176
+			'eventId'      => 'Datetime.EVT_ID', // priority.
177
+			'datetime'     => 'Datetime.DTT_ID',
178
+			'datetimeIn'   => 'Datetime.DTT_ID',
179
+			'datetimeIdIn' => 'Datetime.DTT_ID',
180
+			'datetimeId'   => 'Datetime.DTT_ID', // priority.
181
+			'isDefault'    => 'TKT_is_default',
182
+			'isRequired'   => 'TKT_required',
183
+			'isTaxable'    => 'TKT_taxable',
184
+			'isTrashed'    => 'TKT_deleted',
185
+		];
186
+		return $this->sanitizeWhereArgsForInputFields(
187
+			$where_args,
188
+			$arg_mapping,
189
+			['datetime', 'datetimeIn', 'event', 'eventIn']
190
+		);
191
+	}
192 192
 }
Please login to merge, or discard this patch.