-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathajax.ko.php
50 lines (41 loc) · 1.77 KB
/
ajax.ko.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
<?php
header( "Content-Type: application/json" );
require_once("config/config.inc");
if ( isset( $_POST["song"] )
&& isset( $_SESSION['online'] ) ) {
$db = $_SESSION['db'];
$id_user = $_SESSION["user"]->getId();
$id_song = $_POST["song"];
$known = $_POST['known'] === 'true' ? true : false;
$owned = $_POST['owned'] === 'true' ? true : false;
if ( Know::userKnowsSong( $id_user, $id_song ) ):
if ( $known && $owned ):
$stmt = $db->prepare( "update know set owned = 1 where user = :user and song = :song;" );
elseif ( $known && !$owned ):
$stmt = $db->prepare( "update know set owned = 0 where user = :user and song = :song;" );
else:
$stmt = $db->prepare( "delete from know where user = :user and song = :song;" );
$stmt2 = $db->prepare( "delete from rate where user = :user and song = :song;" );
$stmt2->execute( array(
"user" => $id_user,
"song" => $id_song
) );
$stmt2->closeCursor();
endif;
else:
if ( $owned ) :
$stmt = $db->prepare( "insert into know values (:user, :song, 1, unix_timestamp());" );
else:
$stmt = $db->prepare( "insert into know values (:user, :song, 0, unix_timestamp());" );
endif;
endif;
$stmt->execute( array(
"user" => $id_user,
"song" => $id_song
) );
$stmt->closeCursor();
print json_encode( array( "status" => "OK", "stackTrace" => "alright", "known" => $_POST['known'], "owned" => $_POST['owned'] ) );
} elseif ( !isset( $_POST['song'] ) )
print json_encode( array( "status" => "ERROR", "stackTrace" => "song missing", "known" => $_POST['known'], "owned" => $_POST['owned'] ) );
elseif ( !isset( $_SESSION['online'] ) )
print json_encode( array( "status" => "ERROR", "stackTrace" => "user not connected", "known" => $_POST['known'], "owned" => $_POST['owned'] ) );