forked from aorti017/CS180-Project
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgetMessages.php
More file actions
106 lines (94 loc) · 3.35 KB
/
Copy pathgetMessages.php
File metadata and controls
106 lines (94 loc) · 3.35 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
session_start();
if(!isset($_COOKIE['username'])) {
header('Location: index.php');
}
setcookie('username', $_SESSION['username'], 0);
include './database.php';
$sender = $_GET['username'];
$receiver = $_GET['recpUser'];
$lastTimeStamp = $_GET['time'];
while(true){
if($lastTimeStamp == null){
$sqlStatement = "SELECT message, timestamp FROM Messages WHERE sender='".$sender."' AND receiver='".$receiver."'";
$resultsSent = executeStatement($sqlStatement);
$sqlStatement = "SELECT message, timestamp FROM Messages WHERE receiver='".$sender."' AND sender='".$receiver."'";
$resultsReceived = executeStatement($sqlStatement);
$sqlStatement = "SELECT MAX(timestamp) FROM Messages WHERE sender='".$sender."' AND receiver='".$receiver."' OR sender='".$receiver."' AND receiver='".$sender."'";
$tsr = executeStatement($sqlStatement);
$time = $tsr[0][0];
$oldMessagesSent = array();
$oldMessagesTimeS = array();
foreach($resultsSent as $row){
array_push($oldMessagesSent, $row["message"]);
array_push($oldMessagesTimeS, $row["timestamp"]);
}
$oldMessagesReceived = array();
$oldMessagesTimeR = array();
foreach($resultsReceived as $row){
array_push($oldMessagesReceived, $row["message"]);
array_push($oldMessagesTimeR, $row["timestamp"]);
}
$ret = array(
'messageSent'=>$oldMessagesSent,
'messageSentTime'=>$oldMessagesTimeS,
'messageReceived'=>$oldMessagesReceived,
'messageReceivedTime'=>$oldMessagesTimeR,
'timestamp'=>$time,
'sender'=>$sender,
'receiver'=>$receiver
);
$json = json_encode($ret);
echo $json;
break;
}
else{
//get the largest time from the db, if its greater than the last saved time
//then display all the messages from current saved time to largest time
//then update the saved time
$sqlStatement = "SELECT MAX(timestamp) FROM Messages WHERE sender='".$sender.
"' AND receiver='".$receiver."' OR sender='".$receiver."' AND receiver='".$sender."'";
$results = executeStatement($sqlStatement);
$newTimeStamp = $results[0][0];
if($newTimeStamp > $lastTimeStamp){
//get new message(s) and return
$sqlStatement = "SELECT message FROM Messages WHERE timestamp=".$newTimeStamp.
" AND (sender='".$sender."' AND receiver='".$receiver."')";
$results = executeStatement($sqlStatement);
$newMessagesSent = array();
foreach($results as $row){
array_push($newMessagesSent, $row["message"]);
}
$sqlStatement = "SELECT message FROM Messages WHERE timestamp=".$newTimeStamp.
" AND (sender='".$receiver."' AND receiver='".$sender."')";
$results = executeStatement($sqlStatement);
$newMessagesReceived = array();
foreach($results as $row){
array_push($newMessagesReceived, $row["message"]);
}
$ret = array(
'messageSent'=>$newMessagesSent,
'messageReceived'=>$newMessagesReceived,
'timestamp'=>$newTimeStamp,
'sender'=>$sender,
'receiver'=>$receiver
);
$json = json_encode($ret);
echo $json;
}
else{
$ret = array(
'messageSent'=>"",
'messageReceived'=>"",
'timestamp'=>$lastTimeStamp,
'sender'=>$sender,
'receiver'=>$receiver
);
$json = json_encode($ret);
echo $json;
sleep(1);
}
break;
}
}
?>