Файл: WoWonder 1.2.1/Update Guide/v1.1/Script/api.php
Строк: 151
<?php
require 'assets/init.php';
$api_version = '1.0';
if (empty($_GET['type']) || !isset($_GET['type'])) {
$json_error_data = array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '3',
'error_text' => 'Bad request.'
)
);
header("Content-type: application/json");
echo json_encode($json_error_data, JSON_PRETTY_PRINT);
exit();
}
$types = array(
'user_data',
'posts_data',
'search'
);
$result = array();
$limit = 20;
if (isset($_GET['limit']) && !empty($_GET['limit'])) {
$limit = Wo_Secure($_GET['limit']);
}
if (!is_numeric($limit)) {
$limit = 20;
}
if ($limit > 100) {
$limit = 100;
}
if (!in_array($_GET['type'], $types)) {
$json_error_data = array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '3',
'error_text' => 'Bad request.'
)
);
header("Content-type: application/json");
echo json_encode($json_error_data, JSON_PRETTY_PRINT);
exit();
}
if ($_GET['type'] == 'user_data') {
$api_data = Wo_UserData(Wo_UserIdFromUsername($_GET['user']));
if (empty($api_data)) {
$json_error_data = array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '1',
'error_text' => 'Username is not exists.'
)
);
header("Content-type: application/json");
echo json_encode($json_error_data, JSON_PRETTY_PRINT);
exit();
}
$json_data = array(
'id' => $api_data['user_id'],
'username' => $api_data['username'],
'first_name' => $api_data['first_name'],
'last_name' => $api_data['last_name'],
'gender' => $api_data['gender'],
'birthday' => $api_data['birthday'],
'about' => $api_data['about'],
'website' => $api_data['website'],
'facebook' => $api_data['facebook'],
'twitter' => $api_data['twitter'],
'vk' => $api_data['vk'],
'google+' => $api_data['google'],
'profile_picture' => $api_data['avatar'],
'cover_picture' => $api_data['cover'],
'verified' => $api_data['verified'],
'url' => $api_data['url']
);
header("Content-type: application/json");
echo json_encode(array(
'api_status' => 'success',
'api_version' => $api_version,
'user_data' => $json_data
), JSON_PRETTY_PRINT);
exit();
} elseif ($_GET['type'] == 'posts_data') {
$publisher_id = Wo_UserIdFromUsername($_GET['user']);
if (empty($publisher_id)) {
$json_error_data = array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '1',
'error_text' => 'Username is not exists.'
)
);
header("Content-type: application/json");
echo json_encode($json_error_data, JSON_PRETTY_PRINT);
exit();
}
$api_data = Wo_GetPosts(array(
'limit' => $limit,
'publisher_id' => $publisher_id
));
if (empty($api_data)) {
$json_error_data = array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '2',
'error_text' => 'User does not have any posts.'
)
);
header("Content-type: application/json");
echo json_encode($json_error_data, JSON_PRETTY_PRINT);
exit();
}
header("Content-type: application/json");
//$new = array_merge( $result, array( "api_status" => "success", "api_version" => '1.0' ) );
foreach ($api_data as $post_data) {
$json_data = array(
'post_id' => $post_data['post_id'],
'post_data' => array(
'post_id' => $post_data['post_id'],
'post_text' => $post_data['postText'],
'post_file' => Wo_GetMedia($post_data['postFile']),
'post_soundcloud' => $post_data['postSoundCloud'],
'post_youtube' => $post_data['postYoutube'],
'post_vine' => $post_data['postVine'],
'post_map' => $post_data['postMap'],
'post_time' => $post_data['time'],
'post_likes' => Wo_CountLikes($post_data['post_id']),
'post_wonders' => Wo_CountWonders($post_data['post_id'])
),
'publisher_data' => array(
'id' => $post_data['publisher']['user_id'],
'username' => $post_data['publisher']['username'],
'first_name' => $post_data['publisher']['first_name'],
'last_name' => $post_data['publisher']['last_name'],
'gender' => $post_data['publisher']['gender'],
'birthday' => $post_data['publisher']['birthday'],
'about' => $post_data['publisher']['about'],
'website' => $post_data['publisher']['website'],
'facebook' => $post_data['publisher']['facebook'],
'twitter' => $post_data['publisher']['twitter'],
'vk' => $post_data['publisher']['vk'],
'google+' => $post_data['publisher']['google'],
'profile_picture' => $post_data['publisher']['avatar'],
'cover_picture' => $post_data['publisher']['cover'],
'verified' => $post_data['publisher']['verified'],
'url' => $post_data['url']
)
);
array_push($result, $json_data);
}
echo json_encode(array(
'api_status' => 'success',
'api_version' => $api_version,
'items' => $result
), JSON_PRETTY_PRINT);
exit();
} else if ($_GET['type'] == 'search') {
if (!empty($_GET['gender'])) {
if ($_GET['gender'] == 'male') {
$filter['gender'] = 'male';
} else if ($_GET['gender'] == 'female') {
$filter['gender'] = 'female';
}
}
if (!empty($_GET['image'])) {
if ($_GET['image'] == 'yes') {
$filter['image'] = 'yes';
} else if ($_GET['image'] == 'no') {
$filter['image'] = 'no';
}
}
$filter['query'] = '';
if (!empty($_GET['keyword'])) {
$filter['query'] = Wo_Secure($_GET['keyword']);
}
if (empty($_GET['keyword'])) {
header("Content-type: application/json");
echo json_encode(array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '5',
'error_text' => 'Keyword is empty'
)
), JSON_PRETTY_PRINT);
exit();
}
$api_data = Wo_GetSearchFilter($filter, $limit);
if (empty($api_data)) {
header("Content-type: application/json");
echo json_encode(array(
'api_status' => 'failed',
'api_version' => $api_version,
'errors' => array(
'error_id' => '5',
'error_text' => 'No result found'
)
), JSON_PRETTY_PRINT);
exit();
}
foreach ($api_data as $user_data) {
$json_data = array(
'id' => $user_data['user_id'],
'username' => $user_data['username'],
'first_name' => $user_data['first_name'],
'last_name' => $user_data['last_name'],
'gender' => $user_data['gender'],
'birthday' => $user_data['birthday'],
'about' => $user_data['about'],
'website' => $user_data['website'],
'facebook' => $user_data['facebook'],
'twitter' => $user_data['twitter'],
'vk' => $user_data['vk'],
'google+' => $user_data['google'],
'profile_picture' => $user_data['avatar'],
'cover_picture' => $user_data['cover'],
'verified' => $user_data['verified'],
'url' => $user_data['url']
);
array_push($result, $json_data);
}
header("Content-type: application/json");
echo json_encode(array(
'api_status' => 'success',
'api_version' => $api_version,
'items' => $result
), JSON_PRETTY_PRINT);
exit();
}
?>