Code Duplication    Length = 64-64 lines in 2 locations

core/domain/services/graphql/mutators/DatetimeCreate.php 1 location

@@ 20-83 (lines=64) @@
17
use WPGraphQL\AppContext;
18
use GraphQL\Error\UserError;
19
20
class DatetimeCreate
21
{
22
23
    /**
24
     * Defines the mutation data modification closure.
25
     *
26
     * @param EEM_Datetime $model
27
     * @param Datetime     $type
28
     * @return callable
29
     */
30
    public static function mutateAndGetPayload(EEM_Datetime $model, Datetime $type)
31
    {
32
        /**
33
         * Creates an entity.
34
         *
35
         * @param array       $input   The input for the mutation
36
         * @param AppContext  $context The AppContext passed down to all resolvers
37
         * @param ResolveInfo $info    The ResolveInfo passed down to all resolvers
38
         * @return array
39
         * @throws UserError
40
         * @throws ReflectionException
41
         * @throws InvalidArgumentException
42
         * @throws InvalidInterfaceException
43
         * @throws InvalidDataTypeException
44
         * @throws EE_Error
45
         */
46
        return static function ($input, AppContext $context, ResolveInfo $info) use ($model, $type) {
47
48
            /**
49
             * Stop now if a user isn't allowed to create a datetime.
50
             */
51
            if (! current_user_can('ee_edit_events')) {
52
                // translators: the %1$s is the name of the object being mutated
53
                throw new UserError(
54
                    sprintf(__('Sorry, you are not allowed to create %1$s', 'event_espresso'), $type->name())
55
                );
56
            }
57
58
            $tickets = [];
59
60
            $args = DatetimeMutation::prepareFields($input);
61
62
            if (isset($args['tickets'])) {
63
                $tickets = $args['tickets'];
64
                unset($args['tickets']);
65
            }
66
67
            $entity = EE_Datetime::new_instance($args);
68
            $id = $entity->save();
69
70
            if (empty($id)) {
71
                throw new UserError(__('The object failed to create but no error was provided', 'event_espresso'));
72
            }
73
74
            if (! empty($tickets)) {
75
                DatetimeMutation::setRelatedTickets($entity, $tickets);
76
            }
77
78
            return [
79
                'id' => $id,
80
            ];
81
        };
82
    }
83
}
84

core/domain/services/graphql/mutators/TicketCreate.php 1 location

@@ 20-83 (lines=64) @@
17
use WPGraphQL\AppContext;
18
use GraphQL\Error\UserError;
19
20
class TicketCreate
21
{
22
23
    /**
24
     * Defines the mutation data modification closure.
25
     *
26
     * @param EEM_Ticket $model
27
     * @param Ticket     $type
28
     * @return callable
29
     */
30
    public static function mutateAndGetPayload(EEM_Ticket $model, Ticket $type)
31
    {
32
        /**
33
         * Creates an entity.
34
         *
35
         * @param array       $input   The input for the mutation
36
         * @param AppContext  $context The AppContext passed down to all resolvers
37
         * @param ResolveInfo $info    The ResolveInfo passed down to all resolvers
38
         * @return array
39
         * @throws UserError
40
         * @throws ReflectionException
41
         * @throws InvalidArgumentException
42
         * @throws InvalidInterfaceException
43
         * @throws InvalidDataTypeException
44
         * @throws EE_Error
45
         */
46
        return static function ($input, AppContext $context, ResolveInfo $info) use ($model, $type) {
47
48
            /**
49
             * Stop now if a user isn't allowed to create a datetime.
50
             */
51
            if (! current_user_can('ee_edit_events')) {
52
                // translators: the %1$s is the name of the object being mutated
53
                throw new UserError(
54
                    sprintf(__('Sorry, you are not allowed to create %1$s', 'event_espresso'), $type->name())
55
                );
56
            }
57
58
            $datetimes = [];
59
60
            $args = TicketMutation::prepareFields($input);
61
62
            if (isset($args['datetimes'])) {
63
                $datetimes = $args['datetimes'];
64
                unset($args['datetimes']);
65
            }
66
67
            $entity = EE_Ticket::new_instance($args);
68
            $id = $entity->save();
69
70
            if (empty($id)) {
71
                throw new UserError(__('The object failed to create but no error was provided', 'event_espresso'));
72
            }
73
74
            if (! empty($datetimes)) {
75
                TicketMutation::setRelatedDatetimes($entity, $datetimes);
76
            }
77
78
            return [
79
                'id' => $id,
80
            ];
81
        };
82
    }
83
}
84