-
Notifications
You must be signed in to change notification settings - Fork 0
/
post-remove-messages.php
73 lines (63 loc) · 1.82 KB
/
post-remove-messages.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
header('Content-Type: application/json');
function respond_with_failure() {
echo json_encode([
'success' => false
]);
exit();
}
// Get request body
$request_body_json = file_get_contents('php://input');
if ($request_body_json === false) {
respond_with_failure();
}
$request_body = json_decode($request_body_json, true);
if ($request_body === null) {
respond_with_failure();
}
// Get user ID
if (!array_key_exists('user_id', $request_body)) {
respond_with_failure();
}
$user_id = $request_body['user_id'];
// Get API key
if (!array_key_exists('api_key', $request_body)) {
respond_with_failure();
}
$api_key = $request_body['api_key'];
// Connect to database
if (file_exists($_SERVER['FILE_SQLITEDB'])) {
$db = new PDO('sqlite:' . $_SERVER['FILE_SQLITEDB']);
}
else {
respond_with_failure();
}
// Verify credentials
$select_user = $db->prepare('SELECT user_id FROM users WHERE user_id = :user_id AND api_key = :api_key');
$select_user->bindParam(':user_id', $user_id);
$select_user->bindParam(':api_key', $api_key);
$select_user->execute();
$select_user_result = $select_user->fetch(PDO::FETCH_ASSOC);
if (!$select_user_result) {
respond_with_failure();
}
// Remove messages
$messages = [];
$select_messages = $db->prepare('SELECT * FROM messages WHERE for = :for ORDER BY id ASC');
$select_messages->bindParam(':for', $user_id);
$select_messages->execute();
$select_messages_result = $select_messages->fetchAll(PDO::FETCH_ASSOC);
foreach ($select_messages_result as $result) {
$id = $result['id'];
$message = $result['message'];
array_push($messages, $message);
$delete_message = $db->prepare('DELETE FROM messages WHERE id = :id');
$delete_message->bindParam(':id', $id, PDO::PARAM_INT);
$delete_message->execute();
}
// Respond with messages
echo json_encode([
'success' => true,
'messages' => $messages
]);
?>