|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/parasoffline.edukrypt.in/apinew/ |
Upload File : |
<?php
date_default_timezone_set('Asia/Kolkata');
define('BUNNY_CDN_HOSTNAME', 'https://vz-febe1fff-0d2.b-cdn.net');
require 'flight/Flight.php';
require("../application/third_party/vendor/autoload.php");
use AWS\S3\S3Client;
use Aws\S3\S3Client as S3S3Client;
use Aws\CognitoIdentity\CognitoIdentityClient;
use Aws\Exception\AwsException;
use Aws\S3\Exception\S3Exception;
use Aws\S3\PostObjectV4;
// Reginster Client By ID AND RegCode
Flight::route('/', function () {
echo 'EduKrypt App API New v2.0';
});
Flight::route('GET|POST /test', function () {
print_r('test');
});
Flight::register('db', 'PDO', array("mysql:host=localhost;port=3306;dbname=parasoffline_app;", 'root', 'the@interactive123'), function ($db) {
$db->exec("SET CHARACTER SET utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
});
define('APP_BASE', 'https://parasoffline.edukrypt.in/');
header('Content-Type: application/json');
// Reginster Client By ID AND RegCode
Flight::route('POST /register', function () {
//echo '<pre>'.json_encode($_POST).'</pre>';
if (!empty($_POST['id']) && !empty($_POST['regcode'])) {
$db = Flight::db();
$result = $db->query("SELECT * FROM users WHERE id='" . $_POST['id'] . "' AND registration_code='" . $_POST['regcode'] . "' LIMIT 0, 1");
if ($result->rowCount() >= 1) {
$query = $db->query("select users.*,admin_users.institute,admin_users.userfile,admin_users.mobile,admin_users.email as adminemail from users join admin_users ON admin_users.id=users.admin_id WHERE users.id='" . $_POST['id'] . "' AND users.registered=0");
if ($query->rowCount() >= 1) {
// if registered is inactive(0)
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo '{
"status":"success",
"statuscode":200,
"message":"register successfull",
"data":';
print_r(json_encode($row));
echo '}';
}
//change value of registered column to 1
$db->query("UPDATE users SET registered=1 WHERE id='" . $_POST['id'] . "'");
} else {
// if registered is inactive(0)
echo '{"status":"fail","statuscode":201,"data":{},"message":"User already registered!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// fetch user TB Into App
Flight::route('GET /fetch_popups', function () {
$db = Flight::db();
$result = $db->query("SELECT id,sort,name,CONCAT('https://parasoffline.edukrypt.in/uploads/',image) as img from popups order by sort asc");
if ($result->rowCount() >= 1) {
echo '{
"status":"success",
"statuscode":200,
"message":"Fetch successfully",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
});
// fetch user TB Into App
Flight::route('POST /fetch_user_tb', function () {
if (!empty($_POST['id']) && !empty($_POST['admin_id'])) {
$db = Flight::db();
$result = $db->query("SELECT users.*,admin_users.institute,admin_users.userfile,admin_users.mobile,admin_users.email as adminemail from users join admin_users ON admin_users.id=users.admin_id WHERE users.id='" . $_POST['id'] . "' AND users.admin_id='" . $_POST['admin_id'] . "' LIMIT 0, 1");
if ($result->rowCount() >= 1) {
//$db->query("UPDATE users SET registered=1 WHERE id='".$_POST['id']."'");
//$query = $db->query("select * from users WHERE id='".$_POST['id']."'");
foreach ($result->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo '{
"status":"success",
"statuscode":200,
"message":"Fetch successfully",
"data":';
echo json_encode($row);
echo '}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// Update user TB Into App
Flight::route('POST /update_user_tb', function () {
if (!empty($_POST['id']) && !empty($_POST['admin_id']) && !empty($_POST['first_name']) && !empty($_POST['last_name']) && !empty($_POST['admission_code'])) {
$db = Flight::db();
$result = $db->query("SELECT users.*,admin_users.institute,admin_users.userfile,admin_users.mobile,admin_users.email as adminemail from users join admin_users ON admin_users.id=users.admin_id WHERE users.id='" . $_POST['id'] . "' AND users.admin_id='" . $_POST['admin_id'] . "' LIMIT 0, 1");
if ($result->rowCount() >= 1) {
// Update First Name & Admission Code
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$admission_code = $_POST['admission_code'];
$db->query("UPDATE users SET first_name='$first_name',last_name='$last_name',admission_code='$admission_code' WHERE id='" . $_POST['id'] . "'");
$_result = $db->query("SELECT users.*,admin_users.institute,admin_users.userfile,admin_users.mobile,admin_users.email as adminemail from users join admin_users ON admin_users.id=users.admin_id WHERE users.id='" . $_POST['id'] . "' AND users.admin_id='" . $_POST['admin_id'] . "' LIMIT 0, 1");
foreach ($_result->fetchAll(PDO::FETCH_ASSOC) as $row) {
echo '{
"status":"success",
"statuscode":200,
"message":"Fetch successfully",
"data":';
echo json_encode($row);
echo '}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// fetch Course TB Into App
Flight::route('POST /fetch_course_tb', function () {
if (!empty($_POST['admin_id'])) {
$db = Flight::db();
$date = date('Y-m-d');
if (!empty($_POST['user_id'])) {
$result = $db->prepare("SELECT courses.* FROM courses JOIN subjects ON subjects.course_id=courses.id JOIN chapters ON chapters.subject_id=subjects.id JOIN lectures ON lectures.chapter_id=chapters.id JOIN regfiles ON regfiles.lecture_id=lectures.id WHERE regfiles.user_id='" . $_POST['user_id'] . "' AND regfiles.admin_id='" . $_POST['admin_id'] . "' AND DATE(str_dt) <='$date' AND DATE(end_dt) >='$date' group by courses.id");
} else {
$result = $db->prepare("SELECT * FROM courses WHERE ADMIN_ID='" . $_POST['admin_id'] . "'");
}
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Courses fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// fetch Subject TB Into App
Flight::route('POST /fetch_subject_tb', function () {
if (!empty($_POST['admin_id'])) {
$db = Flight::db();
$date = date('Y-m-d');
if (!empty($_POST['user_id'])) {
$result = $db->prepare("SELECT subjects.* FROM subjects JOIN chapters ON chapters.subject_id=subjects.id JOIN lectures ON lectures.chapter_id=chapters.id JOIN regfiles ON regfiles.lecture_id=lectures.id WHERE regfiles.user_id='" . $_POST['user_id'] . "' AND regfiles.admin_id='" . $_POST['admin_id'] . "' AND DATE(str_dt) <='$date' AND DATE(end_dt) >='$date' group by subjects.id");
} else {
$result = $db->prepare("SELECT * FROM subjects WHERE ADMIN_ID='" . $_POST['admin_id'] . "'");
}
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Subjects fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// fetch Subject TB Into App
Flight::route('POST /fetch_chapter_tb', function () {
if (!empty($_POST['admin_id'])) {
$db = Flight::db();
$date = date('Y-m-d');
if (!empty($_POST['user_id'])) {
$result = $db->prepare("SELECT chapters.* FROM chapters JOIN lectures ON lectures.chapter_id=chapters.id JOIN regfiles ON regfiles.lecture_id=lectures.id WHERE regfiles.user_id='" . $_POST['user_id'] . "' AND regfiles.admin_id='" . $_POST['admin_id'] . "' AND DATE(str_dt) <='$date' AND DATE(end_dt) >='$date' group by chapters.id");
} else {
$result = $db->prepare("SELECT * FROM chapters WHERE ADMIN_ID='" . $_POST['admin_id'] . "'");
}
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Chapters fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid entry!"}';
}
});
// fetch Subject TB Into App
Flight::route('POST /fetch_lecture_tb', function () {
if (!empty($_POST['admin_id'])) {
$db = Flight::db();
$adminID = $_POST['admin_id'];
$querySQL = "SELECT * FROM lectures WHERE ADMIN_ID=$adminID";
if (!empty($_POST['user_id'])) {
$userID = $_POST['user_id'];
$date = date('Y-m-d H:i:s');
$querySQL = "SELECT lectures.* from lectures JOIN regfiles ON regfiles.lecture_id=lectures.id WHERE lectures.admin_id=$adminID AND regfiles.user_id=$userID AND TIMESTAMPDIFF(SECOND, regfiles.str_dt, now())>1 AND TIMESTAMPDIFF(SECOND, regfiles.end_dt, now())<1";
//print_r($querySQL);exit;
}
$result = $db->prepare($querySQL);
$result->execute();
if ($result->rowCount() >= 1) {
$return_results = $result->fetchAll(PDO::FETCH_ASSOC);
if ($return_results) {
foreach ($return_results as $__key => $return_result) {
$return_results[$__key]['e_type'] = ($return_result['e_type']) ? $return_result['e_type'] : "";
if (empty($return_result['quiz_id'])) {
$return_results[$__key]['quiz_id'] = "";
}
$return_results[$__key]['file_name'] = $return_result['name'];
// Dropbox File Size get
if (empty($return_results[$__key]['is_download']) && $return_results[$__key]['e_type'] == 'video') {
$drobbox_video_id = $return_results[$__key]['drobbox_video_id'];
$dropbox_file_name = $return_results[$__key]['dropbox_file_name'];
//print_r($return_results[$__key]['storage']);exit;
$querySQL11 = "SELECT * from dropbox_album where BINARY id='$drobbox_video_id' AND name='$dropbox_file_name' limit 1";
if ($return_results[$__key]['storage'] == 'do') {
$querySQL11 = "SELECT path as id, filename as name, size from s3bucket where BINARY path='$drobbox_video_id' AND filename='$dropbox_file_name' limit 1";
}
$result11 = $db->prepare($querySQL11);
$result11->execute();
if ($result11->rowCount() >= 1) {
$return_results11 = $result11->fetchAll(PDO::FETCH_ASSOC);
$return_results[$__key]['is_download'] = $return_results11[0]['size'];
}
}
if (empty($return_result['file_name'])) {
$return_results[$__key]['file_name'] = $return_result['name'];
}
if ($return_result['e_type'] == 'doc') {
$return_results[$__key]['pdf_url'] = "";
} else {
$return_results[$__key]['pdf_url'] = "";
}
}
}
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Lectures fetch Successfully!",
"data":';
echo json_encode($return_results);
echo '}';
} else {
echo '{"status":"fail","statuscode":200,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch Subject TB Into App
Flight::route('POST /fetch_regfile_tb', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['user_id'])) {
$date = date('Y-m-d H:i:s');
$db = Flight::db();
$result = $db->prepare("SELECT * FROM regfiles WHERE user_id='" . $_POST['user_id'] . "' AND ADMIN_ID='" . $_POST['admin_id'] . "' AND TIMESTAMPDIFF(SECOND, regfiles.str_dt, now())>1 AND TIMESTAMPDIFF(SECOND, regfiles.end_dt, now())<1");
$result->execute();
//print_r($result->rowCount());exit;
if ($result->rowCount() >= 1) {
echo '{
"status":"success",
"statuscode":200,
"message":"Regfiles fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch Course TB Into App BY ID And Admin_id
Flight::route('POST /fetch_course_tb_by_id', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM courses WHERE admin_id='" . $_POST['admin_id'] . "' AND id='" . $_POST['id'] . "' LIMIT 0, 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"course fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch Subject TB Into App BY ID And Admin_id
Flight::route('POST /fetch_subject_tb_by_id', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM subjects WHERE admin_id='" . $_POST['admin_id'] . "' AND id='" . $_POST['id'] . "' LIMIT 0, 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"subject fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// Count Users
Flight::route('GET /checkfornewapp', function () {
$obj = json_decode(file_get_contents("php://input"));
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"New updated version found!",
"data":{
"version":"19",
"link":"https://play.google.com/store/apps/details?id=com.globalexcell.parasinstitute&hl=en"
}
}';
});
// fetch Chapter TB Into App BY ID And Admin_id
Flight::route('POST /fetch_chapter_tb_by_id', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM chapters WHERE ADMIN_ID='" . $_POST['admin_id'] . "' AND ID='" . $_POST['id'] . "' LIMIT 0, 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"chapter fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch Lecture TB Into App BY ID And Admin_id
Flight::route('POST /fetch_lecture_tb_by_id', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM lectures WHERE admin_id='" . $_POST['admin_id'] . "' AND id='" . $_POST['id'] . "' LIMIT 0, 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"lecture fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch Regfiles TB Into App BY ID And Admin_id
Flight::route('POST /fetch_regfile_tb_by_id', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM regfiles WHERE admin_id='" . $_POST['admin_id'] . "' AND id='" . $_POST['id'] . "' LIMIT 0, 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"regfile fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// fetch MediaPlay History TB Into App BY ID And Admin_id
Flight::route('POST /fetch_upload_playHistory', function () {
$_posts = json_decode(file_get_contents("php://input"));
$db = Flight::db();
if (!empty($_posts->data)) {
foreach ($_posts->data as $_post) {
$lecture_id = $_post->lecture_id;
$user_id = $_post->user_id;
$reg_id = $_post->reg_id;
$admin_id = $_post->admin_id;
$noofplay = $_post->noofplay;
$duration = $_post->duration;
$lecture = $_post->lecture;
$datetime = date('Y-m-d H:i:s');
$last_update = uniqid();
$resultQ = $db->prepare("INSERT INTO mediarecords (lid, user_id, reg_id, admin_id, duration, lecture, datetime, last_update) VALUES ('$lecture_id','$user_id','$reg_id','$admin_id','$duration','$lecture','$datetime','$last_update')");
$resultQ->execute();
if ($db->lastInsertId() > 0) {
// reduce remaining duration in regfiles
$query_one = $db->query("select * from regfiles where id='" . $reg_id . "'");
if ($query_one->rowCount() >= 1) {
$regfiles_data = $query_one->fetchAll(PDO::FETCH_ASSOC);
$remain_duration = $regfiles_data[0]['remain_duration'];
$updated_duration = $remain_duration - round($duration);
$db->query("UPDATE regfiles SET remain_duration='" . $updated_duration . "' WHERE id='" . $reg_id . "'");
}
}
}
$arr = array(
"status" => "success",
"statuscode" => "200",
"message" => "Regfile fetch successfully!",
"data" => ""
);
echo json_encode($arr);
exit;
}
$arr = array(
"status" => "fail",
"statuscode" => "201",
"message" => "All fields are required!",
"data" => ""
);
echo json_encode($arr);
exit;
});
/* MCQ ............................................................................................*/
// Get quiz_details
Flight::route('POST /quiz_details', function () {
$db = Flight::db();
$mcq_id = (isset($_POST['mcq_id']) && !empty($_POST['mcq_id'])) ? $_POST['mcq_id'] : NULL;
if (!$mcq_id) {
echo '{"status":"Not Fount","statuscode":401,"data":"{}","message":"All input fields are required!"}';
exit;
}
$result1 = $db->query("SELECT id as mcq_id, title, tquestion as total_question, duration, correct_marks, wrong_marks, description FROM mcq WHERE id = " . $mcq_id);
if ($result1->rowCount() > 0) {
echo '{"status":"success","statuscode":200,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Fetch succesfully !"}';
} else {
echo '{"status":"Not Fount","statuscode":402,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Not Found !"}';
}
});
// Get Questions
Flight::route('POST /get_questions_tb', function () {
$db = Flight::db();
$mcq_id = (isset($_POST['mcq_id']) && !empty($_POST['mcq_id'])) ? $_POST['mcq_id'] : NULL;
if (!$mcq_id) {
echo '{"status":"Not Fount","statuscode":401,"data":"{}","message":"All input fields are required!"}';
exit;
}
$result1 = $db->query("SELECT quiz_questions.id,quiz_id,mcq_subjects.id as m_sub_id,mcq_subjects.subject as m_subject,question,no_of_options,correct_ans,correct_option_id,created_at,updated_at FROM quiz_questions join mcq_subjects ON mcq_subjects.id=quiz_questions.subject_id WHERE quiz_id = " . $mcq_id);
//print_r($result1);exit;
if ($result1->rowCount() > 0) {
echo '{"status":"success","statuscode":200,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Fetch succesfully !"}';
} else {
echo '{"status":"Not Fount","statuscode":402,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Not Found !"}';
}
});
// Get Options
Flight::route('POST /get_options_tb', function () {
$db = Flight::db();
$mcq_id = (isset($_POST['mcq_id']) && !empty($_POST['mcq_id'])) ? $_POST['mcq_id'] : NULL;
if (!$mcq_id) {
echo '{"status":"Not Fount","statuscode":401,"data":"{}","message":"All input fields are required!"}';
exit;
}
$result1 = $db->query(" SELECT o.id,o.quiz_question_id,o.no_of_options,o.options,o.created_at,o.updated_at FROM `quiz_questions` as q INNER JOIN quiz_options as o on q.id = o.quiz_question_id WHERE q.quiz_id = " . $mcq_id);
if ($result1->rowCount() > 0) {
echo '{"status":"success","statuscode":200,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Fetch succesfully !"}';
} else {
echo '{"status":"Not Fount","statuscode":402,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Not Found !"}';
}
});
/**MCQ END*************************************************************************************/
// fetch faq's TB Into App
Flight::route('POST /fetch_faq_tb', function () {
$db = Flight::db();
$result = $db->prepare("SELECT * FROM faqs");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Faqs fetch Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
});
Flight::route('POST /fetch_quiz_tb', function () {
if (!empty($_POST['admin_id'])) {
$db = Flight::db();
$result = $db->prepare("SELECT id, admin_id, title, description FROM mcq WHERE ADMIN_ID='" . $_POST['admin_id'] . "'");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
echo '{
"status":"success",
"statuscode":200,
"message":"Quiz fetched Successfully!",
"data":';
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
// Get quiz
Flight::route('POST /get_quiz_tb', function () {
header('Content-type: application/json');
$post = json_decode(file_get_contents("php://input"));
$db = Flight::db();
$admin_id = (isset($post->admin_id) && !empty($post->admin_id)) ? $post->admin_id : NULL;
$user_id = (isset($post->user_id) && !empty($post->user_id)) ? $post->user_id : NULL;
if (!$admin_id && !$user_id) {
echo '{"status":"Not Fount","statuscode":401,"data":"{}","message":"All input fields are required!"}';
exit;
}
$result1 = $db->query("SELECT * FROM mcq WHERE admin_id = " . $admin_id);
if ($result1->rowCount() > 0) {
echo '{"status":"success","statuscode":200,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Fetch succesfully !"}';
} else {
echo '{"status":"Not Fount","statuscode":402,"data":' . json_encode($result1->fetchAll(PDO::FETCH_ASSOC)) . ',"message":"Not Found !"}';
}
});
// Get quiz
Flight::route('POST /mcq_results', function () {
header('Content-type: application/json');
$post = json_decode(file_get_contents("php://input"));
$db = Flight::db();
$admin_id = (isset($post->admin_id) && !empty($post->admin_id)) ? $post->admin_id : NULL;
$user_id = (isset($post->user_id) && !empty($post->user_id)) ? $post->user_id : NULL;
$mcq_id = (isset($post->mcq_id) && !empty($post->mcq_id)) ? $post->mcq_id : NULL;
$total_time = (isset($post->total_time) && !empty($post->total_time)) ? $post->total_time : NULL;
$accuracy = (isset($post->accuracy) && !empty($post->accuracy)) ? $post->accuracy : NULL;
$subjects = (isset($post->subjects) && !empty($post->subjects)) ? $post->subjects : NULL;
/* $subject_id = (isset($post->subject_id) && !empty($post->subject_id)) ? $post->subject_id : NULL;
$subject_name = (isset($post->subject_name) && !empty($post->subject_name)) ? $post->subject_name : NULL;
$correct_marks = (isset($post->correct_marks) && !empty($post->correct_marks)) ? $post->correct_marks : NULL;
$wrong_marks = (isset($post->wrong_marks) && !empty($post->wrong_marks)) ? $post->wrong_marks : NULL;
$total_marks = (isset($post->total_marks) && !empty($post->total_marks)) ? $post->total_marks : NULL; */
if (!$admin_id && !$user_id && !$mcq_id && !$total_time && !$accuracy && !$subjects) {
echo '{"status":"Not Fount","statuscode":401,"data":"{}","message":"All input fields are required!"}';
exit;
}
// $result_test = $db->prepare("INSERT INTO mcq_res_data (text)
// VALUES ('" . json_encode($post) . "')");
// $result_test->execute();
$checkExistresult = $db->prepare("SELECT * FROM mcq_results WHERE user_id = " . $user_id . " AND mcq_id = " . $mcq_id . "");
$checkExistresult->execute();
$checkExistresultdata = $checkExistresult->fetch(PDO::FETCH_ASSOC);
$created_at = date('Y-m-d H:i:s');
if ($checkExistresult->rowCount() < 5) {
$result = $db->prepare("INSERT INTO mcq_results (admin_id, user_id, mcq_id, total_time, accuracy,created_at)
VALUES ('" . $admin_id . "','" . $user_id . "','" . $mcq_id . "','" . $total_time . "','" . $accuracy . "','" . $created_at . "')");
$result->execute();
$mcq_result_id = $db->lastInsertId();
if (!empty($subjects)) {
foreach ($subjects as $subject) {
$result1 = $db->prepare("INSERT INTO mcq_results_gp (mcq_result_id, subject_id, subject_name, correct_marks, wrong_marks,total_marks)
VALUES ('" . $mcq_result_id . "','" . $subject->subject_id . "','" . $subject->subject_name . "','" . $subject->correct_marks . "','" . $subject->wrong_marks . "','" . $subject->total_marks . "')");
$result1->execute();
}
$data1['status']['status'] = "1";
$data1['status']['statuscode'] = "200";
$data1['data'] = '{}';
$data1['message']['message'] = "Data Added Successfully!";
echo json_encode($data1);
exit;
} else {
$data1['status']['status'] = "0";
$data1['status']['statuscode'] = "204";
$data1['data'] = '{}';
$data1['message']['message'] = "Data Not Found!";
echo json_encode($data1);
exit;
}
} else {
$db->query("UPDATE mcq_results SET total_time='" . $total_time . "',accuracy='" . $accuracy . "' WHERE id='" . $checkExistresultdata['id'] . "'");
if (!empty($subjects)) {
foreach ($subjects as $subject) {
$db->query("UPDATE mcq_results_gp SET correct_marks='" . $subject->correct_marks . "',wrong_marks='" . $subject->wrong_marks . "',total_marks='" . $subject->total_marks . "' WHERE mcq_result_id='" . $checkExistresultdata['id'] . "' AND subject_id='" . $subject->subject_id . "'");
}
$data1['status']['status'] = "1";
$data1['status']['statuscode'] = "200";
$data1['data'] = '{}';
$data1['message']['message'] = "Data Updated Successfully!";
echo json_encode($data1);
exit;
} else {
$data1['status']['status'] = "0";
$data1['status']['statuscode'] = "204";
$data1['data'] = '{}';
$data1['message']['message'] = "Data Not Found!";
echo json_encode($data1);
exit;
}
}
});
//update version_add_update token
Flight::route('GET /version_add_update', function () {
$v = isset($_GET['v']) ? $_GET['v'] : null;
if (!empty($v)) {
$db = Flight::db();
if (ctype_digit($v) == false) {
$data1['status']['status'] = "0";
$data1['status']['statuscode'] = "201";
$data1['data']['default'] = "";
$data1['message']['message'] = "You entered incorrect data parameter of 'v'!";
echo json_encode($data1);
exit;
}
$v = intval($v);
$result = $db->prepare("SELECT version,link FROM version order by id desc limit 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
header('Content-type: application/json');
$row = $result->fetch(PDO::FETCH_ASSOC);
// print_r($row);exit;
if ($v < $row['version']) {
$data1['status']['status'] = "1";
$data1['status']['statuscode'] = "200";
$data1['data'] = $row;
$data1['message']['message'] = "Version Updated!";
echo json_encode($data1);
exit;
} else {
$data1['status']['status'] = "0";
$data1['status']['statuscode'] = "201";
$data1['data']['default'] = "";
$data1['message']['message'] = "No New Version Found!";
echo json_encode($data1);
exit;
}
} else {
$data1['status']['status'] = "0";
$data1['status']['statuscode'] = "201";
$data1['data']['default'] = "";
$data1['message']['message'] = "Record Did Not Found!";
echo json_encode($data1);
exit;
}
}
});
Flight::route('POST /getObjectlink', function () {
$jsonPost = file_get_contents('php://input');
$arrayPost = json_decode($jsonPost);
//print_r($jsonPost);exit;
if (!empty($arrayPost)) {
$accessKey = "FE5BNXOOPWNOWFVTIC6A";
$secretKey = "WHm2+naAHIISj2/B1dzKixvpZ+3smaJdmaGeohr0efI";
$region = "sgp1";
$host = "https://sgp1.digitaloceanspaces.com";
$bucket = "paras-storage";
$s3 = new S3S3Client([
'version' => 'latest',
'region' => $region,
'endpoint' => $host,
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey
]
]);
/* $s3->putBucketCors([
'Bucket' => $bucket, // REQUIRED
'CORSConfiguration' => [ // REQUIRED
'CORSRules' => [ // REQUIRED
[
'AllowedMethods' => ['POST', 'GET', 'HEAD', 'DELETE', 'PUT'], // REQUIRED
'AllowedHeaders' => ['*'],
'AllowedOrigins' => ['*'], // REQUIRED
'ExposeHeaders' => ['ETag'],
'MaxAgeSeconds' => 0
],
],
]
]); */
try {
//Creating a presigned URL
$cmd = $s3->getCommand('GetObject', [
'Bucket' => $bucket,
'Key' => $arrayPost->path
]);
$request = $s3->createPresignedRequest($cmd, '+55 minutes');
// Get the actual presigned-url
$presignedUrl = (string)$request->getUri();
$_pathf = $arrayPost->path;
$_urlf = "https://paras-storage.sgp1.cdn.digitaloceanspaces.com/" . $_pathf . "?" . parse_url($presignedUrl, PHP_URL_QUERY);
//print_r($_urlf);exit;
echo json_encode(['code' => 200, 'status' => true, 'url' => $_urlf]);
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
}
});
Flight::route('POST /getDownloadURL', function () {
$jsonPost = file_get_contents('php://input');
$arrayPost = json_decode($jsonPost);
$db = Flight::db();
if (!empty($arrayPost)) {
if ($arrayPost->storage == 'do') {
$accessKey = "FE5BNXOOPWNOWFVTIC6A";
$secretKey = "WHm2+naAHIISj2/B1dzKixvpZ+3smaJdmaGeohr0efI";
$region = "sgp1";
$host = "https://sgp1.digitaloceanspaces.com";
$bucket = "paras-storage";
$s3 = new S3S3Client([
'version' => 'latest',
'region' => $region,
'endpoint' => $host,
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey
]
]);
$s3->putBucketCors([
'Bucket' => $bucket, // REQUIRED
'CORSConfiguration' => [ // REQUIRED
'CORSRules' => [ // REQUIRED
[
'AllowedMethods' => ['POST', 'GET', 'HEAD', 'DELETE', 'PUT'], // REQUIRED
'AllowedHeaders' => ['*'],
'AllowedOrigins' => ['*'], // REQUIRED
'ExposeHeaders' => ['ETag'],
'MaxAgeSeconds' => 0
],
],
]
]);
try {
//Creating a presigned URL
$cmd = $s3->getCommand('GetObject', [
'Bucket' => $bucket,
'Key' => $arrayPost->path
]);
$request = $s3->createPresignedRequest($cmd, '+60 minutes');
// Get the actual presigned-url
$presignedUrl = (string)$request->getUri();
$_pathf = $arrayPost->path;
$_urlf = "https://paras-storage.sgp1.cdn.digitaloceanspaces.com/" . $_pathf . "?" . parse_url($presignedUrl, PHP_URL_QUERY);
// print_r($arrayPost);exit;
if (isset($arrayPost->user_id) && !empty($arrayPost->user_id)) {
$result = $db->prepare("SELECT * FROM s3bucket where path = '" . $arrayPost->path . "' order by id desc limit 1 ");
$result->execute();
if ($result->rowCount() >= 1) {
$row = $result->fetch(PDO::FETCH_ASSOC);
$created_at = date('Y-m-d H:i:s');
$result = $db->prepare("INSERT INTO video_logs ( user_id,course_id, filename, path, size,created_at)
VALUES ('" . $arrayPost->user_id . "','" . $arrayPost->course_id . "','" . $row['filename'] . "','" . $arrayPost->path . "','" . $row['size'] . "','" . $created_at . "')");
$result->execute();
}
}
$arrayRes = array(
"status" => "success",
"statuscode" => 200,
"message" => "Fetch successfully",
"data" => ['url' => $_urlf]
);
echo json_encode($arrayRes);
} catch (S3Exception $e) {
$arrayRes = array(
"status" => "fail",
"statuscode" => 201,
"message" => "Something went wrong!"
);
echo json_encode($arrayRes);
//echo $e->getMessage() . PHP_EOL;
}
} else {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.dropboxapi.com/2/files/get_temporary_link',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode(array("path" => $arrayPost->path)),
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer HkXug3yoWOAAAAAAAAAAJACxINAHcwUn3Typ0hnMDsZvBqMTvBpKTmfUwKvSXNWE'
),
));
$response = curl_exec($curl);
curl_close($curl);
$resData = json_decode($response);
$arrayRes = array(
"status" => "success",
"statuscode" => 200,
"message" => "Fetch successfully",
"data" => ['url' => $resData->link]
);
echo json_encode($arrayRes);
exit;
}
}
});
Flight::route('POST /get_vodserver_url', function () {
$db = Flight::db();
$jsonPost = file_get_contents('php://input');
$arrayPost = json_decode($jsonPost);
if (!empty($arrayPost)) {
$user_id = $arrayPost->user_id;
$admin_id = $arrayPost->admin_id;
$lecture_id = $arrayPost->lecture_id;
$SQL = "SELECT * FROM regfiles WHERE permission_type='online' OR permission_type='both' AND user_id='" . $user_id . "' AND admin_id='" . $admin_id . "' AND lecture_id='" . $lecture_id . "' LIMIT 0,1";
$result = $db->prepare($SQL);
$result->execute();
if ($result->rowCount() > 0) {
// Get Lecture name
$SQL1 = "SELECT * FROM lectures WHERE id='" . $lecture_id . "' LIMIT 0,1";
$result1 = $db->prepare($SQL1);
$result1->execute();
if ($result1->rowCount() > 0) {
$lecture = $result1->fetch(PDO::FETCH_ASSOC);
$filename_without_ext = pathinfo($lecture['name'], PATHINFO_FILENAME);
// Get Bunny Video URL m3u8
$SQL2 = "SELECT * FROM collection_album WHERE name='" . $filename_without_ext . "'";
$result2 = $db->prepare($SQL2);
$result2->execute();
if ($result2->rowCount() > 0) {
$VOD_SERVER = $result2->fetch(PDO::FETCH_ASSOC);
$URL = BUNNY_CDN_HOSTNAME . '/' . $VOD_SERVER['video_id'] . '/playlist.m3u8';
echo json_encode(['code' => 200, 'status' => true, 'url' => base64_encode($URL)]);
exit;
}
echo json_encode(['code' => 201, 'status' => false]);
exit;
}
echo json_encode(['code' => 201, 'status' => false]);
exit;
}
echo json_encode(['code' => 201, 'status' => false]);
exit;
}
});
// fetch live schedules
Flight::route('POST /fetch_live_schedule_tb', function () {
if (!empty($_POST['admin_id']) && !empty($_POST['user_id'])) {
$date = date('Y-m-d H:i:s');
$db = Flight::db();
// Today
$todayQuery = $db->prepare("SELECT * FROM live_schedule WHERE user_id='" . $_POST['user_id'] . "' AND ADMIN_ID='" . $_POST['admin_id'] . "' AND NOW() BETWEEN str_dt AND end_dt");
$todayQuery->execute();
// Upcomming
$upcmingQuery = $db->prepare("SELECT * FROM live_schedule WHERE user_id='" . $_POST['user_id'] . "' AND ADMIN_ID='" . $_POST['admin_id'] . "' AND str_dt > NOW()");
$upcmingQuery->execute();
$data = array(
'current' => $todayQuery->fetchAll(PDO::FETCH_ASSOC),
'upcoming' => $upcmingQuery->fetchAll(PDO::FETCH_ASSOC),
);
if ($todayQuery->rowCount() >= 1) {
echo '{
"status":"success",
"statuscode":200,
"message":"Live Schedule fetch Successfully!",
"data":';
echo json_encode($data);
echo '}';
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"data not found!"}';
}
} else {
echo '{"status":"fail","statuscode":201,"data":{},"message":"Invalid Entry!"}';
}
});
Flight::start();