ql-events icon indicating copy to clipboard operation
ql-events copied to clipboard

Event query where condition not working

Open toriphes opened this issue 3 years ago • 0 comments

Hi, thank you for this great plugin.

I am using this plugin for a personal project and have found that event queries containing where condition are not working as expected.

For example this query should return no results because I have not created events starting after the year 4000 and instead returns all events from now.

query getAppointments() {
  events(where: {startDateQuery: {after: {year: 4000}}}) {
    nodes {
      title
      startDate
      endDate
    }
  }
}

I have seen that the problem is caused by these commented lines: https://github.com/the-events-calendar/ql-events/blob/master/includes/data/connection/class-event-connection-resolver.php#L46-L48

Is this a mistake?

As a workaround I wrote this code in my theme:

add_filter( 'graphql_' . Tribe__Events__Main::POSTTYPE . '_connection_query_args', function (
		$query_args,
		$source,
		$args
	) {
	$where = $args['where'];

	if ( ! isset( $query_args['meta_query'] ) ) {
		$query_args['meta_query'] = array(); // WPCS: slow query ok.
	}

	if ( ! empty( $where['startDateQuery'] ) ) {
		$query_args['meta_query'][] = WPGraphQL\QL_Events\Data\Connection\Event_Connection_Resolver::date_query_input_to_meta_query( $where['startDateQuery'],
			'_EventStartDate' );
	}

	if ( ! empty( $where['endDateQuery'] ) ) {
		$query_args['meta_query'][] = WPGraphQL\QL_Events\Data\Connection\Event_Connection_Resolver::date_query_input_to_meta_query( $where['endDateQuery'],
			'_EventEndDate' );
	}

	if ( ! empty( $where['venuesIn'] ) ) {
		$query_args['meta_query'][] = array(
			'key'     => '_EventVenueID',
			'value'   => $where['venuesIn'],
			'compare' => 'IN',
		);
	}

	if ( ! empty( $where['venuesNotIn'] ) ) {

		$query_args['meta_query'][] = array(
			'key'     => '_EventVenueID',
			'value'   => $where['venuesNotIn'],
			'compare' => 'NOT IN',
		);
	}

	return $query_args;
}, 11, 3 );

toriphes avatar Mar 10 '21 16:03 toriphes