-
Notifications
You must be signed in to change notification settings - Fork 0
/
processFollow.php
74 lines (56 loc) · 2.69 KB
/
processFollow.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
74
<?php include 'session_login.php';?>
<?php
$followed = $_POST['followed'];
$follower = $_POST['follower'];
$query = "SELECT follow.date_since FROM webprojectdatabase.follow WHERE follow.followed = :followed AND follow.follower = :follower";
$values = array(':followed'=>$followed, ':follower'=>$follower);
try {
$res = $pdo->prepare($query);
$res->execute($values);
}catch (PDOException $e){
throw new Exception('Database query error');
}
if($res->rowCount() > 0) {
$query = "DELETE FROM webprojectdatabase.notification WHERE notification.event_type = 'follow' AND notification.cause_id = :follower AND notification.user_id = :followed";
$values = array(':followed'=>$followed, ':follower'=>$follower);
$pdo->beginTransaction();
try {
$res = $pdo->prepare($query);
$res->execute($values);
}catch (PDOException $e){
throw new Exception('Database query error');
}
$query = "DELETE FROM webprojectdatabase.follow WHERE follow.followed = :followed AND follow.follower = :follower";
$values = array(':followed'=>$followed, ':follower'=>$follower);
try {
$res = $pdo->prepare($query);
$res->execute($values);
}catch (PDOException $e){
throw new Exception('Database query error');
}
$pdo->commit();
echo '<button id="followButton" class="relation-button" onclick="processFollow()" >Follow</button>';
die();
} else {
$query = "INSERT INTO webprojectdatabase.follow(follow.followed, follow.follower, follow.date_since) VALUES(:followed, :follower, :date_since)";
$values = array(':followed'=>$followed, ':follower'=>$follower, ':date_since'=>date("Y-m-d"));
$pdo->beginTransaction();
try {
$res = $pdo->prepare($query);
$res->execute($values);
$lastIdFollow = $pdo->lastInsertId();
}catch (PDOException $e){
throw new Exception('Database query error');
}
$query = "INSERT INTO webprojectdatabase.notification(notification.event_id, notification.event_type, notification.cause_id, notification.cause_type, notification.date, notification.user_id, notification.seen) VALUES(:event_id, :event_type, :cause_id, :cause_type, :date, :user_id, :seen)";
$values = array(':event_id'=>$lastIdFollow, ':event_type'=>'follow', ':cause_id'=>$follower, ':cause_type'=>'user', ':date'=>date("Y-m-d"), ':user_id'=>$followed, ':seen'=>0);
try {
$res = $pdo->prepare($query);
$res->execute($values);
}catch (PDOException $e){
throw new Exception('Database query error');
}
$pdo->commit();
echo '<button id="followButton" class="in-relation-button" onclick="processFollow()" >Following</button>';
die();
}