} else { mysqli_query($orderConnection, 'XA ROLLBACK ' . $transactionOrder . ';'); } } else { mysqli_query($userConnection, 'XA ROLLBACK ' . $transactionUser . ';'); } } else { // коммитим, изменений все равно нет. mysqli_query($orderConnection, 'XA COMMIT ' . $transactionOrder . ' ONE PHASE;'); } mysqli_query($userConnection, 'DO RELEASE_LOCK(\'' . $uuid . '-u\');'); mysqli_query($orderConnection, 'DO RELEASE_LOCK(\'' . $uuid . '-o\');'); return $result; } } return function (array $request) { $form = createDeleteForm(); formHandleRequest($form, $request); if (formIsValid($form)) { $vars = extractValues($form); $id = $vars['id']; $user = currentUser(); if (completeOrder($id, $user['id'])) { queueNotify('order_done', ['id' => (int) $id]); return createResponse(); } else { return createResponse('', 400); } } return createResponse('', 403); };
mysqli_query($userConnection, 'XA ROLLBACK ' . $transactionUser . ';'); } } else { mysqli_query($orderConnection, 'XA ROLLBACK ' . $transactionOrder . ';'); } } else { mysqli_query($userConnection, 'XA ROLLBACK ' . $transactionUser . ';'); } } else { // коммитим, изменений все равно нет. mysqli_query($orderConnection, 'XA COMMIT ' . $transactionOrder . ' ONE PHASE;'); } mysqli_query($userConnection, 'DO RELEASE_LOCK(\'' . $uuid . '-u\');'); mysqli_query($orderConnection, 'DO RELEASE_LOCK(\'' . $uuid . '-o\');'); return $result; } } return function (array $request) { $form = createDeleteForm(); formHandleRequest($form, $request); if (formIsValid($form)) { $vars = extractValues($form); $id = $vars['id']; $user = currentUser(); if (deleteOrder($id, $user['id'])) { queueNotify('order_delete', ['id' => (int) $id]); return createResponse(); } } return createResponse('', 403); };
return $result; } } return function (array $request) { $form = createCreateForm(); formHandleRequest($form, $request); $errors = []; $form['fields']['name']['value'] = trim(preg_replace('/(?|( )+|(\\n)+|(\\r\\n)+)/', '$1', $form['fields']['name']['value'])); $form['fields']['description']['value'] = trim(preg_replace('/(?|( )+|(\\n)+|(\\r\\n)+)/', '$1', $form['fields']['description']['value'])); if (formIsValid($form)) { $vars = extractValues($form); $name = htmlspecialchars($vars['name']); $description = htmlspecialchars($vars['description']); $userId = currentUser()['id']; $price = (int) ((double) $vars['price'] * 100); if ($id = createOrder($name, $description, $price, $userId)) { $user = currentUser(); queueNotify('order_top', ['id' => $id, 'title' => $name, 'description' => nl2br($description), 'price' => $price / 100, 'created_by' => ['id' => $user['id'], 'name' => $user['name']]]); return createResponse(json_encode(['id' => $id]), 200, ['content-type' => 'application/json']); } else { $errors = [['name' => 'price', 'errors' => ['Недостаточно средств на счете.']]]; } } else { foreach ($form['fields'] as $field) { if ($field['errors']) { $errors[] = ['name' => $field['name'], 'errors' => $field['errors']]; } } } return createResponse(json_encode($errors), 400, ['content-type' => 'application/json']); };