/
budget_categories.php
126 lines (111 loc) · 3.04 KB
/
budget_categories.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
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
require_once 'budgetdatabase_config.php';
include 'validate_credentials.php';
header('Content-Type: application/json');
$HTTPS_required = false;
$authentication_required = true;
$api_response_code = array(
0 => array('HTTP Response' => 400, 'Message' => 'Unknown Error'),
1 => array('HTTP Response' => 200, 'Message' => 'Success'),
2 => array('HTTP Response' => 403, 'Message' => 'HTTPS Required'),
3 => array('HTTP Response' => 401, 'Message' => 'Authentication Required'),
4 => array('HTTP Response' => 401, 'Message' => 'Authentication Failed'),
5 => array('HTTP Response' => 404, 'Message' => 'Invalid Request'),
6 => array('HTTP Response' => 400, 'Message' => 'Invalid Response Format')
);
if($HTTPS_required && $_SERVER['HTTPS'] != 'on')
{
sendresponse($response, 2, false, $api_response_code);
}
if($authentication_required == true)
{
$username ='';
$password = '';
$method = $_SERVER['REQUEST_METHOD'];
switch ($method)
{
case 'GET':
$username = $_GET['username'];
$password = $_GET['password'];
break;
case 'PUT':
break;
case 'POST':
$username = $_POST['username'];
$password = $_POST['password'];
break;
case 'DELETE':
break;
}
if (empty($username) || empty($password))
{
sendresponse($response, 3, false, $api_response_code);
}
$user_id = validatecredentials($username, $password);
if($user_id == false)
{
sendresponse($response, 4, false, $api_response_code);
}
else
{
switch ($method)
{
case 'GET':
$sql_select = "SELECT categories.* FROM categories ORDER BY id ASC";
$entries = get_categories($sql_select);
if($entries == false)
{
sendresponse($response, 5, false, $api_response_code);
}
else
$response['data'] = $entries;
break;
case 'PUT':
die("update table"); break;
case 'POST':
die("insert into table"); break;
case 'DELETE':
die("delete table where id=key"); break;
}
}
}
/* we passed - send the data back */
sendresponse($response, 1, true, $api_response_code);
function sendresponse($response, $code, $success, $api_response_code)
{
$response['code'] = $code;
$response['status'] = $api_response_code[$response['code']]['HTTP Response'];
$response['message'] = $api_response_code[$response['code']]['Message'];
$response['success'] = $success;
header('HTTP/1.1 '.$response['status']. ' '.$response['message']);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($response);
exit;
}
function get_categories($sql_select)
{
global $connect;
$results = mysqli_query($connect, $sql_select);
if(!$results)
{
//print("$dbPass, $dbUser, $dbDatabase, $dbServer, --- parm is $user_id\n");
//die('Could not retrieve data from entries with '.$user_id.'!\n');
return false;
}
if(mysqli_num_rows($results) == 0)
{
echo "no results!";
die('we didn\'t get results with $user_id');
return false;
}
else
{
$data = array();
while($row = $results->fetch_assoc())
{
$data[] = $row;
}
return $data;
}
}
?>