001.
<?php
002.
003.
require
'config.php'
;
004.
require
'Slim/Slim.php'
;
005.
006.
\Slim\Slim::registerAutoloader();
007.
$app
=
new
\Slim\Slim();
008.
009.
$app
->post(
'/login'
,
'login'
);
010.
$app
->post(
'/signup'
,
'signup'
);
011.
$app
->post(
'/feed'
,
'feed'
);
012.
$app
->post(
'/feedUpdate'
,
'feedUpdate'
);
013.
$app
->post(
'/feedDelete'
,
'feedDelete'
);
014.
015.
016.
017.
018.
019.
$app
->run();
020.
021.
022.
023.
function
login() {
024.
025.
$request
= \Slim\Slim::getInstance()->request();
026.
$data
= json_decode(
$request
->getBody());
027.
028.
try {
029.
030.
$db
= getDB();
031.
$userData
=
''
;
032.
$sql
=
"SELECT user_id, name, email, username FROM users WHERE (username=:username or email=:username) and password=:password "
;
033.
$stmt
=
$db
->prepare(
$sql
);
034.
$stmt
->bindParam(
"username"
,
$data
->username, PDO::PARAM_STR);
035.
$password
=hash(
'sha256'
,
$data
->password);
036.
$stmt
->bindParam(
"password"
,
$password
, PDO::PARAM_STR);
037.
$stmt
->execute();
038.
$mainCount
=
$stmt
->rowCount();
039.
$userData
=
$stmt
->fetch(PDO::FETCH_OBJ);
040.
041.
if
(!
empty
(
$userData
))
042.
{
043.
$user_id
=
$userData
->user_id;
044.
$userData
->token = apiToken(
$user_id
);
045.
}
046.
047.
$db
= null;
048.
if
(
$userData
){
049.
$userData
= json_encode(
$userData
);
050.
echo
'{"userData": '
.
$userData
.
'}'
;
051.
}
else
{
052.
echo
'{"error":{"text":"Bad request wrong username and password"}}'
;
053.
}
054.
055.
056.
}
057.
catch(PDOException
$e
) {
058.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
059.
}
060.
}
061.
062.
063.
064.
function
signup() {
065.
$request
= \Slim\Slim::getInstance()->request();
066.
$data
= json_decode(
$request
->getBody());
067.
$email
=
$data
->email;
068.
$name
=
$data
->name;
069.
$username
=
$data
->username;
070.
$password
=
$data
->password;
071.
072.
try {
073.
074.
$username_check
= preg_match(
'~^[A-Za-z0-9_]{3,20}$~i'
,
$username
);
075.
$emain_check
= preg_match(
'~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i'
,
$email
);
076.
$password_check
= preg_match(
'~^[A-Za-z0-9!@#$%^&*()_]{6,20}$~i'
,
$password
);
077.
078.
079.
if
(
strlen
(trim(
$username
))>0 &&
strlen
(trim(
$password
))>0 &&
strlen
(trim(
$email
))>0 &&
$emain_check
>0 &&
$username_check
>0 &&
$password_check
>0)
080.
{
081.
$db
= getDB();
082.
$userData
=
''
;
083.
$sql
=
"SELECT user_id FROM users WHERE username=:username or email=:email"
;
084.
$stmt
=
$db
->prepare(
$sql
);
085.
$stmt
->bindParam(
"username"
,
$username
,PDO::PARAM_STR);
086.
$stmt
->bindParam(
"email"
,
$email
,PDO::PARAM_STR);
087.
$stmt
->execute();
088.
$mainCount
=
$stmt
->rowCount();
089.
$created
=time();
090.
if
(
$mainCount
==0)
091.
{
092.
093.
094.
$sql1
=
"INSERT INTO users(username,password,email,name)VALUES(:username,:password,:email,:name)"
;
095.
$stmt1
=
$db
->prepare(
$sql1
);
096.
$stmt1
->bindParam(
"username"
,
$username
,PDO::PARAM_STR);
097.
$password
=hash(
'sha256'
,
$data
->password);
098.
$stmt1
->bindParam(
"password"
,
$password
,PDO::PARAM_STR);
099.
$stmt1
->bindParam(
"email"
,
$email
,PDO::PARAM_STR);
100.
$stmt1
->bindParam(
"name"
,
$name
,PDO::PARAM_STR);
101.
$stmt1
->execute();
102.
103.
$userData
=internalUserDetails(
$email
);
104.
105.
}
106.
107.
$db
= null;
108.
109.
110.
if
(
$userData
){
111.
$userData
= json_encode(
$userData
);
112.
echo
'{"userData": '
.
$userData
.
'}'
;
113.
}
else
{
114.
echo
'{"error":{"text":"Enter valid data"}}'
;
115.
}
116.
117.
118.
}
119.
else
{
120.
echo
'{"error":{"text":"Enter valid data"}}'
;
121.
}
122.
}
123.
catch(PDOException
$e
) {
124.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
125.
}
126.
}
127.
128.
129.
130.
function
internalUserDetails(
$input
) {
131.
132.
try {
133.
$db
= getDB();
134.
$sql
=
"SELECT user_id, name, email, username FROM users WHERE username=:input or email=:input"
;
135.
$stmt
=
$db
->prepare(
$sql
);
136.
$stmt
->bindParam(
"input"
,
$input
,PDO::PARAM_STR);
137.
$stmt
->execute();
138.
$usernameDetails
=
$stmt
->fetch(PDO::FETCH_OBJ);
139.
$usernameDetails
->token = apiToken(
$usernameDetails
->user_id);
140.
$db
= null;
141.
return
$usernameDetails
;
142.
143.
} catch(PDOException
$e
) {
144.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
145.
}
146.
147.
}
148.
149.
function
feed(){
150.
$request
= \Slim\Slim::getInstance()->request();
151.
$data
= json_decode(
$request
->getBody());
152.
$user_id
=
$data
->user_id;
153.
$token
=
$data
->token;
154.
155.
$systemToken
=apiToken(
$user_id
);
156.
157.
try {
158.
159.
if
(
$systemToken
==
$token
){
160.
$feedData
=
''
;
161.
$db
= getDB();
162.
$sql
=
"SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC"
;
163.
$stmt
=
$db
->prepare(
$sql
);
164.
$stmt
->bindParam(
"user_id"
,
$user_id
, PDO::PARAM_INT);
165.
$stmt
->execute();
166.
$feedData
=
$stmt
->fetchAll(PDO::FETCH_OBJ);
167.
168.
$db
= null;
169.
echo
'{"feedData": '
. json_encode(
$feedData
) .
'}'
;
170.
}
else
{
171.
echo
'{"error":{"text":"No access"}}'
;
172.
}
173.
174.
} catch(PDOException
$e
) {
175.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
176.
}
177.
178.
179.
180.
}
181.
182.
function
feedUpdate(){
183.
184.
$request
= \Slim\Slim::getInstance()->request();
185.
$data
= json_decode(
$request
->getBody());
186.
$user_id
=
$data
->user_id;
187.
$token
=
$data
->token;
188.
$feed
=
$data
->feed;
189.
190.
$systemToken
=apiToken(
$user_id
);
191.
192.
try {
193.
194.
if
(
$systemToken
==
$token
){
195.
196.
197.
$feedData
=
''
;
198.
$db
= getDB();
199.
$sql
=
"INSERT INTO feed ( feed, created, user_id_fk) VALUES (:feed,:created,:user_id)"
;
200.
$stmt
=
$db
->prepare(
$sql
);
201.
$stmt
->bindParam(
"feed"
,
$feed
, PDO::PARAM_STR);
202.
$stmt
->bindParam(
"user_id"
,
$user_id
, PDO::PARAM_INT);
203.
$created
= time();
204.
$stmt
->bindParam(
"created"
,
$created
, PDO::PARAM_INT);
205.
$stmt
->execute();
206.
207.
208.
209.
$sql1
=
"SELECT * FROM feed WHERE user_id_fk=:user_id ORDER BY feed_id DESC LIMIT 1"
;
210.
$stmt1
=
$db
->prepare(
$sql1
);
211.
$stmt1
->bindParam(
"user_id"
,
$user_id
, PDO::PARAM_INT);
212.
$stmt1
->execute();
213.
$feedData
=
$stmt1
->fetch(PDO::FETCH_OBJ);
214.
215.
216.
$db
= null;
217.
echo
'{"feedData": '
. json_encode(
$feedData
) .
'}'
;
218.
}
else
{
219.
echo
'{"error":{"text":"No access"}}'
;
220.
}
221.
222.
} catch(PDOException
$e
) {
223.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
224.
}
225.
226.
}
227.
228.
function
feedDelete(){
229.
$request
= \Slim\Slim::getInstance()->request();
230.
$data
= json_decode(
$request
->getBody());
231.
$user_id
=
$data
->user_id;
232.
$token
=
$data
->token;
233.
$feed_id
=
$data
->feed_id;
234.
235.
$systemToken
=apiToken(
$user_id
);
236.
237.
try {
238.
239.
if
(
$systemToken
==
$token
){
240.
$feedData
=
''
;
241.
$db
= getDB();
242.
$sql
=
"Delete * FROM feed WHERE user_id_fk=:user_id AND feed_id=:feed_id"
;
243.
$stmt
=
$db
->prepare(
$sql
);
244.
$stmt
->bindParam(
"user_id"
,
$user_id
, PDO::PARAM_INT);
245.
$stmt
->bindParam(
"feed_id"
,
$feed_id
, PDO::PARAM_INT);
246.
$stmt
->execute();
247.
248.
249.
$db
= null;
250.
echo
'{"success":{"text":"Feed deleted"}}'
;
251.
}
else
{
252.
echo
'{"error":{"text":"No access"}}'
;
253.
}
254.
255.
} catch(PDOException
$e
) {
256.
echo
'{"error":{"text":'
.
$e
->getMessage() .
'}}'
;
257.
}
258.
259.
260.
261.
}
262.
263.
264.
265.
266.
267.
268.
?>