/** * Common method to handle DELETE method * * @param string $r_resource_cmd URL * @param array $r_resource_vars Array generated from URL * @param array $r_resource_filters Array generated from URL query string * * @return mixed */ function r_delete($r_resource_cmd, $r_resource_vars, $r_resource_filters) { global $r_debug, $db_lnk, $authUser, $_server_domain_url; $sql = false; $pg_params = array(); $response = array(); switch ($r_resource_cmd) { case '/users/?': // delete users $qry_val_arr = array($r_resource_vars['users']); $s_result = pg_query_params($db_lnk, 'SELECT username FROM users WHERE id = $1', $qry_val_arr); $username = pg_fetch_assoc($s_result); $foreign_id['user_id'] = $r_resource_vars['users']; $comment = '##USER_NAME## deleted "' . $username['username'] . '"'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_user', $foreign_id); $sql = 'DELETE FROM users WHERE id= $1'; array_push($pg_params, $r_resource_vars['users']); break; case '/organizations/?/organizations_users/?': // delete organization user $qry_val_arr = array($r_resource_vars['organizations_users']); $s_result = pg_query_params($db_lnk, 'SELECT username, organization_id, name, full_name FROM organizations_users_listing WHERE id = $1', $qry_val_arr); $previous_value = pg_fetch_assoc($s_result); $foreign_ids['organization_id'] = $previous_value['organization_id']; $comment = '##USER_NAME## removed member "' . $previous_value['full_name'] . '" from organization'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_organization_user', $foreign_ids, '', $r_resource_vars['organizations_users']); $sql = 'DELETE FROM organizations_users WHERE id= $1'; array_push($pg_params, $r_resource_vars['organizations_users']); $conditions = array($previous_value['organization_id'], $r_resource_vars['organizations_users']); pg_query_params($db_lnk, 'DELETE FROM boards_users WHERE board_id IN (SELECT id FROM boards WHERE organization_id = $1) AND user_id = $2', $conditions); break; case '/boards/?/boards_users/?': // delete board user $qry_val_arr = array($r_resource_vars['boards_users']); $s_result = pg_query_params($db_lnk, 'SELECT username, full_name, board_id, user_id, board_name FROM boards_users_listing WHERE id = $1', $qry_val_arr); $previous_value = pg_fetch_assoc($s_result); $foreign_ids['board_id'] = $previous_value['board_id']; $comment = '##USER_NAME## removed member "' . $previous_value['username'] . '" from board'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_board_user', $foreign_ids, '', $r_resource_vars['boards_users']); $sql = 'DELETE FROM boards_users WHERE id= $1'; $conditions = array($previous_value['board_id']); $cards = pg_query_params($db_lnk, 'SELECT id FROM cards WHERE board_id = $1', $conditions); while ($row = pg_fetch_assoc($cards)) { $conditions = array($row['id'], $previous_value['user_id']); pg_query_params($db_lnk, 'DELETE FROM cards_users WHERE card_id = $1 AND user_id = $2', $conditions); } array_push($pg_params, $r_resource_vars['boards_users']); break; case '/boards/?/lists/?': // delete lists $qry_val_arr = array($r_resource_vars['lists']); $s_result = pg_query_params($db_lnk, 'SELECT name, board_id, position FROM lists WHERE id = $1', $qry_val_arr); $previous_value = pg_fetch_assoc($s_result); $foreign_id['board_id'] = $r_resource_vars['boards']; $foreign_id['list_id'] = $r_resource_vars['lists']; $comment = '##USER_NAME## deleted "' . $previous_value['name'] . '"'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_list', $foreign_id); $sql = 'DELETE FROM lists WHERE id= $1'; array_push($pg_params, $r_resource_vars['lists']); break; case '/boards/?/lists': // delete Archived lists $qry_val_arr = array($r_resource_vars['boards']); $sql = 'DELETE FROM lists WHERE board_id = $1 AND is_archived = true'; array_push($pg_params, $r_resource_vars['boards']); break; case '/boards/?/cards': // delete Archived cards $qry_val_arr = array($r_resource_vars['boards']); $sql = 'DELETE FROM cards WHERE board_id = $1 AND is_archived = true'; array_push($pg_params, $r_resource_vars['boards']); break; case '/organizations/?': // delete organization $qry_val_arr = array($r_resource_vars['organizations']); $foreign_id['organization_id'] = $r_resource_vars['organizations']; $comment = '##USER_NAME## deleted organization'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_organization', $foreign_id); $data = array(0, 2, $foreign_id['organization_id']); pg_query_params($db_lnk, 'UPDATE boards SET organization_id = $1, board_visibility = $2 WHERE organization_id = $3', $data); $conditions = array($foreign_id['organization_id']); $s_result = pg_query_params($db_lnk, 'SELECT user_id FROM organizations WHERE id = $1', $conditions); $organization = pg_fetch_assoc($s_result); $conditions = array($organization['user_id'], $foreign_id['organization_id']); pg_query_params($db_lnk, 'DELETE FROM organizations_users WHERE user_id = $1 AND organization_id = $2', $conditions); $sql = 'DELETE FROM organizations WHERE id= $1'; array_push($pg_params, $r_resource_vars['organizations']); break; case '/boards/?/labels/?': // delete Labels in Filter $sql = 'DELETE FROM cards_labels WHERE board_id = $1 AND label_id = $2'; array_push($pg_params, $r_resource_vars['boards'], $r_resource_vars['labels']); break; case '/boards/?/lists/?/cards/?': // delete card $qry_val_arr = array($r_resource_vars['cards']); $s_result = pg_query_params($db_lnk, 'SELECT name, board_id, position FROM cards WHERE id = $1', $qry_val_arr); $previous_value = pg_fetch_assoc($s_result); $foreign_id['board_id'] = $r_resource_vars['boards']; $foreign_id['list_id'] = $r_resource_vars['lists']; $foreign_id['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## deleted card ' . $previous_value['name']; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card', $foreign_id); $sql = 'DELETE FROM cards WHERE id = $1'; array_push($pg_params, $r_resource_vars['cards']); break; case '/boards/?/lists/?/cards/?/card_voters/?': // delete card voters $sql = 'DELETE FROM card_voters WHERE id = $1'; array_push($pg_params, $r_resource_vars['card_voters']); $qry_val_arr = array($r_resource_vars['cards']); $previous_value = executeQuery('SELECT name FROM cards WHERE id = $1', $qry_val_arr); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## unvoted this card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'unvote_card', $foreign_ids, null, $r_resource_vars['card_voters']); break; case '/boards/?/lists/?/cards/?/comments/?': // comment DELETE $qry_val_arr = array($r_resource_vars['comments']); $revisions = executeQuery('SELECT comment, revisions FROM activities WHERE id = $1 OR foreign_id = $1 ORDER BY id desc limit 1', $qry_val_arr); $comment = '##USER_NAME## deleted comment in card ##CARD_LINK##'; if (!empty($revisions['revisions'])) { $revision = unserialize($revisions['revisions']); $revisions_del['comment'] = $comment; $revisions_del['old_value'] = $revision['new_value']['comment']; $revisions_del['new_value'] = ''; $revisions_del = serialize($revisions_del); } else { $revisions_del['comment'] = $comment; $revisions_del['old_value'] = $revisions['comment']; $revisions_del['new_value'] = ''; $revisions_del = serialize($revisions_del); } $sql = 'DELETE FROM activities WHERE id = $1'; array_push($pg_params, $r_resource_vars['comments']); $qry_val_arr = array($r_resource_vars['cards']); $previous_value = executeQuery('SELECT name FROM cards WHERE id = $1', $qry_val_arr); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_comment', $foreign_ids, $revisions_del, $r_resource_vars['comments']); if (!empty($response['activity']['revisions']) && trim($response['activity']['revisions']) != '') { $revisions = unserialize($response['activity']['revisions']); } if (!empty($revisions) && $response['activity']['type'] != 'moved_card_checklist_item') { if (!empty($revisions['new_value'])) { foreach ($revisions['new_value'] as $key => $value) { if ($key != 'is_archived' && $key != 'is_deleted' && $key != 'created' && $key != 'modified' && $key != 'is_offline' && $key != 'uuid' && $key != 'to_date' && $key != 'temp_id' && $activity_type != 'moved_card_checklist_item' && $activity_type != 'add_card_desc' && $activity_type != 'add_card_duedate' && $activity_type != 'delete_card_duedate' && $activity_type != 'add_background' && $activity_type != 'change_background' && $activity_type != 'change_visibility') { $old_val = isset($revisions['old_value'][$key]) ? $revisions['old_value'][$key] : ''; $new_val = isset($revisions['new_value'][$key]) ? $revisions['new_value'][$key] : ''; $dif[] = nl2br(getRevisiondifference($old_val, $new_val)); } if ($activity_type == 'add_card_desc' || $activity_type == 'edit_card_duedate' || $activity_type == 'add_background' || $activity_type == 'change_background' || $activity_type == 'change_visibility') { $dif[] = $revisions['new_value'][$key]; } } } else { if (!empty($revisions['old_value']) && isset($response['activity']['type']) && $response['activity']['type'] == 'delete_card_comment') { $dif[] = nl2br(getRevisiondifference($revisions['old_value'], '')); } } } if (isset($dif)) { $response['activity']['difference'] = $dif; } break; case '/boards/?/lists/?/cards/?/attachments/?': //delete card attachment $sql = 'DELETE FROM card_attachments WHERE id = $1'; array_push($pg_params, $r_resource_vars['attachments']); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## deleted attachment from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_attachment', $foreign_ids, null, $r_resource_vars['attachments']); break; case '/boards/?/lists/?/cards/?/checklists/?': // delete checklist $qry_val_arr = array($r_resource_vars['checklists']); $s_result = pg_query_params($db_lnk, 'SELECT name FROM checklists WHERE id = $1', $qry_val_arr); $checklist = pg_fetch_assoc($s_result); pg_query_params($db_lnk, 'DELETE FROM checklist_items WHERE checklist_id = $1', $qry_val_arr); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## deleted checklist ' . $checklist['name'] . ' from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_checklist', $foreign_ids, null, $r_resource_vars['checklists']); $sql = 'DELETE FROM checklists WHERE id = $1'; array_push($pg_params, $r_resource_vars['checklists']); break; case '/boards/?/lists/?/cards/?/checklists/?/items/?': // delete items $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## deleted checklist ##CHECKLIST_NAME## item from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_checklist_item', $foreign_ids, null, $r_resource_vars['items']); $sql = 'DELETE FROM checklist_items WHERE id = $1'; array_push($pg_params, $r_resource_vars['items']); break; case '/boards/?/lists/?/cards/?/cards_users/?': // delete card_user $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = '##USER_NAME## deleted member from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_users', $foreign_ids, null, $r_resource_vars['cards_users']); $sql = 'DELETE FROM cards_users WHERE id = $1'; array_push($pg_params, $r_resource_vars['cards_users']); break; case '/oauth/clients/?': $sql = 'DELETE FROM oauth_clients WHERE id= $1'; array_push($pg_params, $r_resource_vars['clients']); break; case '/oauth/applications/?': $conditions = array($r_resource_vars['applications']); pg_query_params($db_lnk, 'DELETE FROM oauth_access_tokens WHERE client_id = $1', $conditions); pg_query_params($db_lnk, 'DELETE FROM oauth_refresh_tokens WHERE client_id = $1', $conditions); $sql = false; break; case '/webhooks/?': $sql = 'DELETE FROM webhooks WHERE id= $1'; array_push($pg_params, $r_resource_vars['webhooks']); break; default: header($_SERVER['SERVER_PROTOCOL'] . ' 501 Not Implemented', true, 501); break; } if (!empty($sql)) { $result = pg_query_params($db_lnk, $sql, $pg_params); $response['error'] = array('code' => !$result ? 1 : 0); } echo json_encode($response); }
/** * Copy Card * * @param array $card_fields Fields of the card * @param array $cards Card record array * @param integer $new_list_id List id of the new card * @param string $name Card name * @param integer $new_board_id Board id of the new card * * @return void */ function copyCards($card_fields, $cards, $new_list_id, $name, $new_board_id = '') { global $db_lnk, $authUser; while ($card = pg_fetch_object($cards)) { $card->list_id = $new_list_id; $card_id = $card->id; if ($card->due_date === null) { unset($card->due_date); } $card_result = pg_execute_insert('cards', $card); if ($card_result) { $card_result = pg_fetch_assoc($card_result); $new_card_id = $card_result['id']; $foreign_ids['card_id'] = $new_card_id; $foreign_ids['board_id'] = $new_board_id; $foreign_ids['list_id'] = $new_list_id; $comment = '##USER_NAME## added ' . $card_result['name'] . ' card to ' . $name . '.'; insertActivity($authUser['id'], $comment, 'add_card', $foreign_ids); //Copy card attachments $attachment_fields = 'list_id, card_id, name, path, mimetype'; if (!empty($new_board_id)) { $attachment_fields = 'board_id, list_id, card_id, name, path, mimetype'; } $qry_val_arr = array($card_id); $attachments = pg_query_params($db_lnk, 'SELECT id, ' . $attachment_fields . ' FROM card_attachments WHERE card_id = $1 ORDER BY id', $qry_val_arr); if ($attachments && pg_num_rows($attachments)) { while ($attachment = pg_fetch_object($attachments)) { $attachment->board_id = $new_board_id; $attachment->list_id = $new_list_id; $attachment->card_id = $new_card_id; $attachment_result = pg_execute_insert('card_attachments', $attachment); $attachment_result = pg_fetch_assoc($attachment_result); $comment = '##USER_NAME## added attachment to this card ##CARD_LINK##'; insertActivity($authUser['id'], $comment, 'add_card_attachment', $foreign_ids, null, $attachment_result['id']); } } //Copy card comments $comment_fields = 'list_id, card_id, board_id, user_id, type, comment, root, freshness_ts, depth, path, materialized_path'; $qry_val_arr = array($card_id, 'add_comment'); $comments = pg_query_params($db_lnk, 'SELECT id, ' . $comment_fields . ' FROM activities WHERE card_id = $1 AND type = $2 ORDER BY id', $qry_val_arr); if ($comments && pg_num_rows($comments)) { while ($comment = pg_fetch_object($comments)) { $comment->board_id = $new_board_id; $comment->list_id = $new_list_id; $comment->card_id = $new_card_id; $card_result = pg_execute_insert('activities', $comment); } } //Copy checklists $checklist_fields = 'card_id, user_id, name, checklist_item_count, checklist_item_completed_count, position'; $qry_val_arr = array($card_id); $checklists = pg_query_params($db_lnk, 'SELECT id, ' . $checklist_fields . ' FROM checklists WHERE card_id = $1 ORDER BY id', $qry_val_arr); if ($checklists && pg_num_rows($checklists)) { while ($checklist = pg_fetch_object($checklists)) { $checklist_id = $checklist->id; $checklist->card_id = $new_card_id; $checklist_result = pg_execute_insert('checklists', $checklist); if ($checklist_result) { $checklist_result = pg_fetch_assoc($checklist_result); $new_checklist_id = $checklist_result['id']; $comment = '##USER_NAME## added checklist to this card ##CARD_LINK##'; insertActivity($authUser['id'], $comment, 'add_card_checklist', $foreign_ids, '', $new_checklist_id); $copy_checklists[] = $checklist_result; //Copy checklist items $checklist_item_fields = 'card_id, checklist_id, user_id, name, position'; $qry_val_arr = array($checklist_id); $checklist_items = pg_query_params($db_lnk, 'SELECT id, ' . $checklist_item_fields . ' FROM checklist_items WHERE checklist_id = $1 ORDER BY id', $qry_val_arr); if ($checklist_items && pg_num_rows($checklist_items)) { while ($checklist_item = pg_fetch_object($checklist_items)) { $checklist_item->card_id = $new_card_id; $checklist_item->checklist_id = $new_checklist_id; $checklist_item_result = pg_execute_insert('checklist_items', $checklist_item); $checklist_item_result = pg_fetch_assoc($checklist_item_result); $copy_checklists_items[] = $checklist_item_result; $comment = '##USER_NAME## added checklist item to this card ##CARD_LINK##'; insertActivity($authUser['id'], $comment, 'add_checklist_item', $foreign_ids, '', $checklist_item_result['id']); } } } } } //Copy card labels $cards_label_fields = 'list_id, card_id, board_id, label_id'; if (!empty($new_board_id)) { $cards_label_fields = 'board_id, list_id, card_id, label_id'; } $qry_val_arr = array($card_id); $cards_labels = pg_query_params($db_lnk, 'SELECT id, ' . $cards_label_fields . ' FROM cards_labels WHERE card_id = $1 ORDER BY id', $qry_val_arr); if ($cards_labels && pg_num_rows($cards_labels)) { while ($cards_label = pg_fetch_object($cards_labels)) { if (!empty($new_board_id)) { $cards_label->board_id = $new_board_id; $cards_label->list_id = $new_list_id; $cards_label->card_id = $new_card_id; $cards_label_values = $new_board_id . ', ' . $new_list_id . ', ' . $new_card_id; } else { $cards_label_values = $new_list_id . ', ' . $new_card_id; } $cards_label_result = pg_execute_insert('cards_labels', $cards_label); $cards_label_result = pg_fetch_assoc($cards_label_result); $comment = '##USER_NAME## added label(s) to this card ##CARD_LINK## - ##LABEL_NAME##'; insertActivity($authUser['id'], $comment, 'add_card_label', $foreign_ids); } } //Copy card users $cards_user_fields = 'card_id, user_id'; $qry_val_arr = array($card_id); $cards_users = pg_query_params($db_lnk, 'SELECT id, ' . $cards_user_fields . ' FROM cards_users WHERE card_id = $1 ORDER BY id', $qry_val_arr); if ($cards_users && pg_num_rows($cards_users)) { while ($cards_user = pg_fetch_object($cards_users)) { $cards_user->card_id = $new_card_id; $cards_user_result = pg_execute_insert('cards_users', $cards_user); $cards_user_result = pg_fetch_assoc($cards_user_result); $qry_val_arr = array($cards_user->user_id); $_user = executeQuery('SELECT username FROM users WHERE id = $1', $qry_val_arr); $comment = '##USER_NAME## added ' . $_user['username'] . ' as member to this card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'add_card_user', $foreign_ids, '', $cards_user_result['id']); } } } } }
/** * Common method to handle DELETE method * * @param $r_resource_cmd * @param $r_resource_vars * @param $r_resource_filters * @return mixed */ function r_delete($r_resource_cmd, $r_resource_vars, $r_resource_filters) { global $r_debug, $db_lnk, $authUser, $_server_domain_url; $sql = false; $pg_params = array(); $response = array(); switch ($r_resource_cmd) { case '/organizations/?': //organizations delete $sql = 'DELETE FROM organizations WHERE id= $1'; array_push($pg_params, $r_resource_vars['organizations']); pg_query_params($db_lnk, 'UPDATE boards SET organization_id = $1, board_visibility = $2 WHERE organization_id= $3', array(0, 0, $r_resource_vars['organizations'])); break; case '/organizations_users/?': //organizations delete $sql = 'DELETE FROM organizations_users WHERE id= $1'; array_push($pg_params, $r_resource_vars['organizations_users']); break; case '/boards_users/?': //board user delete $s_result = pg_query_params($db_lnk, 'SELECT username, board_id, board_name FROM boards_users_listing WHERE id = $1', array($r_resource_vars['boards_users'])); $previous_value = pg_fetch_assoc($s_result); $foreign_ids['board_id'] = $previous_value['board_id']; $comment = $authUser['username'] . ' removed member "' . $previous_value['username'] . '" from board'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_board_user', $foreign_ids, '', $r_resource_vars['boards_users']); $sql = 'DELETE FROM boards_users WHERE id= $1'; array_push($pg_params, $r_resource_vars['boards_users']); break; case '/boards/?/lists/?': //lists delete $s_result = pg_query_params($db_lnk, 'SELECT name, board_id, position FROM lists WHERE id = $1', array($r_resource_vars['lists'])); $previous_value = pg_fetch_assoc($s_result); $foreign_id['board_id'] = $r_resource_vars['boards']; $foreign_id['list_id'] = $r_resource_vars['lists']; $comment = $authUser['username'] . ' deleted "' . $previous_value['name'] . '"'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_list', $foreign_id); $sql = 'DELETE FROM lists WHERE id= $1'; array_push($pg_params, $r_resource_vars['lists']); break; case '/boards/?/lists/?/cards/?/card_voters/?': $sql = 'DELETE FROM card_voters WHERE id = $1'; array_push($pg_params, $r_resource_vars['card_voters']); $previous_value = executeQuery('SELECT name FROM cards WHERE id = $1', array($r_resource_vars['cards'])); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' unvoted this card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'unvote_card', $foreign_ids, NULL, $r_resource_vars['card_voters']); break; case '/boards/?/lists/?/cards/?/comments/?': // comment DELETE $sql = 'DELETE FROM activities WHERE id = $1'; array_push($pg_params, $r_resource_vars['comments']); $previous_value = executeQuery('SELECT name FROM cards WHERE id = $1', array($r_resource_vars['cards'])); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted comment in card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_comment', $foreign_ids, NULL, $r_resource_vars['comments']); break; case '/boards/?/lists/?/cards/?': $s_result = pg_query_params($db_lnk, 'SELECT name, board_id, position FROM cards WHERE id = $1', array($r_resource_vars['cards'])); $previous_value = pg_fetch_assoc($s_result); $foreign_id['board_id'] = $r_resource_vars['boards']; $foreign_id['list_id'] = $r_resource_vars['lists']; $foreign_id['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted card ' . $previous_value['name']; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card', $foreign_id); $sql = 'DELETE FROM cards WHERE id = $1'; array_push($pg_params, $r_resource_vars['cards']); break; case '/boards/?/lists/?/cards/?/attachments/?': //card view $sql = 'DELETE FROM card_attachments WHERE id = $1'; array_push($pg_params, $r_resource_vars['attachments']); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted attachment from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_attachment', $foreign_ids, NULL, $r_resource_vars['attachments']); break; case '/boards/?/lists/?/cards/?/checklists/?': pg_query_params($db_lnk, 'DELETE FROM checklist_items WHERE checklist_id = $1', array($r_resource_vars['checklists'])); $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted checklist from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_checklist', $foreign_ids, NULL, $r_resource_vars['checklists']); $sql = 'DELETE FROM checklists WHERE id = $1'; array_push($pg_params, $r_resource_vars['checklists']); break; case '/boards/?/lists/?/cards/?/checklists/?/items/?': $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted checklist item from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_checklist_item', $foreign_ids, NULL, $r_resource_vars['items']); $sql = 'DELETE FROM checklist_items WHERE id = $1'; array_push($pg_params, $r_resource_vars['items']); break; case '/boards/?/lists/?/cards/?/cards_users/?': $foreign_ids['board_id'] = $r_resource_vars['boards']; $foreign_ids['list_id'] = $r_resource_vars['lists']; $foreign_ids['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted member from card ##CARD_LINK##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card_users', $foreign_ids, NULL, $r_resource_vars['cards_users']); $sql = 'DELETE FROM cards_users WHERE id = $1'; array_push($pg_params, $r_resource_vars['cards_users']); break; case '/users/?': //users delete $sql = 'DELETE FROM users WHERE id= $1'; array_push($pg_params, $r_resource_vars['users']); break; case '/boards/?/lists/?/cards/?': $foreign_id['board_id'] = $r_resource_vars['boards']; $foreign_id['list_id'] = $r_resource_vars['lists']; $foreign_id['card_id'] = $r_resource_vars['cards']; $comment = $authUser['username'] . ' deleted card ##CARD_NAME##'; $response['activity'] = insertActivity($authUser['id'], $comment, 'delete_card', $foreign_id); $sql = 'UPDATE cards SET is_deleted = true WHERE id= $1'; array_push($pg_params, $r_resource_vars['cards']); break; default: header($_SERVER['SERVER_PROTOCOL'] . ' 501 Not Implemented', true, 501); break; } if (!empty($sql)) { $result = pg_query_params($db_lnk, $sql, $pg_params); $response['error'] = array('code' => !$result ? 1 : 0); } echo json_encode($response); }