Code Duplication    Length = 15-15 lines in 7 locations

src/Api/OrderApi.php 6 locations

@@ 74-88 (lines=15) @@
71
     * @param array $params
72
     * @return string
73
     */
74
    public function pay(int $id, array $params) : string
75
    {
76
        $resolver = new OptionsResolver();
77
        $resolver
78
            ->setRequired([
79
                'redirect_url',
80
            ])
81
            ->setAllowedTypes('redirect_url', 'string');
82
83
        $params = $resolver->resolve($params);
84
85
        $response = $this->post('/orders/'.$id.'/pay', $params);
86
87
        return $this->getSingleResult($response, 'redirect_url');
88
    }
89
90
    /**
91
     * @param int   $id
@@ 95-109 (lines=15) @@
92
     * @param array $params
93
     * @return Order
94
     */
95
    public function annul(int $id, array $params) : Order
96
    {
97
        $resolver = new OptionsResolver();
98
        $resolver
99
            ->setRequired([
100
                'reason',
101
            ])
102
            ->setAllowedTypes('reason', 'string');
103
104
        $params = $resolver->resolve($params);
105
106
        $response = $this->post('/orders/'.$id.'/annul', $params);
107
108
        return $this->getResult($response, new OrderDataTransformer());
109
    }
110
111
    /**
112
     * @param int   $id
@@ 116-130 (lines=15) @@
113
     * @param array $params
114
     * @return Order
115
     */
116
    public function cancel(int $id, array $params): Order
117
    {
118
        $resolver = new OptionsResolver();
119
        $resolver
120
            ->setRequired([
121
                'reason',
122
            ])
123
            ->setAllowedTypes('reason', 'string');
124
125
        $params = $resolver->resolve($params);
126
127
        $response = $this->post('/orders/'.$id.'/cancel', $params);
128
129
        return $this->getResult($response, new OrderDataTransformer());
130
    }
131
132
    /**
133
     * @param int   $id
@@ 137-151 (lines=15) @@
134
     * @param array $params
135
     * @return Order
136
     */
137
    public function close(int $id, array $params) : Order
138
    {
139
        $resolver = new OptionsResolver();
140
        $resolver
141
            ->setRequired([
142
                'reason',
143
            ])
144
            ->setAllowedTypes('reason', 'string');
145
146
        $params = $resolver->resolve($params);
147
148
        $response = $this->post('/orders/'.$id.'/close', $params);
149
150
        return $this->getResult($response, new OrderDataTransformer());
151
    }
152
153
    /**
154
     * @param int   $id
@@ 158-172 (lines=15) @@
155
     * @param array $params
156
     * @return Order
157
     */
158
    public function escalate(int $id, array $params) : Order
159
    {
160
        $resolver = new OptionsResolver();
161
        $resolver
162
            ->setRequired([
163
                'reason',
164
            ])
165
            ->setAllowedTypes('reason', 'string');
166
167
        $params = $resolver->resolve($params);
168
169
        $response = $this->post('/orders/'.$id.'/escalate', $params);
170
171
        return $this->getResult($response, new OrderDataTransformer());
172
    }
173
174
    /**
175
     * @param int   $userId
@@ 180-194 (lines=15) @@
177
     * @param array $params
178
     * @return Order
179
     */
180
    public function bind(int $userId, int $orderId, array $params) : Order
181
    {
182
        $resolver = new OptionsResolver();
183
        $resolver
184
            ->setRequired([
185
                'supplier_payout_card_id',
186
            ])
187
            ->setAllowedTypes('supplier_payout_card_id', 'int');
188
189
        $params = $resolver->resolve($params);
190
191
        $response = $this->post('/users/'.$userId.'/orders/'.$orderId, $params);
192
193
        return $this->getResult($response, new OrderDataTransformer());
194
    }
195
}
196

src/Api/UserApi.php 1 location

@@ 119-133 (lines=15) @@
116
     * @param array $params
117
     * @return string
118
     */
119
    public function bind(int $id, array $params): string
120
    {
121
        $resolver = new OptionsResolver();
122
        $resolver
123
            ->setRequired([
124
                'redirect_url',
125
            ])
126
            ->setAllowedTypes('redirect_url', 'string');
127
128
        $params = $resolver->resolve($params);
129
130
        $response = $this->post('/users/'.$id.'/cards', $params);
131
132
        return $this->getSingleResult($response, 'redirect_url');
133
    }
134
135
    /**
136
     * @param int   $id