save to codehub

This commit is contained in:
vedant-chavan
2024-08-09 17:11:41 +05:30
commit 20f55281ef
412 changed files with 74718 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageAboutUs;
class AboutController extends Controller
{
public function get_About_Us() {
$token = readHeaderToken();
if ($token) {
$userid = auth()->user();
$aboutdata = ManageAboutUs::where($userid)->get();
return response([
'user' => $aboutdata,
// 'token' => $user->createToken('secret')->plainTextToken
], 200);
}
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ContactUs;
use App\Models\User;
use Auth;
class ContactController extends Controller {
public function store_contact_us(Request $req) {
try {
//
$token = readHeaderToken();
// print_r($token);exit;
if($token){
$user = auth()->user();
// $bankobj = new ContactUs;
// print_r($req->all());
// exit;
$contactdata = array(
'user_id' => $token['sub'],
'name' => $req->name,
'email_id' => $req->email_id,
'contact_number' => $req->contact_number,
'subject' => $req->subject,
'type' => $req->type,
'message' => $req->message,
'is_reply' => '0',
'is_active' => '1',
);
// print_r($contactdata);
// exit;
// $userobj = User::find($user);
$data = ContactUs::create($contactdata);
}
return response([
'status' => "Success",
], 200);
// return $data;
} catch (Exception $ex) {
return response([
'status' => "failed",
], 500);
}
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class CreateNotificationOneSignalController extends Controller
{
function createNotification(Request $request) {
$player_id = $request->player_id;
$heading = $request->heading;
$message = $request->content;
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://onesignal.com/api/v1/notifications?app_id=1be4b99b-8faa-45b8-ad82-c66225d77bf4', [
'body' => '{"include_player_ids":["'.$player_id.'"],"headings":{"en":"'.$heading.'"},"contents":{"en":"'.$message.'"},"name":"INTERNAL_CAMPAIGN_NAME"}',
'headers' => [
'Authorization' => 'Basic MWM2NGEyODUtN2U5MS00MzlkLWJhYmItZGUyODRjYTlmNGJm',
'accept' => 'application/json',
'content-type' => 'application/json',
],
]);
$resBody = $response->getBody();
return $resBody;
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\DietPlan;
use App\Models\UserOverView;
class DietPlanController extends Controller
{
public function get_diet_categories(Request $request)
{
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$filters = $request->diet_categories;
// Retrieve the user's bmr from UserOverview table
$userOverview = UserOverview::where('user_id', $user_id)
->orderBy('id', 'desc')
->first();
// dd($userOverview);
$bmr = $userOverview->bmr;
$bmrInt = intval($bmr);
// Retrieve diet plans based on filters and bmr range
$query = DietPlan::query();
// Apply filters
if ($filters && in_array($filters, ['Veg', 'Non-Veg'])) {
$query->where('diet_categories', '=', $filters);
}
// Apply bmr range filter
$query->where('bmr_range_from', '<=', $bmrInt)
->where('bmr_range_to', '>=', $bmrInt);
// Add more filter conditions if needed
$manage_diet_plan = $query->get()->toArray();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $manage_diet_plan
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Activity data listing failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageFaq;
use Auth;
class FaqController extends Controller {
public function get_faq() {
$token = readHeaderToken();
if($token){
$faqdata = ManageFaq::with('category')->where('is_active','1')->get();
return response([
'user' => $faqdata,
// 'token' => $user->createToken('secret')->plainTextToken
], 200);
}
}
}

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\AppVersion;
class GetAppVersionCotroller extends Controller
{
public function getOlderVersion(Request $request){
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$appOlderVersionAndroi = $request->old_version_android;
$appOlderVersionIOS = $request->old_version_ios;
if($appOlderVersionAndroi){
$version = AppVersion::updateOrCreate(['user_id'=>$user_id],['old_version_android'=>$appOlderVersionAndroi]);
}else{
$version = AppVersion::updateOrCreate(['user_id'=>$user_id],['old_version_ios'=>$appOlderVersionIOS]);
}
if($version){
return response(['status' => "Success"], 200);
}
}
}
public function getNewVersion(){
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$newVersion = AppVersion::where('user_id',$user_id)->first();
return response(['result' => $newVersion,'status'=>"Success",'message'=>"Data Fetch Successfully"]);
}
}
public function updateAppVersion(Request $request){
$allData = AppVersion::all();
$ios = $request->new_version_ios;
$android = $request->new_version_android;
if($ios){
AppVersion::update(['new_version_ios'=>$ios]);
}elseif($android){
AppVersion::update(['new_version_ios'=>$android]);
}
}
}

View File

@@ -0,0 +1,830 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\LeaderboardMaster;
use App\Models\User;
use App\Models\UserDetail;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use App\Models\MonthlyPosition;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class LeaderBordMasterContoller extends Controller {
// public function get_user_ranking() {
// try {
// $token = readHeaderToken();
// if ($token) {
// $user_id = $token['sub'];
//
// // Retrieve the user's ranking and related user details
// $userRanking = LeaderboardMaster::with('user', 'user_details')
// ->get();
// return response()->json([
// 'success' => true,
// 'user_ranking' => $userRanking,
// 'message' => 'Data Fetch Successfully!.',
// ]);
// } else {
// return response()->json([
// 'success' => false,
// 'message' => 'Authentication failed.',
// ]);
// }
// } catch (\Exception $e) {
// \Log::error("User ranking retrieval failed: " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something went wrong.',
// ]);
// }
// }
public function get_user_ranking($sortOrder = 'desc') {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// Retrieve the user's ranking and related user details
$userRanking = LeaderboardMaster::with('user', 'user_data')
->orderBy('total_score', $sortOrder)
->get();
return response()->json([
'success' => true,
'user_ranking' => $userRanking,
'message' => 'Data Fetch Successfully!.',
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User ranking retrieval failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_user_gender(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$filters = $request->gender;
$query = LeaderboardMaster::with(['user', 'user_data']);
// Apply filters
if ($filters && in_array($filters, ['male', 'female'])) {
$query->whereHas('user_data', function ($query) use ($filters) {
$query->where('gender', '=', $filters);
});
}
// Add more filter conditions if needed
$manage_activity = $query->get()->toArray();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $manage_activity
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Activity data listing failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_user_group_level(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$groupLevelFilter = $request->input('group_level');
$elites = null;
$gameChangers = null;
$underdogs = null;
$elites_user_id = [];
if ($groupLevelFilter === 'elites') {
$elites = GroupLevelElites();
// print_r($elites['elites_user_id']);
// exit;
} elseif ($groupLevelFilter === 'gameChangers') {
$gameChangers = GroupLevelGameChanger();
} elseif ($groupLevelFilter === 'underdogs') {
$underdogs_user_id = [];
$game_changer_data = GroupLevelGameChanger();
$users_id = $game_changer_data['all_top_users_id'];
$underdog = LeaderboardMaster::whereNotIn('user_id', $users_id)->orderBy('total_score', 'desc')->get();
foreach ($underdog as $k => $val){
$underdogs_user_id[] = $val->user_id;
}
// dd($underdogs_user_id);
$underdogs['underdogs'] = $underdog;
$underdogs['underdogs_user_id'] = $underdogs_user_id;
} else {
// Invalid group level filter
return response()->json([
'success' => false,
'message' => 'Invalid group level filter.',
]);
}
return [
'elites' => $elites,
'gameChangers' => $gameChangers,
'underdogs' => $underdogs,
];
}
} catch (\Exception $e) {
\Log::error("Activity data listing failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
// public function filter_users(Request $request) {
// try {
// $token = readHeaderToken();
// if ($token) {
// $user_id = $token['sub'];
//
// $filters = $request->input('gender');
// $groupLevelFilter = $request->input('group_level');
//
// $query = LeaderboardMaster::with(['user', 'user_data']);
//
// // Apply gender filter
// if ($filters && in_array($filters, ['male', 'female'])) {
// $query->whereHas('user_data', function ($query) use ($filters) {
// $query->where('gender', '=', $filters);
// });
// } elseif ($filters !== null) {
// // Invalid gender filter
// return response()->json([
// 'success' => false,
// 'message' => 'Invalid gender filter.',
// ]);
// }
// // Apply group level filter
// $elites = null;
// $gameChangers = null;
// $underdogs = null;
// $elites_user_id = [];
//
// if ($groupLevelFilter === 'elites') {
// $elites = GroupLevelElites();
//
// // Filter by gender
// if ($filters && in_array($filters, ['male', 'female'])) {
// $elites = array_filter($elites, function ($elite) use ($filters) {
// return $elite['gender'] === $filters;
// });
// }
// } elseif ($groupLevelFilter === 'gameChangers') {
// $gameChangers = GroupLevelGameChanger();
//
// // Filter by gender
// if ($filters && in_array($filters, ['male', 'female'])) {
// $gameChangers = array_filter($gameChangers, function ($gameChanger) use ($filters) {
// return $gameChanger['gender'] === $filters;
// });
// }
// } elseif ($groupLevelFilter === 'underdogs') {
// $game_changer_data = GroupLevelGameChanger();
// $users_id = $game_changer_data['all_top_users_id'];
// $query->whereNotIn('user_id', $users_id)->orderBy('total_score', 'desc');
//
// // Apply gender filter
//if ($filters && in_array($filters, ['male', 'female'])) {
// $query->whereHas('user_data', function ($query) use ($filters) {
// $query->where('gender', '=', $filters);
// });
//} elseif ($filters !== null) {
// // Invalid gender filter
// return response()->json([
// 'success' => false,
// 'message' => 'Invalid gender filter.',
// ]);
//}
//
// $users = $query->get()->toArray();
//
// return response()->json([
// 'success' => true,
// 'message' => 'Data fetched successfully.',
// 'result' => [
// 'users' => $users,
// 'elites' => $elites,
// 'gameChangers' => $gameChangers,
// 'underdogs' => $underdogs,
// ],
// ]);
// } else {
// return response()->json([
// 'success' => false,
// 'message' => 'Authentication failed.',
// ]);
// }
// }
// }catch (\Exception $e) {
// \Log::error("User filtering failed: " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something went wrong.',
// ]);
// }
// }
public function get_user_data(Request $request)
{
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
//get user data for check gender and group level
$user = User::with('user_detail')->find($user_id);
//request inputs
$sortOrder = $request->input('sort_order');
$gender = "all";
// if($gender != "all"){
// $gender = $request->input('gender');
// }
// else{
// $gender = "all";
// }
$groupLevelFilter = $request->input('group_level');
// Retrieve the user's ranking and related user details
$query = LeaderboardMaster::with('user', 'user_data','user.stepCount');
// for gender
// $gender = "all";
if($request->has('gender')){
$gender = $request->input('gender');
// Apply gender filter
if ($gender != "all") {
$query->whereHas('user_data', function ($query) use ($gender) {
$query->where('gender', '=', $gender);
});
}
}
// else{
// $gender = $user->user_detail->gender;
// if($gender){
// if ($gender && in_array($gender, ['male', 'female'])) {
// $query->whereHas('user_data', function ($query) use ($gender) {
// $query->where('gender', '=', $gender);
// });
// }
// }
// }
//for group level
$elite = GroupLevelElites();
$game_changer = GroupLevelGameChanger();
$flattenedEliteArray = Arr::flatten($elite['elites_user_id']);
$flattenedGameChangerArray = Arr::flatten($game_changer['all_top_users_id']);
$filteredGameChangerArray = array_diff($flattenedGameChangerArray, $flattenedEliteArray);
if($request->has('group_level')){
if ($groupLevelFilter === 'elites') {
// Apply elites filter
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif ($groupLevelFilter === 'gameChangers') {
// Apply gameChangers filter
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} elseif ($groupLevelFilter === 'underdogs') {
// Apply underdogs filter
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
} else {
return response()->json([
'success' => false,
'message' => 'Invalid group level filter.',
]);
}
}
else{
if (in_array($user_id, $flattenedEliteArray)) {
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif (in_array($user_id, $filteredGameChangerArray)) {
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} else {
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
}
}
// Apply sorting
if ($sortOrder === 'asc') {
$query->orderBy('total_score', 'asc');
} else {
$query->orderBy('total_score', 'desc');
}
//final query
$user_data = $query->get()->toArray();
return response()->json([
'success' => true,
// 'user_data' => $user_data,
'message' => 'Data Fetch Successfully!.',
'user_data' => $user_data,
'gender' => $gender,
'group_level' => $group_level
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Data retrieval failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_user_data_new(Request $request)
{
// try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// Get user data to check gender and group level
$user = User::with('user_detail')->find($user_id);
// Request inputs
$sortOrder = $request->input('sort_order');
$gender = "all";
$groupLevelFilter = $request->input('group_level');
// Retrieve the user's ranking and related user details
$query = LeaderboardMaster::with([
'user',
'user_data',
'user.latestStepCount'
]);
// Apply gender filter if present
if ($request->has('gender')) {
$gender = $request->input('gender');
if ($gender != "all") {
$query->whereHas('user_data', function ($query) use ($gender) {
$query->where('gender', '=', $gender);
});
}
}
// Group level filtering logic
$elite = GroupLevelElites();
$game_changer = GroupLevelGameChanger();
$flattenedEliteArray = Arr::flatten($elite['elites_user_id']);
$flattenedGameChangerArray = Arr::flatten($game_changer['all_top_users_id']);
$filteredGameChangerArray = array_diff($flattenedGameChangerArray, $flattenedEliteArray);
if ($request->has('group_level')) {
if ($groupLevelFilter === 'elites') {
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif ($groupLevelFilter === 'gameChangers') {
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} elseif ($groupLevelFilter === 'underdogs') {
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
} else {
return response()->json([
'success' => false,
'message' => 'Invalid group level filter.',
]);
}
} else {
if (in_array($user_id, $flattenedEliteArray)) {
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif (in_array($user_id, $filteredGameChangerArray)) {
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} else {
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
}
}
// Apply sorting
if ($sortOrder === 'asc') {
$query->orderBy('total_score', 'asc');
} else {
$query->orderBy('total_score', 'desc');
}
// Fetch the query results
$leaderboardData = $query->get();
// Transform the latest step count to a single element array
$leaderboardData->each(function ($item) {
$user = $item->user;
if ($user) {
// $user->append('latestStepCountArray');
$user->setHidden(['latestStepCount']);
$user->latest_step_count = $user->latest_step_count_array;
}
});
// Convert the collection to an array
$user_data = $leaderboardData->toArray();
return response()->json([
'success' => true,
'message' => 'Data Fetch Successfully!',
'user_data' => $user_data,
'gender' => $gender,
'group_level' => $group_level
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
// } catch (\Exception $e) {
// \Log::error("Data retrieval failed pd: " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something went wrong.',
// ]);
// }
}
public function get_user_data_home(Request $request)
{
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
//get user data for check gender and group level
$user = User::with('user_detail')->find($user_id);
//request inputs
$sortOrder = $request->input('sort_order');
$gender = "all";
// if($gender != "all"){
// $gender = $request->input('gender');
// }
// else{
// $gender = "all";
// }
$groupLevelFilter = $request->input('group_level');
// Retrieve the user's ranking and related user details
$query = LeaderboardMaster::with('user', 'user_data');
// for gender
// $gender = "all";
if($request->has('gender')){
$gender = $request->input('gender');
// Apply gender filter
if ($gender != "all") {
$query->whereHas('user_data', function ($query) use ($gender) {
$query->where('gender', '=', $gender);
});
}
}
// else{
// $gender = $user->user_detail->gender;
// if($gender){
// if ($gender && in_array($gender, ['male', 'female'])) {
// $query->whereHas('user_data', function ($query) use ($gender) {
// $query->where('gender', '=', $gender);
// });
// }
// }
// }
//for group level
$elite = GroupLevelElites();
$game_changer = GroupLevelGameChanger();
$flattenedEliteArray = Arr::flatten($elite['elites_user_id']);
$flattenedGameChangerArray = Arr::flatten($game_changer['all_top_users_id']);
$filteredGameChangerArray = array_diff($flattenedGameChangerArray, $flattenedEliteArray);
if($request->has('group_level')){
if ($groupLevelFilter === 'elites') {
// Apply elites filter
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif ($groupLevelFilter === 'gameChangers') {
// Apply gameChangers filter
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} elseif ($groupLevelFilter === 'underdogs') {
// Apply underdogs filter
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
} else {
return response()->json([
'success' => false,
'message' => 'Invalid group level filter.',
]);
}
}
else{
if (in_array($user_id, $flattenedEliteArray)) {
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif (in_array($user_id, $filteredGameChangerArray)) {
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} else {
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
}
}
// Apply sorting
if ($sortOrder === 'asc') {
$query->orderBy('total_score', 'asc');
} else {
$query->orderBy('total_score', 'desc');
}
//final query
$user_data = $query->get()->toArray();
return response()->json([
'success' => true,
// 'user_data' => $user_data,
'message' => 'Data Fetch Successfully!.',
'user_data' => $user_data,
'gender' => $gender,
'group_level' => $group_level
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Data retrieval failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function ranking_position(){
try {
$token = readHeaderToken();
// $currentYear = now()->format('Y');
// $currentMonth = Carbon::now()->format('m');
// $monthDate = Carbon::createFromDate($currentYear, $currentMonth, 1)->format('Y-m');
// $users = User::where('status', '1')->with('user_detail')->get();
// $elite = GroupLevelElites();
// $game_changer = GroupLevelGameChanger();
// $flattenedEliteArray = Arr::flatten($elite['elites_user_id']);
// $flattenedGameChangerArray = Arr::flatten($game_changer['all_top_users_id']);
// $filteredGameChangerArray = array_diff($flattenedGameChangerArray, $flattenedEliteArray);
// $usersGroupedByLevel = [
// 1 => $flattenedEliteArray,
// 2 => $filteredGameChangerArray,
// 3 => array_diff($users->pluck('id')->toArray(), $flattenedGameChangerArray)
// ];
// foreach ($users as $user) {
// $userId = $user->id;
// $group_level = null;
// foreach ($usersGroupedByLevel as $level => $userIds) {
// if (in_array($userId, $userIds)) {
// $group_level = $level;
// $user_list = LeaderboardMaster::with('user', 'user_data')
// ->whereIn('user_id', $userIds)
// ->orderBy('total_score', 'desc')
// ->get();
// break;
// }
// }
// $position = null;
// foreach ($user_list as $index => $listedUser) {
// if ($listedUser->user_id == $userId) {
// $position = $index + 1;
// break;
// }
// }
// $existingPositionRecord = MonthlyPosition::where([
// 'user_id' => $userId,
// 'month' => $monthDate,
// ])->first();
// if ($existingPositionRecord) {
// if ($existingPositionRecord->group_level >= $group_level &&
// ($position < $existingPositionRecord->position || $group_level != $existingPositionRecord->group_level)) {
// $existingPositionRecord->update([
// 'position' => $position,
// 'group_level' => $group_level,
// ]);
// }
// } else {
// MonthlyPosition::create([
// 'user_id' => $userId,
// 'month' => $monthDate,
// 'position' => $position,
// 'group_level' => $group_level,
// ]);
// }
// }
return response()->json([
'success' => true,
'message' => 'Position Stored Successfully!.',
]);
} catch (Exception $ex) {
Log::error("Data retrieval failed: " . $ex->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_user_position(){
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$currentYear = now()->format('Y');
$yearStartDate = Carbon::createFromDate($currentYear, 1, 1)->format('Y-m-d');
$yearEndDate = Carbon::createFromDate($currentYear, 12, 31)->format('Y-m-d');
// Get all the data for the user for the entire current year
$user_monthly_positions = MonthlyPosition::whereBetween('month', [$yearStartDate, $yearEndDate])
->where('user_id', $user_id)
->orderBy('month', 'asc')
->get();
// Create empty records for missing months
$allMonths = collect([]);
$currentMonthDate = Carbon::createFromDate($currentYear, 1, 1);
for ($month = 1; $month <= 12; $month++) {
$allMonths->push($currentMonthDate->format('Y-m'));
$currentMonthDate->addMonth();
}
// Merge empty records for missing months into the original collection
$user_monthly_positions = $allMonths->map(function ($month) use ($user_monthly_positions, $user_id) {
return $user_monthly_positions->firstWhere('month', $month) ?? new MonthlyPosition([
'user_id' => $user_id,
'month' => $month,
'position' => null, // You can set a default value for the position here
]);
});
return response()->json([
'success' => true,
'message' => 'Data Fetch Successfully',
'monthly_positions' => $user_monthly_positions,
]);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (Exception $ex) {
\Log::error("Data retrieval failed: " . $ex->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_daily_user_position(){
try {
$token = readHeaderToken();
if ($token) {
$userId = $token['sub'];
$user = User::with('user_detail')->find($userId);
// $user_list = LeaderboardMaster::orderBy('total_score', 'desc')->get();
$query = LeaderboardMaster::with('user', 'user_data');
//get gender
// $gender = $user->user_detail->gender;
// if($gender){
// if ($gender && in_array($gender, ['male', 'female'])) {
// $query->whereHas('user_data', function ($query) use ($gender) {
// $query->where('gender', '=', $gender);
// });
// }
// }
//for group level
$elite = GroupLevelElites();
$game_changer = GroupLevelGameChanger();
$flattenedEliteArray = Arr::flatten($elite['elites_user_id']);
$flattenedGameChangerArray = Arr::flatten($game_changer['all_top_users_id']);
$filteredGameChangerArray = array_diff($flattenedGameChangerArray, $flattenedEliteArray);
if (in_array($userId, $flattenedEliteArray)) {
$group_level = "elites";
$query->whereIn('user_id', $flattenedEliteArray);
} elseif (in_array($userId, $filteredGameChangerArray)) {
$group_level = "gameChangers";
$query->whereIn('user_id', $filteredGameChangerArray);
} else {
$group_level = "underdogs";
$query->whereNotIn('user_id', $flattenedGameChangerArray);
}
//final query
$user_list = $query->orderBy('total_score', 'desc')->get();
$position = null;
foreach ($user_list as $index => $user){
if($user->user_id == $userId){
$position = $index + 1;
break;
}
}
return response()->json([
'success' => true,
'message' => 'Data Fetch Successfully',
'daily_position' => $position,
]);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (Exception $ex) {
\Log::error("Data retrieval failed: " . $ex->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,333 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\UserEmailOtp;
use App\Models\UserDetail;
use Carbon\Carbon;
use Auth;
// use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendUserOtp;
use App\Models\mood_o_meter;
use App\Models\PersonalAccessToken;
use App\Models\LeaderboardMaster;
class LoginController extends Controller
{
public function login(Request $request)
{
$validator = Validator::make($request->all(),[
'email_id' => 'required|email',
'password' => 'required|string|min:6'
]);
$credentials = $request->only('email_id', 'password');
$token = Auth::guard('api')->attempt($credentials);
// $token = auth('api')->attempt($credentials);
// dd("TOKEN",$token);
if (!$token) {
return response()->json([
'success' => false,
'message' => 'Wrong Creditials',
'status'=>401,
], 401);
}
$user = Auth::guard('api')->user();
// dd($user->end_date);
$todays_date = Carbon::now()->toDateString();
// dd($todays_date);
$endDate = Carbon::parse($user->end_date);
$startDate = Carbon::parse($user->start_date)->toDateString();
$subscriptionEndsIn7Days = $endDate->addDays(7)->toDateString();
if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todays_date){
$logout = auth('api')->logout();
return response()->json([
'success' => false,
'message' => 'Subscription end',
'status'=>201,], 201);
}
if($startDate > $todays_date){
$logout = auth('api')->logout();
return response()->json([
'success' => false,
'message' => 'Subscription end',
'status'=>201,], 201);
}
$personalAccessToken = new PersonalAccessToken();
$personalAccessToken->user_id = $user->id;
$personalAccessToken->token = $token;
$personalAccessToken->last_login = Carbon::now()->format('Y-m-d H:i:s');
$personalAccessToken->save();
//moodometer add data
$existingRecord = mood_o_meter::where('user_id', $user->id)->exists();
if (!$existingRecord) {
// Create a new mood record
$newEntry = mood_o_meter::create([
'user_id' => $user->id,
'mood_o_meter' => null,
'is_active' => '1',
]);
}
//Leaderboard add data
$existingRecord = LeaderboardMaster::where('user_id', $user->id)->exists();
if (!$existingRecord) {
// Create a new leaderbaord record
$newEntry = LeaderboardMaster::create([
'user_id' => $user->id,
'total_score' => '0',
'progress_bar' => '0',
]);
}
$user = User::with('user_detail')->where('id', $user->id)->first()->toArray();
// $user = User::select('id','full_name','contact_number','email_id','status')->where('id',$user->id)->first()->toArray();
return response()->json([
'success' => true,
'status' => true,
'message'=> 'You are successfully logged in',
'authorisation' => [
'token' => $token,
'user_data' => $user,
'type' => 'bearer',
]
], 200);
}
public function update_password(Request $request) {
$validator = Validator::make($request->all(), [
'user_id' => 'required|exists:users,id',
// 'current_password' => 'required|string|min:6',
'password' => 'required|string|confirmed'
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'status' => 406,
'message' => 'Password does not match',
'error' => $validator->errors(),
], 401);
}
# Match The Old Password
$user = User::where('id', $request->user_id)->first();
$user->password = Hash::make($request->input('password'));
$user->update();
return response()->json([
'success' => true,
'status' => 200,
'message' => 'Password changed successfully!',
]);
}
public function generate(Request $request) {
$validator = Validator::make($request->all(), [
'email_id' => 'required|email',
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()], 401);
}
//check user exist or not
$email = $request->email_id;
$user = User::where('email_id', $email)->first();
if(!$user){
return response(["status" => 404,
'message' => 'Email Id Does Not Exist']
);
}
// Generate An Otp
$otp = UserEmailOtp::updateOrCreate(['user_id' => $user->id],
[ 'otp' => rand(1000, 9999),
'valid_upto' => Carbon::now()->addMinutes(10)
]);
if ($otp) {
// send otp in the email
$mail_details = [
'email' => $request->email_id,
'subject' => 'Forgot Password',
'body' => 'Your OTP is : ' . $otp->otp
];
$mail = \Mail::to($request->email_id)->send(new SendUserOtp($mail_details));
return response(["status" => 200,
"message" => "OTP sent successfully",
'user_id' => $otp['user_id']]);
} else {
return response(["status" => 401,
'message' => 'Invalid']
);
}
}
public function verifyOtp(Request $request) {
$emailId = $request->email_id;
$otp = $request->otp;
// dd($emailId,$otp);
$user = User::where('email_id', $emailId)->first();
$varificationCode = UserEmailOtp::where('user_id', $user->id)->latest()->first();
// dd($varificationCode);
$now = Carbon::now();
if ($varificationCode && $now->isAfter($varificationCode->valid_upto)) {
return response()->json([
'status' => 500,
'message' => 'Your OTP has been expired',
], 500);
}
if($varificationCode->otp != $otp){
return response(["status" => 401,
'message' => 'Invalid OTP']
);
}else{
return response(["status" => 200,
'message' => 'Valid OTP']
);
}
}
public function create_new_pass_with_otp(Request $request) {
$request->validate([
'user_id' => 'required|exists:users,id',
]);
$validator = Validator::make($request->all(), [
'user_id' => 'required|exists:users,id',
'otp' => 'required'
]);
#Validation Logic
$verificationCode = UserEmailOtp::where('user_id', $request->user_id)
->where('otp', $request->otp)
->first();
$now = Carbon::now();
if (!$verificationCode) {
return response()->json([
'status' => 401,
'message' => 'Invalid',
], 401);
} elseif ($verificationCode && $now->isAfter($verificationCode->valid_upto)) {
return response()->json([
'status' => 500,
'message' => 'Your OTP has been expired',
], 500);
} else {
return response()->json([
'status' => 200,
'message' => 'Otp Verify successfully',
], 200);
}
}
public function resend_otp(Request $request) {
$validator = Validator::make($request->all(), [
'email_id' => 'required|email',
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()], 401);
}
// Generate An Otp
$email = $request->email_id;
$user = User::where('email_id', $email)->first();
$otp = UserEmailOtp::updateOrCreate(['user_id' => $user->id],
[ 'otp' => rand(1000, 9999),
'valid_upto' => Carbon::now()->addMinutes(10)
]);
if ($otp) {
// send otp in the email
$mail_details = [
'email' => $request->email_id,
'subject' => 'Forgot Password',
'body' => 'Your OTP is : ' . $otp->otp
];
// print_r($mail_details);exit;
\Mail::to($request->email_id)->send(new SendUserOtp($mail_details));
return response(["status" => 200,
"message" => "OTP sent successfully",
'user_id' => $otp['user_id']]);
} else {
return response(["status" => 401,
'message' => 'Invalid']
);
}
// $message = "Your otp is - ".$varificationCode->otp;
return response()->json([
'success' => true,
'status' => 200,
'message' => $message,
]);
}
public function resetPassword(Request $request){
$userId = $request->user_id;
$oldPass = $request->old_pass;
$newPass = $request->new_pass;
//check old password is not match with new password
$userPass = User::where('id',$userId)->first();
if(!Hash::check($oldPass,$userPass->password)){
return response()->json([
'status'=>201 ,
'message'=>'Wrong Password'
]);
}elseif(Hash::check($newPass,$userPass->password)){
return response()->json([
'status'=>201 ,
'message'=>'New Password and Old Password Cannot Be same'
]);
}else{
$user = User::where('id', $userId)->first();
$user->password = Hash::make($newPass);
$user->update();
return response()->json([
'success' => true,
'status' => 200,
'message' => 'Password changed successfully!',
]);
}
}
}

View File

@@ -0,0 +1,545 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\PastSession;
use App\Models\LeaderboardMaster;
use App\Models\UserContentView;
use App\Models\LinkFaqActivityMasterIds;
use App\Models\ActivityDay;
use App\Models\User;
use Validator;
use Carbon\Carbon;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http;
use Torann\GeoIP\Facades\GeoIP;
use Spatie\TimeZone\GoogleTimeZone;
use App\Helpers\Webhelper;
class ManageActivityController extends Controller {
public function get_manage_activity_id() {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$activityId = request('activityId');
$activity = ActivityMaster::with('subscription', 'schedule')->with('faq_activity_link.faqsData')->find($activityId);
if ($activity) {
return response()->json([
'success' => true,
'message' => 'Activity fetched successfully.',
'result' => $activity
]);
} else {
return response()->json([
'success' => false,
'message' => 'Activity not found.',
]);
}
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Activity data listing failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function get_manage_activity(Request $request) {
// try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// dd($user_id);
$user_data = User::where('id',$user_id)->first();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
// dd($utm_source);
$subscription_id = $subscription_data->id;
// dd($subscription_id);
$current_day = Carbon::now()->toDateString();
// dd($current_day);
$manage_activity = ActivityDay::where('date', '=', $current_day)
// ->where('')
->where('subscription_id', $subscription_id)
->with('subscription')
->with('faq_activity_link.faqsData')
->with('scheduleData', 'activityData.subscription')
->with('activityData.teacher_data')
->get();
// dd($manage_activity);
// $userIP = $request->ip(); // Get the user's IP address // commented by Pradyumn; commented on 5 july 2024; Reason: not in use
// Make a GET request to ipinfo.io
// $response = Http::get("https://ipinfo.io/{$userIP}/json"); // commented by Pradyumn; commented on 5 july 2024; Reason: not in use
// Parse the JSON response
// commented by Pradyumn; commented on 5 july 2024; Reason: not in use
// $ch = curl_init("https://ipinfo.io/{$userIP}?token=fb9b51b5a3bbd9");
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $response = curl_exec($ch);
// curl_close($ch);
// $locationData = json_decode($response); // commented by Pradyumn; commented on 5 july 2024; Reason: not in use
// dd($locationData);
// Extract the user's time zone from the location data
// $userTimeZone = $locationData->timezone; // commented by Pradyumn; commented on 5 july 2024; Reason: not in use
// dd($userTimeZone);
// Convert the time to the user's time zone
// $userTimeZone = $ca$carbonTimetz($userTimeZone);
$manage_activity->each(function ($item) {
$timestamp = $item->time;
$normalTime = Carbon::createFromFormat('H:i', $timestamp, 'Asia/Kolkata'); // Replace 'your_timezone' with the actual timezone of the 'time' column
$utcTime = $normalTime->utc();
$item->time = $utcTime->format('H:i'); // Update the 'time' value with the UTC time in 'HH:mm' format
return $item;
});
$result = $manage_activity;
// $userIP = $request->ip(); // Get the user's IP address
// // Make a GET request to ipinfo.io
// $response = Http::get("https://ipinfo.io/{$userIP}/json");
// // Parse the JSON response
// $locationData = $response->json();
// // Extract the user's time zone from the location data
// $userTimeZone = $locationData['timezone'];
// $manage_activity->each(function ($item) use ($userTimeZone) {
// $timestamp = $item->time;
// $normalTime = Carbon::createFromFormat('H:i', $timestamp, $userTimeZone); // Replace 'your_timezone' with the actual timezone of the 'time' column
// $normalTime->setTimezone($userTimeZone); // Convert to the user's time zone
// $item->time = $normalTime->format('H:i'); // Update the 'time' value with the user's time zone in 'HH:mm' format
// return $item;
// });
// $result = $manage_activity;
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
public function get_manage_activity_schedule() {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user_data = User::where('id',$user_id)->first();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
// dd($subscription_data);
$subscription_id = $subscription_data->id;
$current_day = Carbon::now()->toDateString();
$activity_schedule = ActivityDay::where('date', '>', $current_day)
->where('subscription_id', $subscription_id)
->with('subscription')
->with('scheduleData', 'activityData.teacher_data')
->orderBy('date', 'asc')
->get();
$activity_schedule->each(function ($item) {
$timestamp = $item->time;
$normalTime = Carbon::createFromFormat('H:i', $timestamp, 'Asia/Kolkata'); // Replace 'your_timezone' with the actual timezone of the 'time' column
$utcTime = $normalTime->utc();
$item->time = $utcTime->format('H:i'); // Update the 'time' value with the UTC time in 'HH:mm' format
return $item;
});
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $activity_schedule
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_manage_activity_schedule_utc() {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user_data = User::where('id',$user_id)->first();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
$current_day = Carbon::now()->toDateString();
$activity_schedule = ActivityDay::where('date', '>', $current_day)
->where('subscription_id', $subscription_id)
->with('subscription')
->with('scheduleData', 'activityData.teacher_data')
->get();
$activity_schedule->each(function ($item) {
$timestamp = $item->time;
$normalTime = Carbon::createFromFormat('H:i', $timestamp, 'Asia/Kolkata'); // Replace 'your_timezone' with the actual timezone of the 'time' column
$utcTime = $normalTime->utc();
$item->time = $utcTime->format('H:i'); // Update the 'time' value with the UTC time in 'HH:mm' format
return $item;
});
// $activity_schedule_array = $activity_schedule->toArray();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $activity_schedule
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_schedule_id() {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$scheduleId = request('scheduleId');
// $data = User::with('user_details')->where('id', $user_id)->first()->toArray();
$activity_schedule = ActivitySchedule::with('subscription')->find($scheduleId);
// print_r($activity_schedule);exit;
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $activity_schedule
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_manage_past_session() {
// try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user_data = User::where('id',$user_id)->first();
// dd($user_data);
$utm_source = $user_data->utm_source;
// dd($utm_source);
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
// dd($subscription_id);
$activity_data = ActivityMaster::where('subscription_id', $subscription_id)->orderBy('end_date', 'desc')->first();
// Calculate the cutoff date (end date + 7 days)
$end_date = $activity_data->end_date;
// dd($end_date);
$cutoffDate = Carbon::parse($end_date)->addDays(7);
// dd($cutoffDate);
// dd($cutoffDate,Carbon::now()->toDateString());
// $current_date = Carbon::now()->format('Y-m-d');
// $desired_date = Carbon::createFromDate(2024, 1, 2);
// $cutoffDate = $desired_date->format('Y-m-d');
// ->where('end_date','>=',$current_date)
// dd($desired_date_formatted);
if(Carbon::now()->toDateString() > $cutoffDate){
return response()->json([
'success' => false,
'message' => 'Activity has ended.',
]);
}
$past_activity = ActivityMaster::where('subscription_id', $subscription_id)->where('end_date','<',$cutoffDate)->with('teacher_data')->orderBy('start_date', 'desc')->first();
$schedule_data = ActivitySchedule::where('activity_master_id', $past_activity['id'])->with('past_data')->orderBy('start_date', 'asc')->get()->toArray();
$data_schedule = [];
foreach ($schedule_data as $k => $val){
if (empty($val['past_data'])){
continue;
}else{
$data_schedule[] = $val;
}
}
$past_activity['schedule'] = $data_schedule;
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $past_activity
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
// } catch (\Exception $e) {
// \Log::error("User data listing Failed: " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something went wrong.',
// ]);
// }
}
public function get_manage_past_session_id() {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$pastSessionId = request('pastSessionId');
// Calculate the date 7 days before the current date
$seven_days_before = date('Y-m-d', strtotime('+7 days'));
// Get past sessions that occurred within 7 days before the current date
$passed_session = PastSession::where('created_at', '<=', $seven_days_before)
->find($pastSessionId);
// dd($passed_session);
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $passed_session
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
public function add_session_status(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$oldUserRankings = LeaderboardMaster::with('user')
->get();
//get old points
$validator = Validator::make($request->all(), [
'content_id' => 'required',
'content_type' => 'required'
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()
], 401);
}
// validation fails
$data = UserContentView::where('user_id', $user_id)
->whereDate('created_at', now()->toDateString())
->get();
if ($data->isNotEmpty()) {
return response([
'status' => "Data already exists"
], 400);
} else {
$add_content_view = new UserContentView;
$add_content_view->user_id = $user_id;
$add_content_view->content_id = $request->input('content_id');
$add_content_view->is_view = $request->input('content_type');
$add_content_view->save();
// Check if user exists in another table
$leaderboardMaster = LeaderboardMaster::where('user_id', $user_id)->first();
if ($leaderboardMaster) {
// Update points if user exists
$leaderboardMaster->total_score += 1;
$leaderboardMaster->save();
} else {
// Create a new entry with 1 point if user doesn't exist
LeaderboardMaster::create([
'user_id' => $user_id,
'total_score' => 1,
]);
}
}
$newUserRanking = LeaderboardMaster::where('user_id', $user_id)->first();
if ($oldUserRankings && $newUserRanking) {
foreach ($oldUserRankings as $ranking) {
$previousTotalScore = $ranking->total_score;
$currentTotalScore = $newUserRanking->total_score;
if ($ranking->user_id == $user_id) {
if ($previousTotalScore === null) {
$ranking->progress_bar = '0'; // Initial entry
} elseif ($currentTotalScore > $previousTotalScore) {
$ranking->progress_bar = '0'; // Total score increased
$message = "You earned 1 point!";
} elseif ($currentTotalScore < $previousTotalScore) {
$ranking->progress_bar = '1'; // Total score decreased
$message = "Your score decreased.";
} else {
$ranking->progress_bar = '2'; // Total score remained the same
$message = "Your score remains the same.";
}
$ranking->save(); // Save the updated progress_bar value
}
}
return response([
'status' => "Data added successfully.",
'progress_bar' => $message,
], 200);
}
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.'
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed: " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something went wrong.'
]);
}
}
public function dummy_activity(Request $request){
// try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// dd($user_id);
$user_data = User::where('id',$user_id)->first();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
// dd($subscription_id);
$current_day = Carbon::now()->toDateString();
$manage_activity = ActivityDay::where('date', '=', $current_day)
// ->where('')
->where('subscription_id', $subscription_id)
->with('subscription')
->with('faq_activity_link.faqsData')
->with('scheduleData', 'activityData.subscription')
->with('activityData.teacher_data')
->get();
// $userIP = $request->ip(); // Get the user's IP address
// // Make a GET request to ipinfo.io
// $response = Http::get("https://ipinfo.io/{$userIP}/json");
// // Parse the JSON response
// $ch = curl_init("https://ipinfo.io/{$userIP}/json");
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $response = curl_exec($ch);
// curl_close($ch);
// $locationData = json_decode($response);
// // Extract the user's time zone from the location data
// $userTimeZone = $locationData->timezone;
// // dd($userTimeZone);
// // Convert the time to the user's time zone
// // $userTimeZone = $ca$carbonTimetz($userTimeZone);
// $manage_activity->each(function ($item) {
// $timestamp = $item->time;
// $normalTime = Carbon::createFromFormat('H:i', $timestamp, 'Asia/Kolkata'); // Replace 'your_timezone' with the actual timezone of the 'time' column
// $utcTime = $normalTime->utc();
// $item->time = $utcTime->format('H:i'); // Update the 'time' value with the UTC time in 'HH:mm' format
// return $item;
// });
// $result = $manage_activity;
$userIP = $request->ip(); // Get the user's IP address
// Make a GET request to ipinfo.io
$response = Http::get("https://ipinfo.io/{$userIP}/json");
// Parse the JSON response
$locationData = $response->json();
// Extract the user's time zone from the location data
$userTimeZone = $locationData['timezone'];
$manage_activity->each(function ($item) use ($userTimeZone) {
$timestamp = $item->time;
$normalTime = Carbon::createFromFormat('H:i', $timestamp, $userTimeZone); // Replace 'your_timezone' with the actual timezone of the 'time' column
$normalTime->setTimezone($userTimeZone); // Convert to the user's time zone
$item->time = $normalTime->format('H:i'); // Update the 'time' value with the user's time zone in 'HH:mm' format
return $item;
});
$result = $manage_activity;
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageBanner;
class ManageBannerController extends Controller
{
public function manage_banner()
{
try{
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
// $data = User::with('user_details')->where('id', $user_id)->first()->toArray();
// $data = ManageBanner::latest()->first(); // comented by: Pradyumn; Commented at: 5 july 2024; Reason: added select function;
$data = ManageBanner::select('id','banner_path','block_position')->orderBy('id','desc')->first();
return response()->json([
'success' => true,
'message'=> 'Data fetched successfully.',
'result' => $data
]);
}else{
return response()->json([
'success' => false,
'message'=> 'Authentication failed.',
]);
}
}catch(\Exception $e){
\Log::error("User data listing Failed : " .$e->getMessage());
return response()->json([
'success' => false,
'message'=> 'Something Went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageNewsArticles;
use App\Models\ManageFeedback;
use Illuminate\Support\Facades\File;
use Auth;
class ManageFeedbackController extends Controller
{
public function getData(){
$data = ManageFeedback::where('is_active','0')->get();
// dd($data);
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
}
public function updateFeedback(Request $request) {
$token = readHeaderToken();
// dd($token);
if ($token) {
$user_id = $token['sub'];
// $user = auth()->user();
// dd($user_id);
$existingRecord = ManageFeedback::where('user_id', $user_id)->first();
if ($existingRecord) {
$existingRecord->update(['message' => $request->message,'reaction' => $request->reaction]);
$data = $existingRecord;
} else {
$data = ManageFeedback::create([
'user_id' => $user_id,
'message' => $request->message,
'reaction' => $request->reaction
]);
}
$message = $existingRecord ? 'Data updated successfully.' : 'Data created successfully.';
return response()->json([
'success' => true,
'message' => $message,
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'something went wrong.',
]);
}
}
// public function updateFeedback(Request $request) {
// $token = readHeaderToken();
// if ($token) {
// $user_id = $token['sub'];
// $user = auth()->user();
// // dd($user_id);
// // Update or create ManageFeedback record
// $data = ManageFeedback::updateOrCreate([
// 'user_id' => $user_id,
// 'message' => $request->message,
// 'reaction' => $request->reaction
// ]);
// return response()->json([
// 'success' => true,
// 'message' => 'Data updated successfully.',
// 'result' => $data
// ]);
// } else {
// return response()->json([
// 'success' => false,
// 'message' => 'something went wrong.',
// ]);
// }
// }
}

View File

@@ -0,0 +1,121 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\NotificationMaster;
use App\Models\NotificationUser;
use Auth;
use Carbon\Carbon;
class ManageNotificationController extends Controller
{
public function get_notification_count(){
try{
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
$notification_count = NotificationUser::where('user_id',$user_id)
->where('is_read','0')->count();
// print_r($notification_list);
// exit;
$notification_list = NotificationUser::with('notification_master_data','user_data')->where('user_id',$user_id)->get()->toArray();
// echo "<pre>";
// print_r($notification_list);
// exit;
return response()->json([
'success' => true,
'message' => 'Data Fetch Successfully!.',
'notification_count' => $notification_count,
'notification_list' => $notification_list
]);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (Exception $ex) {
return response([
'status' => "failed",
], 500);
}
}
public function update_read_status(Request $request){
try {
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
$nitification_id = $request->notification_id;
NotificationUser::where('notification_id',$nitification_id)
->where('user_id',$user_id)
->update(['is_read' => '1']);
return response()->json([
'success' => true,
'message' => 'Data Updated Successfully!.'
]);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (Exception $ex) {
return response([
'status' => "failed",
], 500);
}
}
public function delete_notification(Request $request){
try{
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
$notification_id = $request->notification_id;
// print_r($notification_id);
// exit;
NotificationUser::where('notification_id',$notification_id)
->where('user_id',$user_id)->delete();
return response()->json([
'success' => true,
'message' => 'Deleted Successfully!.'
]);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (Exception $ex) {
}
}
// public function delete(){
// $threeDaysAgo = Carbon::now()->subDays(3);
// NotificationUser::where('created_at','<',$threeDaysAgo)->delete();
// return response()->json([
// 'success' => true,
// 'message' => 'Deleted Successfully!.'
// ]);
// }
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManagePodcast;
class ManagePodcastController extends Controller
{
public function getPodcast(){
$data['latestPodcast'] = ManagePodcast::where('is_active','1')->inRandomOrder()->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
}
}

View File

@@ -0,0 +1,181 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\mood_o_meter;
use App\Models\LeaderboardMaster;
//use Carbon\Carbon;
use Auth;
class MoodOMeterController extends Controller {
public function store_mood_o_meter(Request $req) {
try {
$token = readHeaderToken();
if ($token) {
// $user = auth()->user();
$user_id = $token['sub'];
$oldUserRankings = LeaderboardMaster::with('user')->get();
$currentDate = now()->toDateString();
$previousDate = now()->subDay()->toDateString();
// Check if a record for the current user and current day already exists
$existingRecord = mood_o_meter::where('user_id', $user_id)
// ->whereDate('created_at', now()->toDateString())
->whereDate('updated_at', $currentDate)
->where('is_active','0')
->first();
if ($existingRecord) {
// Update the existing mood record
$existingRecord->update([
'mood_o_meter' => $req->input('mood_o_meter'),
'is_active' => '0',
]);
return response([
'status' => "Mood already added for today",
], 200);
} else {
// Check if a record for the current user and previous day exists
// $previousRecord = mood_o_meter::where('user_id', $user_id)
// ->whereDate('updated_at', $previousDate)
//
// ->first();
// if ($previousRecord) {
// Create a new mood record for the current day
mood_o_meter::where('user_id', $user_id)
->update([
'mood_o_meter' => $req->input('mood_o_meter'),
'is_active' => '0'
]);
// }
// else {
//
// mood_o_meter::create([
// 'user_id' => $user_id,
// 'mood_o_meter' => $req->input('mood_o_meter'),
// 'is_active' => '0',
// ]);
// }
// Update is_active column based on the current time
$ranking = LeaderboardMaster::with('user')->where('user_id', $user_id)->first();
// Check if user exists in another table
$leaderboardMaster = LeaderboardMaster::where('user_id', $user_id)->first();
if ($leaderboardMaster) {
// Update points if user exists
$leaderboardMaster->increment('total_score', 1);
} else {
// Create a new entry with 1 point if user doesn't exist
LeaderboardMaster::create([
'user_id' => $token['sub'],
'total_score' => 1,
]);
}
$newUserRanking = LeaderboardMaster::where('user_id', $user_id)->first();
if ($newUserRanking) {
// dd($oldUserRankings);
// $message = 'Hello World';
// echo '<pre>';
// print_r($ranking);
// exit();
// foreach ($oldUserRankings as $ranking) {
$previousTotalScore = $ranking->total_score;
$currentTotalScore = $newUserRanking->total_score;
if ($ranking->user_id == $user_id) {
if ($previousTotalScore === null) {
$ranking->progress_bar = '0'; // Initial entry
} elseif ($currentTotalScore > $previousTotalScore) {
$ranking->progress_bar = '0'; // Total score increased
$message = "You earned 1 point!";
} elseif ($currentTotalScore < $previousTotalScore) {
$ranking->progress_bar = '1'; // Total score decreased
$message = "Your score decreased.";
} else {
$ranking->progress_bar = '2'; // Total score remained the same
$message = "Your score remains the same.";
}
$ranking->save(); // Save the updated progress_bar value
}
// }
// dd($userRanking,$newUserRanking);
return response()->json([
'success' => true,
'progress_bar' => $message,
]);
}
return response([
'status' => "Success",
], 200);
}
}
} catch (Exception $ex) {
return response([
'status' => "failed",
], 500);
}
}
public function get_mood_o_meter() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = mood_o_meter::where('user_id', $user_id)->value('is_active');
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_mood_o_meter_mood() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = mood_o_meter::where('user_id', $user_id)->value('mood_o_meter');
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageNewsArticles;
use App\Models\NewsArticlesCategory;
class NewsAndArticleController extends Controller
{
public function getData(){
$data['category'] = NewsArticlesCategory::with('articles')->where('is_active','1')->inRandomOrder()->get();
// dd($data);
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
}
public function search(Request $request)
{
$result = ManageNewsArticles::where('article_name', 'LIKE', '%' . $request->article_name . '%')->where('category_id',$request->category_id)->where('is_active','1')->get();
// dd($result);
if (count($result) > 0) {
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result]);
} else {
return response()->json(['Result' => 'No Data found'], 200);
}
}
}

View File

@@ -0,0 +1,88 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\PeriodDate;
class PeriodDatesController extends Controller
{
public function storeDates(Request $request){
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
$data = $request->all();
// dd($data);
// $datetime = $data['datetime'];
$predicted_dates = $data['predicted_dates'];
$fertile_dates = $data['fertile_dates'];
$ovulating_dates = $data['ovulating_dates'];
$pickerdateRange = $data['pickerdateRange'];
// $jsonEncodedDateTimeArray = json_encode($datetime);
$jsonEncodedPredictedDatesArray = json_encode($predicted_dates);
$jsonEncodedFertileDatesArray = json_encode($fertile_dates);
$jsonEncodedOvulatingDatesArray = json_encode($ovulating_dates);
$jsonEncodedPickerDteRangeArray = json_encode($pickerdateRange);
PeriodDate::updateOrCreate( ['user_id'=>$user_id],
[
'predicted_dates'=>$jsonEncodedPredictedDatesArray,
'fertile_dates'=>$jsonEncodedFertileDatesArray,
'ovulating_dates'=>$jsonEncodedOvulatingDatesArray,
'pickerdateRange'=>$jsonEncodedPickerDteRangeArray,
'period_cycle_length'=>$request->period_cycle_length
]);
return response()->json([
'success' => true,
'message' => 'Data Added Successfully'
],200);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
public function getPeriodDates(){
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
$data = PeriodDate::where('user_id',$user_id)->first();
$result['predictedDates'] = json_decode($data->predicted_dates);
$result['fertileDates'] = json_decode($data->fertile_dates);
$result['ovulatingDates'] = json_decode($data->ovulating_dates);
$result['pickerdateRange'] = json_decode($data->pickerdateRange);
$result['period_cycle_length'] = $data->period_cycle_length;
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result
]);
}
}
public function deletePeriodDates(){
$token = readHeaderToken();
if($token){
$user_id = $token['sub'];
// dd($user_id);
$data = PeriodDate::where('user_id',$user_id)->delete();
return response()->json([
'success' => true,
'message' => 'Data delete successfully.',
'result' => $data
]);
}
}
}

View File

@@ -0,0 +1,194 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Validator;
use App\Models\UserDetail;
use App\Models\CompanyMaster;
use App\Models\User;
use Illuminate\Support\Facades\File;
use Auth;
class ProfileController extends Controller {
public function profileUpdate(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user = auth()->user();
// print_r($user);exit;
// check validation
$validator = Validator::make($request->all(), [
'full_name'=>'required',
'bio' => 'required|string|min:6',
'description' => 'required|string|min:6',
'gender' => 'required|in:male,female',
'age' => 'required',
'full_address' => 'required',
'city' => 'required',
'height' => 'required',
// 'weight' => 'required',
// 'profile_picture' => 'required|image|mimes:jpg,png,jpeg,gif',
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'error' => $validator->errors()], 401);
}
$profile_completed_status = User::select('status')->find($user_id);
if ($profile_completed_status->status == 0) {
$UserDetail = new UserDetail;
$UserDetail->user_id = $user_id;
$UserDetail->user_bio = $request->input('bio');
$UserDetail->description = $request->input('description');
$UserDetail->gender = $request->input('gender');
$UserDetail->age = $request->input('age');
$UserDetail->full_address = $request->input('full_address');
$UserDetail->city = $request->input('city');
$UserDetail->height = $request->input('height');
// $UserDetail->weight = $request->input('weight');
if ($request->hasFile('profile_picture')) {
$file = $request->file('profile_picture');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/profile_images/';
$file->move($path, $file_name);
$UserDetail->profile_picture = url('/public/uploads/profile_images/' . $file_name);
}
$UserDetail->save();
User::where('id', $user_id)->update(array('status' => '1'));
$msg = "Profile Completed Successfully.";
} else {
$user = UserDetail::where('user_id', $user_id)->first();
// $file_name = $user->profile_picture;
$UserDetails = UserDetail::where('user_id', $user_id)->first();
$UserDetails->user_bio = $request->input('bio');
$UserDetails->description = $request->input('description');
$UserDetails->gender = $request->input('gender');
$UserDetails->age = $request->input('age');
$UserDetails->full_address = $request->input('full_address');
$UserDetails->city = $request->input('city');
$UserDetails->height = $request->input('height');
// 'weight' => $request->input('weight'),
if ($request->hasFile('profile_picture')) {
$file = $request->file('profile_picture');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/profile_images/';
$file->move($path, $file_name);
// delete previous file
$previous_image = public_path('/uploads/profile_images/' . $user->profile_picture);
$delete_prv_image = File::delete($previous_image);
$UserDetails->profile_picture = url('/public/uploads/profile_images/' . $file_name);
}
// $UserDetails->profile_picture = url('/public/uploads/profile_images/' . $file_name);
$UserDetails->save();
User::where('id', $user_id)->update(array('full_name' => $request->input('full_name')));
$msg = "Profile Updated Successfully.";
}
$user = User::with('user_detail')->where('id', $user_id)->first()->toArray();
// $user = User::select('id','full_name','contact_number','email_id','status')->where('id',$user->id)->first()->toArray();
return response()->json([
'success' => true,
'status' => true,
'message'=> $msg,
'authorisation' => [
'token' => null,
'user_data' =>$user,
'type' => 'bearer',
]
],200);
// return response()->json([
// 'success' => true,
// 'status' => true,
// 'message' => $msg,
// 'authorisation' => [
// 'token' => null,
// 'user_detail' =>$user,
// 'type' => 'bearer',
// ],
// ]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Update Complete/Update Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
/**
* Created By : Pradyumn Dwivedi
* Created at : 06 Feb 2023
* Use : To display list of User data
*/
public function index() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = User::with('user_detail')->where('id', $user_id)->first();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'authorisation' => [
'user_data' => $data
]
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function viewProfile() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = User::with('user_detail')->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,131 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageQuizQuestion;
use App\Models\QuizQuestionsAnswer;
use App\Models\UserQuizPoints;
use App\Models\LeaderboardMaster;
class QuizController extends Controller
{
// public function getQuiz(){
// $currentDateTime = now();
// $data = $data = ManageQuizQuestion::with('answer')->where('is_active', '1')->where('schedule_timing', '=', $currentDateTime)->inRandomOrder()->limit(3)->get()->toArray();
// // $data = $data = ManageQuizQuestion::with('answer')->where('is_active', '1')->inRandomOrder()->limit(3)->get()->toArray();
// if (empty($data)) {
// return response()->json([
// 'success' => false,
// 'message' => 'No quiz found.',
// 'result' => []
// ]);
// }
// return response()->json([
// 'success' => true,
// 'message' => 'Data fetched successfully.',
// 'result' => $data
// ]);
// }
public function getQuiz() {
$currentDateTime = now();
$todayQuizzes = ManageQuizQuestion::with('answer')->where('is_active', '1')->whereDate('schedule_timing', '=', $currentDateTime)->latest()->limit(3)->get()->toArray();
// If there are no quizzes scheduled for today or if any one quiz is inactive, fetch past quizzes
if (count($todayQuizzes) === 0 || count($todayQuizzes) < 3) {
$remainingSlots = 3 - count($todayQuizzes);
$pastQuizzes = ManageQuizQuestion::with('answer')->where('is_active', '1')->whereDate('schedule_timing', '<', $currentDateTime)->inRandomOrder()->limit($remainingSlots)->get()->toArray();
// Merge today's and past quizzes
$data = array_merge($todayQuizzes, $pastQuizzes);
} else {
// If there are quizzes scheduled for today, use those
$data = $todayQuizzes;
}
if (empty($data)) {
return response()->json([
'success' => true,
'message' => 'No quiz found.',
'result' => []
]);
}
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
}
public function storeQuizPoints(Request $request){
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$currentDate = now()->toDateString(); // Extracting only the date part
// dd($currentDate);
$existingRecord = UserQuizPoints::whereDate('created_at', $currentDate)
->where('user_id', $user_id)
->first();
// dd($existingRecord);
$points = $request->points*10;
if ($existingRecord == null) {
UserQuizPoints::create(['user_id'=>$user_id,'quize_points'=>$points,'is_active'=>'1']);
$leaderboard = LeaderboardMaster::where('user_id', $user_id)->first();
$leaderboard->total_score += $points;
$leaderboard->save();
return response()->json([
'success' => true,
'message' => 'Points Adeed Succefully'
]);
}else{
return response()->json([
'success' => true,
'message' => 'Points Already Added'
]);
}
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
public function getUerQuizpoints(){
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$currentDate = now()->toDateString(); // Extracting only the date part
// dd($currentDate);
$userQuizPoints = UserQuizPoints::whereDate('created_at', $currentDate)
->where('user_id', $user_id)->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $userQuizPoints
]);
// dd($existingRecord);
}else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageRateUs;
use App\Models\ManageFeedback;
use Illuminate\Support\Facades\File;
use Auth;
class RateUsController extends Controller
{
public function getData(){
$result = ManageRateUs::where('is_active','1')->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result
]);
}
public function updateRateUs(Request $request) {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user = auth()->user();
$existingRecord = ManageRateUs::where('user_id', $user_id)->first();
if ($existingRecord) {
// If the record exists, update it
$existingRecord->update(['rate_us' => $request->rate_us]);
$data = $existingRecord;
} else {
$data = ManageRateUs::create([
'user_id' => $user_id,
'rate_us' => $request->rate_us,
]);
}
$message = $existingRecord ? 'Data updated successfully.' : 'Data created successfully.';
return response()->json([
'success' => true,
'message' => $message,
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Something went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Auth;
use Validator;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
public function storeRegistrationData(Request $request)
{
// print_r("fghjkl");exit;
$validator = Validator::make($request->all(),[
'full_name'=> 'required',
'contact_number'=> 'required',
'email_id'=> 'required|unique:users,email_id',
'password'=> 'required|confirmed',
'address'=> 'required',
'fitness_goal'=> 'required',
'hear_about_us'=> 'required',
]);
if ($validator->fails()) {
return response()->json([
'error'=>$validator->errors()], 401);
}
$data = new User;
$data->full_name = $request->input('full_name');
$data->contact_number = $request->input('contact_number');
$data->email_id = $request->input('email_id');
$data->password = Hash::make($request->input('password'));
$data->address = $request->input('address');
$data->fitness_goal = $request->input('fitness_goal');
$data->hear_about = $request->input('hear_about_us');
$register = $data->save();
if($register == 1){
return response()->json([
'success' => true,
'status'=>200,
'message'=> 'User Register Successfully',
]);
}else{
return response()->json([
'success' => true,
'error'=>400,
'message'=> 'Please Try Again',
]);
}
}
}

View File

@@ -0,0 +1,81 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ShareYourThought;
use App\Models\User;
use App\Models\UserThought;
use Auth;
class ShareYourThoughtsController extends Controller {
public function add_thoughts(Request $request) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$user = auth()->user();
// print_r($user);exit;
// check validation
// $validator = Validator::make($request->all(), [
// 'rating' => 'required|integer|min:1|max:5',
// ]);
// if ($validator->fails()) {
// return response()->json([
// 'error' => $validator->errors()], 401);
// }
$thoughts = new ShareYourThought;
$thoughts->rating = $request->input('rating');
$thoughts->user_id = $user_id;
$thoughts->save();
$msg = "Thank You Review Added Successfully.";
return response()->json([
'success' => true,
'message' => $msg,
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("Update Complete/Update Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_thought_id() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
// $user_id = $token['sub'];
$data = UserThought::where('is_active', '1')->inRandomOrder()->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
}

View File

@@ -0,0 +1,220 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageShortClips;
use App\Models\ShortClipsLikes;
use Illuminate\Support\Facades\Log;
//use App\Models\User;
use Validator;
use db;
class ShortClipsController extends Controller {
// public function store_short_clips(Request $req) {
//
// $validator = Validator::make($req->all(), [
// 'video_title' => 'required',
// 'video_description' => 'required',
// 'video_url' => 'required',
// ]);
// if ($validator->fails()) {
// return response()->json([
// 'error' => $validator->errors()], 401);
// }
// $shortclips = new ManageShortClips();
// $shortclips->video_title = $req->input('video_title');
// $shortclips->video_description = $req->input('video_description');
// $shortclips->video_url = $req->input('video_url');
// $shortclips->thumbnail = $req->input('thumbnail');
// $storeclips = $shortclips->save();
// if ($storeclips == 1) {
// return response()->json([
// 'success' => true,
// 'status' => 200,
// 'message' => 'Short Clips Added Successfully',
// ]);
// } else {
// return response()->json([
// 'success' => true,
// 'error' => 400,
// 'message' => 'Please Try Again',
// ]);
// }
// }
public function like_short_clips(Request $request) {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// dd($user_id);
// check validation
$validator = Validator::make($request->all(), [
'short_clips_id' => 'required',
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()], 401);
}
// check validation end
$like = ShortClipsLikes::where('user_id', $user_id)
->where('short_clips_id', $request->short_clips_id)
->first();
if (!empty($like)) {
if ($like->is_like == '0') {
$like->is_like = '1';
$like->is_active = '0';
$like->update();
$manage_likes = ManageShortClips::where('id', $request->short_clips_id)->first();
if ($manage_likes->likes > 0) {
$manage_likes->likes = $manage_likes->likes - 1;
$manage_likes->update();
}
return response()->json([
'message' => 'you unliked'
], 200);
} else {
$like->is_like = '0';
$like->is_active = '1';
$like->update();
$manage_likes = ManageShortClips::where('id', $request->short_clips_id)->first();
$manage_likes->likes = $manage_likes->likes + 1;
$manage_likes->update();
return response()->json([
'message' => 'you liked'
], 200);
}
} else {
$like = new ShortClipsLikes();
$like->user_id = $user_id;
$like->is_active = '1';
$like->short_clips_id = $request->short_clips_id;
if ($like->save()) {
$manage_likes = ManageShortClips::where('id', $request->short_clips_id)->first();
$manage_likes->likes = $manage_likes->likes + 1;
$manage_likes->update();
return response()->json([
'message' => 'You Like a post',
], 201);
} else {
return response()->json([
'message' => "please try again"
], 500);
}
}
return response()->json([
'success' => true,
'message' => 'likes added successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_short_clips_by_id($id) {
// print_r("dfghjk");
$get_short_clips = ManageShortClips::find($id);
// print_r($get_short_clips);
// exit;
}
public function update_short_clips(Request $request) {
$validator = Validator::make($request->all(), [
'likes' => 'required',
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()], 401);
}
$shortclips = ManageShortClips();
$shortclips->likes = $req->input('likes');
$storeclips = $shortclips->save();
if ($storeclips == 1) {
return response()->json([
'success' => true,
'status' => 200,
'message' => 'Short Clips Added Successfully',
]);
} else {
return response()->json([
'success' => true,
'error' => 400,
'message' => 'Please Try Again',
]);
}
}
public function get_short_clips() {
$token = readHeaderToken();
if ($token) {
// $userid = auth()->user();
$shortdata = ManageShortClips::where('is_active','1')->get();
foreach ($shortdata as $k => $val) {
$shortdata[$k]['thumbnail'] = ListingImageUrl('short_clips', $val['thumbnail']);
}
// print_r($shortdata);
// exit;
return response([
'user' => $shortdata,
// 'token' => $user->createToken('secret')->plainTextToken
], 200);
}
}
public function get_short_clips_likes(){
// try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = ShortClipsLikes::with('shortClicpLikes')->where('user_id', $user_id)->where('is_active','1')->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
// } catch (\Exception $e) {
// \Log::error("User data listing Failed : " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something Went wrong.',
// ]);
// }
}
}

View File

@@ -0,0 +1,124 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\DailyStepsCount;
use APP\Models\User;
use Carbon\Carbon;
use App\Models\LeaderboardMaster;
use Illuminate\Support\Facades\Log;
class StepCountController extends Controller
{
public function store_step_count(Request $request){
// dd($request->step_count);
$token = readHeaderToken();
if ($token) {
$stepCount = $request->step_count;
$userId = $token['sub'];
// dd($userId);
$server_date = Carbon::now()->toDateString();
$user_date = $request->date;
if($user_date == null){
$date = $server_date;
}else{
$date = $user_date;
}
$dailyStepCount = DailyStepsCount::where('user_id', $userId)
->where('date', $date)
->first();
// dd($dailyStepCount);
Log::info("dailyStepCount found at that date");
// dd($dailyStepCount->step_count);
if ($dailyStepCount) {
$oldStepCounts = $dailyStepCount->step_count;
$oldPoints = $dailyStepCount->points;
// if($oldStepCounts > $stepCount){
// $stepCount = $oldStepCounts + $stepCount;
// }
// if($device !== "android") {
// if($stepCount>$oldStepCounts){
$dailyStepCount->update(['step_count' => $stepCount]);
// }
// }else{
// $dailyStepCount->update(['step_count' => $stepCount]);
// }
$latestSteps = $dailyStepCount->step_count;
// Update the step count for the current date and update points
$latestPoints = intval(floor($latestSteps/1000));
if($latestPoints > $oldPoints){
$currentPoints = $latestPoints - $oldPoints;
//update points
$dailyStepCount->update(['points' => $latestPoints]);
$leaderboardMaster = LeaderboardMaster::where('user_id', $userId)->first();
if ($leaderboardMaster) {
// $latestPoints = $latestPoints*5;
$leaderboardMaster->total_score += 5*$currentPoints;
$leaderboardMaster->save();
}
}
$updated_step_counts = $points = intval(floor($dailyStepCount->step_count/1000));
$updated_points = $dailyStepCount->points;
if($updated_step_counts < $updated_points){
$leaderboardMaster = LeaderboardMaster::where('user_id', $userId)->first();
if ($leaderboardMaster) {
$leaderboardMaster->total_score -= 5*$updated_points;
$leaderboardMaster->total_score += 5*$updated_step_counts;
$leaderboardMaster->save();
}
$dailyStepCount->update(['points' => $updated_step_counts]);
}
} else {
Log::info("New user Creating");
// Create a new record for the new day
$points = intval(floor($stepCount/1000));
$newDailyStepCount = new DailyStepsCount([
'user_id' => $userId,
'date' => $date,
'step_count' => $stepCount,
'points' => $points,
]);
$newDailyStepCount->save();
$leaderboardMaster = LeaderboardMaster::where('user_id', $userId)->first();
if ($leaderboardMaster) {
$leaderboardMaster->total_score += 5*$points;
$leaderboardMaster->save();
}
}
return response(['status' => "Success"], 200);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Testimonial;
use App\Models\TestimonialImages;
use Validator;
class TestimonialController extends Controller
{
public function get_Testimonial() {
$token = readHeaderToken();
if ($token) {
$testdata = Testimonial::with('testimonial_data')->inRandomOrder()->get();
// echo "<pre>";
// print_r($testdata);
// exit;
// foreach ($testdata as $val) {
// foreach($val['testimonial_data'] as $k =>$image){
// $testdata[$k]['image'] = ListingImageUrl('testimonial', $val['image']);
// }
// }
return response([
'user' => $testdata,
], 200);
}
}
public function store_testimonial(Request $req) {
$validator = Validator::make($req->all(), [
'user_name' => 'required',
'image' => 'required|image|mimes:jpg,png,jpeg,gif',
'title' => 'required',
'description' => 'required',
'rating' => 'required',
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors()], 401);
}
$testimonials = new Testimonial();
$testimonials->user_name = $req->input('user_name');
// $testimonials->image = $req->input('image');
$testimonials->title = $req->input('title');
$testimonials->description = $req->input('description');
$testimonials->rating = $req->input('rating');
if ($req->hasFile('image')) {
$file = $req->file('image');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/testimonial/';
$file->move($path, $file_name);
$testimonials->image = url('/public/uploads/testimonial/' . $file_name);
}
$storetestimonial = $testimonials->save();
if ($storetestimonial == 1) {
return response()->json([
'success' => true,
'status' => 200,
'message' => 'Testimonial Added Successfully',
]);
} else {
return response()->json([
'success' => true,
'error' => 400,
'message' => 'Please Try Again',
]);
}
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\File;
use Auth;
class UserController extends Controller
{
public function userSubscriptionData(){
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// dd($user_id);
$result = User::where('id', $user_id)->where('is_active', '0')->first(['id', 'utm_source', 'start_date', 'end_date']);
if ($result) {
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $result
]);
} else {
return response()->json([
'success' => false,
'message' => 'User not found.'
], 404);
}
} else {
return response()->json([
'success' => false,
'message' => 'Token not provided.'
], 401);
}
}
public function delete_user() {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
// dd($user_id);
$user = User::find($user_id);
// dd($user);
if ($user) {
$data = $user->delete();
if ($data) {
return response()->json([
'success' => true,
'message' => 'User deleted successfully.',
'result' => $user
]);
} else {
return response()->json([
'success' => false,
'message' => 'Failed to delete user.'
], 500);
}
} else {
return response()->json([
'success' => false,
'message' => 'User not found.'
], 404);
}
} else {
return response()->json([
'success' => false,
'message' => 'Token not provided.'
], 401);
}
}
}

View File

@@ -0,0 +1,329 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\UserOverView;
use App\Models\LeaderboardMaster;
use App\Models\User;
use App\Models\UserDetail;
use Illuminate\Support\Carbon;
use Validator;
use Auth;
use App\Models\ActivityMaster;
class UserOverviewController extends Controller {
public function add_user_overview(Request $req) {
try {
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$todaysDate = Carbon::now()->toDateString();
// dd($todaysDate);
$oldUserRankings = LeaderboardMaster::with('user')->get();
$result = UserOverView::where("user_id", $user_id)
->where('created_at', $todaysDate)
// ->orderBy('created_at', 'desc')
->exists();
if ($result) {
$lastOverview = UserOverView::where('user_id', $user_id)
->orderBy('created_at', 'desc')
// ->skip(1)
->first();
UserOverView::where('user_id', $user_id)
->whereDay('created_at', now()->day)
->update([
"muscle_rate" => $req->muscle_rate,
"body_fat" => $req->body_fat,
"skeletal_muscle" => $req->skeletal_muscle,
"protein" => $req->protein,
"bmr" => $req->bmr,
"water" => $req->water,
"age" => $req->age,
"weight" => $req->weight,
]);
$points = (100 - $req->body_fat) + $req->muscle_rate;
$leaderboard = LeaderboardMaster::where('user_id', $user_id)->first();
if ($leaderboard) {
// $lastOverview = UserOverView::where('user_id', $user_id)
// ->orderBy('created_at', 'desc')
// // ->skip(1)
// ->first();
if ($lastOverview) {
$pointsToDeduct = (100 - $lastOverview->body_fat) + $lastOverview->muscle_rate;
$leaderboard->total_score -= $pointsToDeduct;
// dd($leaderboard);
// Ensure total_score is not negative
if ($leaderboard->total_score < 0) {
$leaderboard->total_score = 0;
}
}
$leaderboard->total_score += $points;
}
$leaderboard->save();
$msg = "User Overview Updated Successfully.";
} else {
$tellobj = new UserOverView();
$tellobj->user_id = $user_id;
$tellobj->muscle_rate = $req->muscle_rate;
$tellobj->body_fat = $req->body_fat;
$tellobj->skeletal_muscle = $req->skeletal_muscle;
$tellobj->protein = $req->protein;
$tellobj->bmr = $req->bmr;
$tellobj->water = $req->water;
$tellobj->age = $req->age;
$tellobj->weight = $req->weight;
$tellobj->save();
// Calculate points based on body_fat and muscle_rate
$points = (100 - $req->body_fat) + $req->muscle_rate ;
$userDetails = UserDetail::where('user_id', $user_id)->first();
if ($userDetails && $userDetails->gender == 'female') {
$points += 25;
}else{
$points += 1;
}
$leaderboard = LeaderboardMaster::where('user_id', $user_id)->first();
if ($leaderboard) {
// Deduct points from yesterday's overview
$lastOverview = UserOverView::where('user_id', $user_id)
->orderBy('created_at', 'desc')
->skip(1)
->first();
if ($lastOverview) {
$pointsToDeduct = (100 - $lastOverview->body_fat) + $lastOverview->muscle_rate ;
$leaderboard->total_score -= $pointsToDeduct;
// Ensure total_score is not negative
if ($leaderboard->total_score < 0) {
$leaderboard->total_score = 0;
}
}
$leaderboard->total_score += $points;
} else {
$leaderboard = new LeaderboardMaster();
$leaderboard->user_id = $user_id;
$leaderboard->total_score = $points;
}
$leaderboard->save();
$msg = "User Overview Added Successfully.";
}
// Decrease 5 point for every 3 days since the previous overview
$lastOverview = UserOverView::where('user_id', $user_id)
->orderBy('created_at', 'desc')
->skip(1)
->first();
if ($lastOverview) {
$daysSinceLastOverview = $lastOverview->created_at->diffInDays(now());
$pointsToDeduct = floor($daysSinceLastOverview / 3);
$leaderboard = LeaderboardMaster::where('user_id', $user_id)->first();
if ($leaderboard) {
$leaderboard->total_score -= $pointsToDeduct;
$leaderboard->save();
}
}
$newUserRanking = LeaderboardMaster::where('user_id',$user_id)->first();
if ($oldUserRankings && $newUserRanking) {
foreach ($oldUserRankings as $ranking) {
$previousTotalScore = $ranking->total_score;
$currentTotalScore = $newUserRanking->total_score;
if($ranking->user_id==$user_id){
if ($previousTotalScore === null) {
$ranking->progress_bar = '0'; // Initial entry
} elseif ($currentTotalScore > $previousTotalScore) {
$ranking->progress_bar = '0'; // Total score increased
$message = "You earned 1 point!";
} elseif ($currentTotalScore < $previousTotalScore) {
$ranking->progress_bar = '1'; // Total score decreased
$message = "Your score decreased.";
} else {
$ranking->progress_bar = '2'; // Total score remained the same
$message = "Your score remains the same.";
}
$ranking->save(); // Save the updated progress_bar value
}
}
// dd($userRanking,$newUserRanking);
return response()->json([
'success' => true,
'message' => $msg,
'progress_bar' => $message,
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
}
}catch (\Exception $e) {
\Log::error("Update Complete/Update Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function get_user_overview_by_id() {
try {
// print_r(User::first()->user);exit;
$token = readHeaderToken();
if ($token) {
$user_id = $token['sub'];
$data = UserOverView::where('user_id', $user_id)->get();
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'result' => $data
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function show_user_overview(Request $request) {
// dd($request->created_at);
// try {
$token = readHeaderToken();
if ($token) {
// dd($request->created_at);
$user_id = $token['sub'];
if($request->created_at)
{
$data = UserOverView::where('user_id',$user_id)->where('created_at', $request->created_at)->first();
}else{
$data = UserOverView::where('user_id',$user_id)->get();
}
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'authorisation' => [
'user_data' => $data
]
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
// } catch (\Exception $e) {
// \Log::error("User data listing Failed : " . $e->getMessage());
// return response()->json([
// 'success' => false,
// 'message' => 'Something Went wrong.',
// ]);
// }
}
public function showUserOverview_new(Request $request){
// dd($request->created_at);
try {
$token = readHeaderToken();
if ($token) {
// dd($request->created_at);
$user_id = $token['sub'];
if($request->created_at)
{
$data = UserOverView::where('user_id',$user_id)->where('created_at', $request->created_at)->first();
}else{
if($request->data == "week"){
$last7Days = Carbon::now()->subDays(7);
$data = UserOverView::where('user_id',$user_id)->where('created_at','>=',$last7Days)->get();
}elseif($request->data == "month"){
$last30Days = Carbon::now()->subDays(30);
$data = UserOverView::where('user_id',$user_id)->where('created_at','>=',$last30Days)->get();
}elseif($request->data == "year"){
$lastYear = Carbon::now()->subYear();
// dd($lastYear);
$data = UserOverView::where('user_id',$user_id)->where('created_at','>=',$lastYear)->get();
}
}
return response()->json([
'success' => true,
'message' => 'Data fetched successfully.',
'authorisation' => [
'user_data' => $data
]
]);
} else {
return response()->json([
'success' => false,
'message' => 'Authentication failed.',
]);
}
} catch (\Exception $e) {
\Log::error("User data listing Failed : " . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'Something Went wrong.',
]);
}
}
public function resetPoints(){
$currentDate = date('Y-m-d');
$activityData = ActivityMaster::orderBy('id','desc')->first();
if($activityData){
$start_date = $activityData->start_date;
if($currentDate < $start_date){
$leaderBoaradData = LeaderboardMaster::all();
// dd($leaderBoaradData);
foreach($leaderBoaradData as $data){
LeaderboardMaster::where('user_id',$data->user_id)->update(['total_score' => 0]);
}
return response()->json([
'success' => true,
'message' => 'Reset Succefully'
],200);
}else{
return response()->json([
'success' => true,
'message' => 'Season is not end yet!'
],201);
}
}else{
return response()->json([
'success' => flase,
'message' => 'No Activity Found'
],404);
}
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ViewDevicesOneSignalController extends Controller
{
function fetchDevices() {
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://onesignal.com/api/v1/players?app_id=1be4b99b-8faa-45b8-ad82-c66225d77bf4&limit=10&offset=0', [
'headers' => [
'Authorization' => 'Basic MWM2NGEyODUtN2U5MS00MzlkLWJhYmItZGUyODRjYTlmNGJm',
'accept' => 'text/plain',
],
]);
return $response->getBody();
}
}

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageAboutUsService;
use Illuminate\Http\Request;
class AboutUsController extends Controller
{
public function __construct(ManageAboutUsService $manageAboutUsService)
{
$this->manageAboutUsService = $manageAboutUsService;
}
public function view_about_us(){
$about_us['about_us'] = $this->manageAboutUsService->view_about_us()->toArray();
// echo "<pre>";
// print_r($about_us);
// echo "</pre>";exit;
// dd($about_us);
return view('Admin.Pages.manage_cms.about_us.about_us',$about_us);
}
public function edit_about_us($id)
{
$about_us['about_us'] = $this->manageAboutUsService->edit_about_us($id)->toArray();
// echo "<pre>";
// print_r($about_us);
// echo "</pre>";exit;
return view('Admin.Pages.manage_cms.about_us.edit_about_us',$about_us);
}
public function update_about_us(Request $request)
{
$edit_about_us = $this->manageAboutUsService->update_about_us($request);
if(!empty($edit_about_us))
{
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
}
}

View File

@@ -0,0 +1,305 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\ActivityDay;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\LinkFaqActivityMasterIds;
use App\Models\PastSession;
use File;
use Carbon\Carbon;
use Illuminate\Support\Facades\Validator;
class ActivityDaysController extends Controller {
// public function show($id){
//
// $manage_activity_day = ActivityDay::where('activity_schedule_id', $id)->with('scheduleData','activityData')
//// ->where('start_date', '<=',$current_day)
//// ->where('end_date', '>=',$current_day)
//// ->where()
// ->get()
// ->toArray();
//// echo "<pre>"; print_r($manage_activity_day);exit;
// return view('Admin.Pages.manage_activities.activity_days.activity_days')->with(['manage_activity_day' => $manage_activity_day]);
// }
public function show($id) {
$current_day = now()->format('Y-m-d'); // Get the current date in the format "YYYY-MM-DD"
$manage_activity_day = ActivityDay::where('activity_schedule_id', $id)
->with('scheduleData', 'activityData')
->where('date', 'LIKE', "%$current_day%") // Check if the current date is present in the "days" column
->get()
->toArray();
return view('Admin.Pages.manage_activities.activity_days.activity_days')->with(['manage_activity_day' => $manage_activity_day]);
}
public function add($id) {
// dd($id);
$get_single_schedule = ActivitySchedule::find($id)->toArray();
// echo '<pre>';print_r($get_single_schedule);exit;
// dd($get_single_schedule);
$subcription = SubscriptionMaster::all()->toArray();
return view('Admin.Pages.manage_activities.activity_days.add_activity_days')->with(['get_schedule_data' => $get_single_schedule, 'subcriptions' => $subcription]);
}
public function add_upcoming($id) {
$get_single_schedule = ActivitySchedule::find($id)->toArray();
// echo '<pre>';print_r($get_single_schedule);exit;
$subcription = SubscriptionMaster::all()->toArray();
return view('Admin.Pages.manage_activities.activity_days.add_upcoming_activity_day')->with(['get_schedule_data' => $get_single_schedule, 'subcriptions' => $subcription]);
}
public function add_data(Request $request) {
// echo '<pre>';
// print_r($request->all());
// exit;
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_day';
$file->move($path, $file_name);
}
$activity_day = new ActivityDay;
$activity_day->activity_master_id = $request->input('activity_id');
$activity_day->activity_schedule_id = $request->input('schedule_id');
$activity_day->activity_name = $request->input('main_activity_name');
$activity_day->activity_teaser = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
$activity_day->activity_duration = $request->input('activity_duration');
$activity_day->description = $request->input('description');
$activity_day->date = $request->input('date');
$activity_day->day = $request->input('day');
$activity_day->time = $request->input('time');
$activity_day->zoom_link = $request->input('zoom_link');
$activity_day->subscription_id = $request->input('subscription_id');
$date = strtotime($request->input('date'));
// Retrieve the ActivityMaster record
$activity_schedule = ActivitySchedule::find($request->input('schedule_id'));
$activity_shedule_start_date = strtotime($activity_schedule->start_date);
$activity_shedule_end_date = strtotime($activity_schedule->end_date);
if ($date >= $activity_shedule_start_date && $date <= $activity_shedule_end_date) {
$activity_day->save();
return response()->json([
'schedule_data' => $activity_day->activity_schedule_id,
'success' => true,
'status' => 200,
]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function add_upcoming_data(Request $request) {
// echo '<pre>';
// print_r($request->all());
// exit;
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_day';
$file->move($path, $file_name);
}
$activity_day = new ActivityDay;
$activity_day->activity_master_id = $request->input('activity_id');
$activity_day->activity_schedule_id = $request->input('schedule_id');
$activity_day->activity_name = $request->input('main_activity_name');
$activity_day->activity_teaser = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
$activity_day->activity_duration = $request->input('activity_duration');
$activity_day->description = $request->input('description');
$activity_day->date = $request->input('date');
$activity_day->day = $request->input('day');
$activity_day->time = $request->input('time');
$activity_day->subscription_id = $request->input('subscription_id');
$activity_day->zoom_link = $request->input('zoom_link');
$date = strtotime($request->input('date'));
// Retrieve the ActivityMaster record
$activity_schedule = ActivitySchedule::find($request->input('schedule_id'));
$activity_shedule_start_date = strtotime($activity_schedule->start_date);
$activity_shedule_end_date = strtotime($activity_schedule->end_date);
if ($date >= $activity_shedule_start_date && $date <= $activity_shedule_end_date) {
$activity_day->save();
return response()->json([
'schedule_data' => $activity_day->activity_schedule_id,
'success' => true,
'status' => 200,
]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function edit_activity_day($id) {
$manage_activity_day = ActivityDay::where('id', $id)->with('scheduleData', 'activityData')
->get()
->toArray();
// echo "<pre>"; print_r($manage_activity_day);exit;
// return view('Admin.Pages.manage_activities.activity_days.activity_days')->with(['manage_activity_day' => $manage_activity_day]);
// }
$subcription = SubscriptionMaster::all()->toArray();
return view('Admin.Pages.manage_activities.activity_days.edit_activity_days')->with(['manage_activity_day' => $manage_activity_day, 'subcriptions' => $subcription]);
}
//upcoming edit
public function edit_upcoming_activity_day($id) {
$manage_activity_day = ActivityDay::where('id', $id)->with('scheduleData', 'activityData')
->get()
->toArray();
$subcription = SubscriptionMaster::all()->toArray();
return view('Admin.Pages.manage_activities.activity_days.edit_upcoming_activity_day')->with(['manage_activity_day' => $manage_activity_day, 'subcriptions' => $subcription]);
}
public function edit_activity_day_data(Request $request) {
// echo '<pre>';
// print_r($request->all());
// exit;
$activity_day = ActivityDay::find($request->edit_main_activity_id);
$activity_day->activity_name = $request->input('activity_name');
if ($request->file('activity_teaser')) {
$rules = [
'activity_teaser' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('activity_teaser');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_day/';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
$activity_day->activity_teaser = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
}
// print_r($file_name_store);exit;
}
$activity_day->activity_duration = $request->input('activity_duration');
$activity_day->description = $request->input('description');
$activity_day->date = $request->input('date');
$activity_day->day = $request->input('day');
$activity_day->time = $request->input('time');
$activity_day->zoom_link = $request->input('zoom_link');
$activity_day->subscription_id = $request->input('subscription_id');
$activity_day->save();
return response()->json(['success' => true, 'status' => 200,'day_data'=>$request->activity_schedule_master_id]);
}
public function edit_upcoming_activity_day_data(Request $request) {
// echo '<pre>';
// print_r($request->all());
// exit;
$activity_day = ActivityDay::find($request->edit_main_activity_id);
$activity_day->activity_name = $request->input('activity_name');
if ($request->activity_teaser) {
$rules = [
'activity_teaser' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('activity_teaser');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_day/';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
$activity_day->activity_teaser = url('/public/uploads/activity_banner_images/activity_day/' . $file_name);
}
// print_r($file_name_store);exit;
}
$activity_day->activity_duration = $request->input('activity_duration');
$activity_day->description = $request->input('description');
$activity_day->date = $request->input('date');
$activity_day->day = $request->input('day');
$activity_day->time = $request->input('time');
$activity_day->zoom_link = $request->input('zoom_link');
$activity_day->subscription_id = $request->input('subscription_id');
$activity_day->save();
return response()->json(['success' => true, 'status' => 200,'day_data'=>$request->activity_schedule_master_id]);
}
public function upcomimg_days_show($id) {
$current_day = now()->format('Y-m-d'); // Get the current date in the format "YYYY-MM-DD"
$manage_activity_day = ActivityDay::where('activity_schedule_id', $id)
->with('scheduleData', 'activityData')
->where('date', '>', "$current_day") // Check if the current date is present in the "days" column
->get()
->toArray();
return view('Admin.Pages.manage_activities.activity_days.upcoming_activity_days')->with(['manage_activity_day' => $manage_activity_day]);
}
public function delete_activity_days($id) {
// print_r($id);
// exit;
$manage_activity_days = ActivityDay::find($id)->delete();
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\LeaderboardMaster;
use Auth;
class DashboardController extends Controller
{
// public function index(){
//// $userCount = User::count();
// return view('Admin.dashboard')->with(['user_count' => $userCount]);
// }
public function view_dashboard() {
// dd(Auth::user());
$manage_dashboard = LeaderboardMaster::with('user')
->whereHas('user')
->orderBy('total_score', 'desc') // Use 'asc' for ascending order
->get()
->toArray();
// echo "<pre>";
// print_r($manage_dashboard);
// exit();
// Sort the $manage_dashboard array by the 'total_score' attribute in descending order
// usort($manage_dashboard, function($a, $b) {
// return $b['total_score'] <=> $a['total_score'];
// });
return view('Admin.dashboard')->with(['manage_dashboard' => $manage_dashboard]);
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\UserDetail;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\UserImport;
use Hash;
class DirectUserController extends Controller
{
public function users(){
$data = User::with('user_detail')->get()->toArray();
// dd($data);
return view('Admin.Pages.direct_users.direct_user')->with(['user_data'=> $data]);
}
public function import(Request $request)
{
try {
$validation = $request->validate([
'csv_file' => 'required|mimes:csv,txt,xlsx',
]);
// dd($request->all());
// Use try-catch to handle exceptions thrown by Excel::import
// try {
Excel::import(new UserImport, $request->file('csv_file'));
return response()->json(['success' => true, 'status' => 200]);
// } catch (ValidationException $e) {
// // Catch the validation exception and extract errors
// $errors = $e->validator->errors()->toArray();
// return response()->json(['errors' => $errors], 422); // 422 Unprocessable Entity
// }
} catch (\Exception $e) {
return response()->json(['error' => 'Error importing data: ' . $e->getMessage()], 500);
}
}
}

View File

@@ -0,0 +1,346 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\AdminMaster;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Support\Facades\Mail;
use App\Mail\SignInOtpMail;
use Illuminate\Support\Facades\Session;
use Crypt;
use Hash;
use DateTime;
use DateTimeZone;
use DateInterval;
// use Auth;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller {
public function create()
{
return view('Admin.sign_in');
}
public function getOTP()
{
$data = array();
$data['data'] = $_GET['d'];
// echo"<pre>"; print_r($data);exit;
return view('Admin.two_steps',$data);
}
// public function sendOtp(Request $request)
// {
// try {
// $msg_data = array();
// $validationErrors = $this->validateLogin($request);
// if (count($validationErrors)) {
// \Log::error("Auth Exception: " . implode(", ", $validationErrors->all()));
// $msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all()));
// return response()->json($msg_data);
// }
// $email = trim(strtolower($request->email));
// //check admin exist with this email or not
// $admin_exits = AdminMaster::where('email_id', $email)->get();
// // echo "<pre>";
// // print_r($admin_exits[0]->password);
// // die;
// if (empty($admin_exits)) {
// $msg_data['data'] = array(
// "success" => '0',
// "message" => "Admin does not exist");
// return response()->json($msg_data);
// }
// //verifying password from table
// $password = md5($request->password);
//
// // print_r($admin_exit."<br>");
// if ($password == $admin_exits[0]->password)
// {
// $admin_data = AdminMaster::where('email_id', $email)->where('pin', $request->digit_pin)->first();
// if (empty($admin_data))
// {
// \Log::error("Admin not found with this email id and pin is incorrect.");
// $msg_data['data'] = array("success" => '0', "message" => "Please enter correct pin!");
// return response()->json($msg_data);
// }
//
// if ($admin_data->is_active == 1) {
// // print_r($admin_data->is_active);
// // die;
// // \Log::info("Login Successful!");
// $enc_data = Crypt::encrypt($email);
// // print_r($enc_data);
// // die;
// //update otp to table
// $otp_data = array();
// $otp_data['otp'] = $otp = generateRandomOTP();
// $checkOtp = AdminMaster::where('email_id', $email)->first();
// $update_otp = AdminMaster::find($checkOtp->id); //->update($otp_data);
// $update_otp->otp = $otp;
// $update_otp->save();
// // print_r($update_otp);
// // die;
//
// //send email otp section start
// // $body = "Login Verification, please use the verification code to sign in Code " . $otp;
// // Mail::send("Admin.auth.send_otp", ['body'=> $body], function ($message) use ($email) {
// // $message->from('pradyumn@wdimails.com', 'WOKA');
// // $message->to($email, 'WOKA')->subject('Woka Sign in OTP');
// // });
//
// $msg_data['data'] = array("success" => '1', "message" => "OTP has been sent to your mails. " . $otp, "redirect" => "two_step", "email" => $enc_data);
// return response()->json($msg_data);
// } else {
// \Log::error("Account Suspended.");
// $msg_data['data'] = array("success" => '0', "message" => 'Account is suspended.');
// return response()->json($msg_data);
// }
// return response()->json($msg_data);
// } else
// {
// $msg_data['data'] = array("success" => '0', "message" => 'Incorrect Password.');
// return response()->json($msg_data);
// }
// return response()->json($msg_data);
// } catch (\Exception $e) {
// \Log::error("Login failed: " . $e->getMessage());
// return response()->json(array("success" => '0', "message" => 'Something Went Wrong.'));
// }
// }
public function sendOtp(Request $request)
{
try {
$msg_data = array();
$validationErrors = $this->validateLogin($request);
// print_r($validationErrors); exit;
if (count($validationErrors)) {
\Log::error("Auth Exception: " . implode(", ", $validationErrors->all()));
$msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all()));
return response()->json($msg_data);
}
$email = trim(strtolower($request->email));
//check admin exist with this email or not
$admin_exits = AdminMaster::where('email_id', $email)->first();
// print_r($admin_exits); exit;
if (empty($admin_exits)){
$msg_data['data'] = array(
"success" => '0',
"message" => "Admin does not exist!");
return response()->json($msg_data);
}
//verifying password from table
// print_r($admin_exits->password);exit;
//dd( (Hash::check(trim($request->password), $admin_exits->password) )
// ,$request->password,$admin_exits->password);
$verify_pass = Hash::check($request->password,$admin_exits->password);
// print_r($verify_pass); exit;
if ($verify_pass){
$admin_data = AdminMaster::where([['email_id', $email], ['pin', $request->digit_pin]])->first();
if (empty($admin_data)) {
\Log::error("Admin not found with this email id and pin is incorrect.");
$msg_data['data'] = array("success" => '0', "message" => "Please enter correct pin!");
return response()->json($msg_data);
}
if ($admin_data->is_active == 1) {
// \Log::info("Login Successful!");
$enc_data = Crypt::encrypt($email);
//update otp to table
$now = Carbon::now('Asia/Kolkata')->format('Y-m-d H:i:s');
$otp_data = array();
// generateRandomOTP();
$otp_data['otp'] = $otp = 1234;
$checkOtp = AdminMaster::where('email_id', $email)->first();
$update_otp = AdminMaster::find($checkOtp->id);//->update($otp_data);
$update_otp->otp = $otp;
$update_otp->updated_at = $now;
$update_otp->save();
//send email otp section start
$body = $otp;
$mail = Mail::send("Admin.Templates.sign_in_otp", ['body'=> $body], function ($message) use ($email) {
$message->from('getsetfit@gmail.com', 'GSF');
$message->to($email, 'GSF')->subject('Gsf Sign in OTP');
});
if ($mail){
$msg_data['data'] = array("success" => '1', "message" => "OTP has been sent to your mail.", "redirect" => "two_step", "email_id" => $enc_data);
return response()->json($msg_data);
}else{
$msg_data['data'] = array("success" => '0', "message" => "Failed to send OTP. Please try again later.");
return response()->json($msg_data);
}
}
else {
\Log::error("Account Suspended.");
$msg_data['data'] = array("success" => '0', "message" => 'Account is suspended.');
return response()->json($msg_data);
}
return response()->json($msg_data);
}
$msg_data['data'] = array("success" => '0', "message" => 'Incorrect Password!');
return response()->json($msg_data);
} catch (\Exception $e) {
\Log::error("Login failed: " . $e->getMessage());
$msg_data['data'] = array("success" => '0', "message" => 'Something Went Wrong!');
return response()->json($msg_data);
}
}
// * Uses : Validates input login request
public function validateLogin(Request $request)
{
return \Validator::make($request->all(),
[
'email' => 'required|email|string',
'password' => 'required|string',
'digit_pin' => 'required|digits:4'
],
[
'email.required' => 'Please enter your email.',
'password.required' => 'Please enter your password.',
'pin.required' => 'Please enter your pin.',
'digit_pin.digits' => 'Pin must be 4 digit only.'
])->errors();
}
public function verifyLogin(Request $request)
{
// print_r($request->all);exit;
try{
$msg_data = array();
$validationErrors = $this->validateVerifyLoginRequest($request);
if (count($validationErrors)) {
\Log::error("Auth Exception: " . implode(", ", $validationErrors->all()));
$msg_data['data'] = array("success" => '0', "message" => implode("\n", $validationErrors->all()));
return response()->json($msg_data);
}
$email = trim(strtolower(decrypt($request->d)));
// print_r($request->otp);
// die;
// $email = decrypt($request->email);
$admin_data = AdminMaster::where([['email_id', $email],['otp', $request->otp]])->first();
if(empty($admin_data)){
$msg_data['data'] = array("success" => '0', "message" => 'Invalid OTPd.');
return response()->json($msg_data);
}
// convert UTc time zone to local
$datetime = new DateTime($admin_data->updated_at);
$timezone = new DateTimeZone('Asia/Kolkata'); // or whatever zone you're after
$datetime->setTimezone($timezone);
$update_datetime = $datetime->format('Y-m-d H:i:s');
//add 5 minut to updated at
$minutes_to_add = 5;
$time = new DateTime($update_datetime);
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$timestamp = $time->format('Y-m-d H:i:s');
//current time
$now = Carbon::now('Asia/Kolkata')->format('Y-m-d H:i:s');
if($admin_data){
if($now > $timestamp){
$msg_data = array("success" => '0', "message" => 'OTP has been expired.');
return response()->json($msg_data);
}
else{
// if(!empty($admin_data)){
//creating session if otp is verified
$data = array(
"id"=>$admin_data->id,
"email_id"=>$email,
);
// print_r($data);
// die;
// session_start();
// $request->session()->put('data',$data);
// $sessionDetails = Session::put('data', $data);
Session::put('data', $data);
$request->session()->put('data',$data);
// $sessionDetails= session(['data' => $data]);
// dd($data,$sessionDetails);
// \Session::save();
// print_r(session('data'));exit;
// die;
$msg_data['data'] = array("success" => '1', "message" => 'Sign In Successfully.', "redirect" => "dashboard");
return response()->json($msg_data);
}
}else{
$msg_data = array("success" => '0', "message" => 'Invalid OTP.');
return response()->json($msg_data);
}
}catch (\Exception $e) {
\Log::error("Login failed: " . $e->getMessage());
return response()->json(array("success" => '0', "message" => 'Something Went Wrong.'));
}
}
public function validateVerifyLoginRequest(Request $request)
{
return \Validator::make($request->all(),
[
'otp' => 'required|digits:4',
],
[
'otp.required' => 'Please enter 4 digit OTP.',
'otp.digits' => 'OTP must be 4 digit.'
])->errors();
}
public function adminPostLogin(Request $request)
{
// print_r($request->all());
// exit;
$request->validate([
'email' => 'required',
'password' => 'required',
]);
$credentials = $request->only('email', 'password');
$admins = AdminMaster::where('email_id', $request->email)->first();
// dd($admins);
// $loginInfo = AdminMaster::where('email_id',$request->email)->first();
// dd($credentials,Auth::attempt($credentials));
// dd(Auth::login($admins));
// Auth::attempt(['email_id' => $request->email,'password' => $request->password]);
// dd(Auth::attempt(['email_id' => $request->email,'password'=> $request->password]));
if ($admins && Auth::guard('admin')->attempt(['email_id' => $request->email,'password'=> $request->password])) {
// dd(Auth::guard('admin')->attempt(['email_id' => $request->email,'password'=> $request->password]));
$user = Auth::guard('admin')->user();
// dd($user);
// $token = JWTAuth::fromUser($user); // Generate JWT token for the admin
// Store the token in the session
// Session::put('admin_token', $token);
return response(['success'=>true, 'message'=>"You Have Logged in Successfully"]);
// ->withHeaders(['X-admin-token' => $token]);
// return redirect()->intended('dashboard')->withSuccess('You have Successfully logged in');
}else{
return response(['success'=>false, 'message'=>"Invalid! Email or Password "]);
}
// return redirect()->route('login')->with('error', 'ddddInvalid email or password.');
// return redirect("login");
}
}

View File

@@ -0,0 +1,403 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\ActivityDay;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\LinkFaqActivityMasterIds;
use App\Models\PastSession;
use File;
use Carbon\Carbon;
use Illuminate\Support\Facades\Validator;
class ManageActivitiesController extends Controller {
public function show_schedule($id) {
$current_day = Carbon::now()->toDateString();
$manage_activity_schedule = ActivitySchedule::where('activity_master_id', $id)
->where('start_date', '<=',$current_day)
->where('end_date', '>=',$current_day)
->get()
->toArray();
// echo "<pre>"; print_r($manage_activity_schedule);exit;
return view('Admin.Pages.manage_activities.summer_sweats.summer_sweat')->with(['manage_activity_schedule' => $manage_activity_schedule]);
}
public function show_upcoming_schedule($id) {
$current_day = Carbon::now()->toDateString();
$manage_activity_schedule = ActivitySchedule::with('subscription')
->where('activity_master_id', $id)
->where('end_date', '>=',$current_day)
->get()
->toArray();
// echo "<pre>"; print_r($manage_activity_schedule);exit;
return view('Admin.Pages.manage_activities.summer_sweats.upcoming_summer_sweat')->with(['manage_activity_schedule' => $manage_activity_schedule]);
}
// public function index() {
// $add_past_session = PastSession::all()->toArray();
//// echo "<pre>"; print_r($add_past_session);exit;
// $manage_activity = ActivityMaster::with('subscription','schedule')->get()->toArray();
//// echo "<pre>";print_r($manage_activity);exit;
// $act_sch = array_column($manage_activity,'schedule');
//// echo "<pre>"; print_r($act_sch);exit;
// return view('Admin.Pages.manage_activities.manage_activity')->with(['data' => $manage_activity,'act_sch'=>$act_sch,'past_session'=>$add_past_session]);
// }
public function index() {
$add_past_session = PastSession::all()->toArray();
$currentDate = date('Y-m-d');
$schedule_data= [];
$manage_upcoming_activity = ActivityMaster::with('subscription', 'schedule')
// ->where('start_date', '<=', $currentDate)
->where('end_date', '>=', $currentDate)
->get()
->toArray();
$manage_live_activity = ActivityMaster::with('subscription', 'schedule')
->where('start_date', '<=', $currentDate)
->where('end_date', '>=', $currentDate)
->get()
->toArray();
// $act_sch = array_column($manage_activity, 'schedule');
// if($manage_activity){
// $activity_master_id = $manage_activity[0]['id'];
// $manage_activity_upcomimg = ActivitySchedule::with('subscription')
// ->where('activity_master_id',$activity_master_id)
// ->where('start_date', '>=' , $currentDate)
// ->get()
// ->toArray();
$manage_past_activity = ActivityMaster::with('subscription')
->where('start_date','<=',$currentDate)
->get()
->toArray();
// }
// echo "<pre>";print_r($manage_activity_past);exit;
// $past_data = [];
// foreach ($schedule_data as $value){
//
// $past_data[$value['id']] = PastSession::where('activity_schedule_id',$value['id'])->get()->toArray();
//// print_r($past_data);
//// exit;
//
// }
// echo '<pre>';print_r($past_data);exit;
// echo "<pre>";print_r($manage_activity_upcomimg);exit;
return view('Admin.Pages.manage_activities.manage_activity')
->with(['data' => $manage_upcoming_activity,'past_session' => $manage_past_activity,'live_data' => $manage_live_activity]);
}
public function insert_main_activity(Request $request) {
// dd($request->all());
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
//for benifit null value validation
foreach($request->benefits as $benefit){
if (is_null($benefit)) {
return response()->json(['success' => false,'status' => 403]);
}
}
//for pre_requisites null value validation
foreach($request->pre_requisites as $pre_requisites){
if (is_null($pre_requisites)) {
return response()->json(['success' => false,'status' => 402]);
}
}
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json([
'success' => false,
'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images';
$file->move($path, $file_name);
}
$activity_master = new ActivityMaster;
$activity_master->activity_name = $request->input('activity_name');
$activity_master->title = $request->input('activity_title');
$activity_master->main_activity_banner = url('/public/uploads/activity_banner_images/' . $file_name);
$activity_master->description = $request->input('description');
$activity_master->start_date = $request->input('start_date');
$activity_master->end_date = $request->input('end_date');
$activity_master->teacher_id = $request->input('teacher_id');
// $activity_master->teaser_url = $request->input('video_teaser_url');
$activity_master->benefits = json_encode($request->input('benefits'));
$activity_master->pre_requisites = json_encode($request->input('pre_requisites'));
$activity_master->subscription_id = $request->input('subscription_id');
$activity_master->save();
// dd($activity_master->id);
foreach ($request->input('faq_id') as $faq_id) {
$faqs_activity_Ids = new LinkFaqActivityMasterIds;
$faqs_activity_Ids->faqs_id = $faq_id;
$faqs_activity_Ids->activity_master_id = $activity_master->id;
$faqs_activity_Ids->save();
}
return response()->json([
'activity_data' => $activity_master->id,
'success' => true,
'status' => 200]);
}
public function create_main_activity() {
$subcription = SubscriptionMaster::all()->toArray();
$teacher = Teacher::all()->toArray();
$faqs = ManageFaq::all()->toArray();
return view('Admin.Pages.manage_activities.add_new_main_activities')->with(['subcriptions' => $subcription, 'teacher' => $teacher, 'faqs' => $faqs,]);
}
public function edit_main_activity($id) {
$subcription = SubscriptionMaster::all()->toArray();
$teacher_data = Teacher::all()->toArray();
$faqs_data = ManageFaq::all()->toArray();
$get_manage_activity = ActivityMaster::with('faq_activity_link')->where('id', $id)->first()->toArray();
$act_faq = array_column($get_manage_activity['faq_activity_link'], 'faqs_id');
// for benefits
$get_manage_activity['benefits_array'] = json_decode($get_manage_activity['benefits']);
// for benefits end
// for pre_requisites
$get_manage_activity['Pre_requisites_array'] = json_decode($get_manage_activity['pre_requisites']);
// for pre_requisites end
return view('Admin.Pages.manage_activities.edit_main_activities')->with(['get_manage_activity' => $get_manage_activity, 'subcriptions' => $subcription, 'teacher_datas' => $teacher_data, 'faqs_datas' => $faqs_data, 'act_faq' => $act_faq]);
}
public function edit_upcoming_main_activity($id) {
// dd($id);
$subcription = SubscriptionMaster::all()->toArray();
$teacher_data = Teacher::all()->toArray();
$faqs_data = ManageFaq::all()->toArray();
$get_manage_activity = ActivityMaster::with('faq_activity_link')->where('id', $id)->first()->toArray();
$act_faq = array_column($get_manage_activity['faq_activity_link'], 'faqs_id');
// for benefits
$get_manage_activity['benefits_array'] = json_decode($get_manage_activity['benefits']);
// for benefits end
// for pre_requisites
$get_manage_activity['Pre_requisites_array'] = json_decode($get_manage_activity['pre_requisites']);
// for pre_requisites end
return view('Admin.Pages.manage_activities.edit_upcoming_main_activities')->with(['get_manage_activity' => $get_manage_activity, 'subcriptions' => $subcription, 'teacher_datas' => $teacher_data, 'faqs_datas' => $faqs_data, 'act_faq' => $act_faq]);
}
public function update_main_activity(Request $request) {
// echo "<pre>";print_r($request->all());
//for benifit null value validation
foreach($request->benefits as $benefit){
if (is_null($benefit)) {
return response()->json(['success' => false,'status' => 403]);
}
}
//for pre_requisites null value validation
foreach($request->pre_requisites as $pre_requisites){
if (is_null($pre_requisites)) {
return response()->json(['success' => false,'status' => 402]);
}
}
$activity_master_id = $request->edit_main_activity_id;
$link_master_id = LinkFaqActivityMasterIds::where('activity_master_id', $request->edit_main_activity_id)->delete();
foreach ($request->input('faq_id') as $faq_id) {
$faqs_activity_Ids = new LinkFaqActivityMasterIds;
$faqs_activity_Ids->faqs_id = $faq_id;
$faqs_activity_Ids->activity_master_id = $request->edit_main_activity_id;
$faqs_activity_Ids->save();
}
if ($request->main_activity_banner) {
$rules = [
'main_activity_banner' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false, 'status' => 422]);
}
}
else {
$file = $request->file('main_activity_banner');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/' . $file_name);
}
// print_r($file_name_store);
// exit;
} else {
$file_name_store = $request->db_image;
}
// dd($file_name_store);
$activity_master = ActivityMaster::find($request->edit_main_activity_id);
$activity_master->activity_name = $request->input('activity_name');
$activity_master->title = $request->input('activity_title');
$activity_master->description = $request->input('description');
$activity_master->start_date = $request->input('start_date');
$activity_master->end_date = $request->input('end_date');
$activity_master->teacher_id = $request->input('teacher_id');
$activity_master->subscription_id = $request->input('subscription_id');
$activity_master->benefits = $request->input('benefits');
$activity_master->pre_requisites = $request->input('pre_requisites');
$activity_master->main_activity_banner = $file_name_store;
$activity_master->save();
ActivitySchedule::where('activity_master_id',$request->edit_main_activity_id)->update(['subscription_id'=>$request->input('subscription_id')]);
ActivityDay::where('activity_master_id',$request->edit_main_activity_id)->update(['subscription_id'=>$request->input('subscription_id')]);
return response()->json(['success' => true, 'status' => 200]);
}
public function update_upcoming_main_activity(Request $request) {
// echo "<pre>";print_r($request->all());
$activity_master_id = $request->edit_main_activity_id;
$link_master_id = LinkFaqActivityMasterIds::where('activity_master_id', $request->edit_main_activity_id)->delete();
foreach ($request->input('faq_id') as $faq_id) {
$faqs_activity_Ids = new LinkFaqActivityMasterIds;
$faqs_activity_Ids->faqs_id = $faq_id;
$faqs_activity_Ids->activity_master_id = $request->edit_main_activity_id;
$faqs_activity_Ids->save();
}
if ($request->main_activity_banner) {
$file = $request->file('main_activity_banner');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/' . $file_name);
// print_r($file_name_store);
// exit;
} else {
$file_name_store = $request->db_image;
}
// dd($file_name_store);
$activity_master = ActivityMaster::find($request->edit_main_activity_id);
$activity_master->activity_name = $request->input('activity_name');
$activity_master->title = $request->input('activity_title');
$activity_master->description = $request->input('description');
$activity_master->start_date = $request->input('start_date');
$activity_master->end_date = $request->input('end_date');
$activity_master->teacher_id = $request->input('teacher_id');
$activity_master->subscription_id = $request->input('subscription_id');
$activity_master->teaser_url = $request->input('video_teaser_url');
$activity_master->benefits = $request->input('benefits');
$activity_master->pre_requisites = $request->input('pre_requisites');
$activity_master->main_activity_banner = $file_name_store;
$activity_master->save();
ActivitySchedule::where('activity_master_id',$request->edit_main_activity_id)->update(['subscription_id'=>$request->input('subscription_id')]);
ActivityDay::where('activity_master_id',$request->edit_main_activity_id)->update(['subscription_id'=>$request->input('subscription_id')]);
return response()->json(['success' => true, 'status' => 200]);
}
public function delete_main_activity($id) {
$manage_activity = ActivityMaster::find($id)->delete();
if($manage_activity){
ActivitySchedule::where('activity_master_id',$id)->delete();
ActivityDay::where('activity_master_id',$id)->delete();
}
return response()->json(['success' => true,'status' => 200]);
}
public function edit_past_session($id) {
$pass_session = PastSession::find($id)->toArray();
// echo '<pre>';print_r($pass_session);exit;
return view('Admin.Pages.manage_activities.past_session.edit_past_session')->with(['get_pass_session' => $pass_session]);
}
public function update(Request $request) {
// echo "<pre>";
// print_r($request->all());
// exit;
$currentDate = date('Y-m-d');
$past_session = $request->past_id;
$past_schedule_id = $request->schedule_id;
// print_r($past_schedule_id);
// exit;
$past_session = PastSession::find($request->past_id);
if ($request->hasFile('myFile')) {
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json([
'success' => false,
'status' => 422]);
}
}
else {
$path = public_path() . '/uploads/past_session';
File::delete($path . $past_session->image);
$file = $request->file('myFile');
$ext = $file->extension();
$file_name_main_image_old = time() . '.' . $ext;
$file_name_main_image = url('/public/uploads/past_session/' . $file_name_main_image_old);
$file->move($path, $file_name_main_image);
}
} else {
$file_name_main_image = $request->input('db_image');
}
// for image upload end
$past_session->activity_name = $request->input('activity_name');
$past_session->url = $request->input('video_teaser_url');
$past_session->image = $file_name_main_image;
$past_session->duration = $request->input('activity_duration');
$past_session->date = $request->input('date');
$past_session->day = $request->input('day');
$date = strtotime($request->input('date'));
if ($date <= $currentDate) {
$past_session->save();
return response()->json(['success' => true, 'status' => 200,'id' => $past_schedule_id]);
} else {
return response()->json([
'error_msg' => 'Date is not greter than current date.',
'success' => false,
'status' => 400,
]);
}
}
public function delete_past_session($id) {
$past_session = PastSession::find($id)->delete();
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageBannerService;
use Illuminate\Http\Request;
use App\Models\ManageBanner;
class ManageBannerController extends Controller
{
public function __construct(ManageBannerService $manageBannerService)
{
$this->manageBannerService = $manageBannerService;
}
public function create(){
$get_manage_banner['get_single_banner'] = $this->manageBannerService->view_manage_banner()->toArray();
// dd($get_manage_banner);
$manage_banner = $this->manageBannerService->view_manage_banner()->toArray();
return view('Admin.Pages.manage_cms.banner.manage_cms_banner', $get_manage_banner);
}
public function insert_manage_bannner(Request $request)
{
$manage_banner = $this->manageBannerService->insert_manage_bannner($request);
if(!empty($manage_banner)){
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
return response()->json(['success' => true, 'status'=>200]);
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageCmsController extends Controller
{
public function create(){
return view('Admin.Pages.manage_cms.manage_cms');
}
public function manage_cms_upload(){
return view('Admin.Pages.manage_cms.manage_cms_upload');
}
}

View File

@@ -0,0 +1,223 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageNewsArticles;
use App\Models\NewsArticlesCategory;
use Illuminate\Support\Facades\Validator;
class ManageCmsNewsAndArticleController extends Controller
{
public function create(){
$data['category'] = NewsArticlesCategory::with('articles')->get();
// dd($data);
$data['article'] = ManageNewsArticles::all();
return view('Admin.Pages.manage_cms.news_and_articles.manage_cms_news_article',$data);
}
public function add_manage_cms_news_article(){
$data['category'] = NewsArticlesCategory::all();
return view('Admin.Pages.manage_cms.news_and_articles.add_news_article',$data);
}
public function edit_manage_cms_news_article($id){
$data['category'] = NewsArticlesCategory::get();
$data['article'] = ManageNewsArticles::where('id',$id)->first();
// dd($data);
return view('Admin.Pages.manage_cms.news_and_articles.edit_news_and_articles',$data);
}
//Category Start from here
public function addCategoriesData(Request $request){
// dd($request->all());
$category = NewsArticlesCategory::create(['category_name'=>$request->categoryName]);
if($category){
return response()->json([
'messages' => "Categories Is Added Successfully",
'success' => true,
'status' => 200]);
}
}
public function editCategoriesData(Request $request){
$updatecategory = NewsArticlesCategory::where('id',$request->editCatId)->update(['category_name'=>$request->editCatName]);
if($updatecategory){
return response()->json([
'messages' => "Categories Is Updated Successfully",
'success' => true,
'status' => 200]);
}
}
public function deleteCategoriesData(Request $request){
$deleteCat = NewsArticlesCategory::where('id',$request->deleteId)->delete();
if($deleteCat){
return response()->json([
'messages' => "Category Is Deleted successfully",
'success' => true,
'status' => 200]);
}
}
public function updatCatStatus(Request $request){
$status = NewsArticlesCategory::where('id',$request->catId)->update(['is_active'=> $request->status]);
return response()->json([
'messages' => "Status Updated Successfully",
'success' => true,
'status' => 200]);
}
//Category End from here
//Article Starts Here
public function addArticleData(Request $request){
$addArticle = new ManageNewsArticles;
// $rules = [
// 'articleThumbnailImage' => 'required|file|max:1000', // 400 KB
// ];
// $validator = Validator::make($request->all(),$rules);
// if ($validator->fails()) {
// if ($request->expectsJson()) {
// return response()->json(['success' => false , 'status' => 422,'message'=>'Image should be Less Than 1 MB']);
// }
// }else {
// $file = $request->file('articleThumbnailImage');
// $ext = $file->extension();
// $file_name = time() . '.' . $ext;
// $path = public_path() . '/uploads/news_articles/thumbnail_image';
// $file->move($path, $file_name);
// $addArticle->thumbnail_path = url('/public/uploads/news_articles/thumbnail_image/' . $file_name);
// }
$rules = [
'articleImage' => 'required|file|max:1000', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422,'message'=>'Image should be Less Than 1 MB']);
}
}else {
$file = $request->file('articleImage');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/news_articles/image';
$file->move($path, $file_name);
$addArticle->image_upload = url('/public/uploads/news_articles/image/' . $file_name);
}
$addArticle->category_id = $request->articleCatId;
$addArticle->article_name = $request->articleName;
$addArticle->short_text = $request->articleShortText;
$addArticle->description = $request->articleDescription;
// $addArticle->video_url = $request->articleUrl;
// $addArticle->tags = $request->articleTags;
$addArticle->save();
if($addArticle){
return response()->json([
'messages' => "Article Added Successfully",
'success' => true,
'status' => 200]);
}
}
public function editArticleData(Request $request){
// dd($request->all());
$editArticle = ManageNewsArticles::find($request->articleId);
// dd($editArticle);
// if($request->file('articleThumbnailImage')){
// $rules = [
// 'articleThumbnailImage' => 'required|file|max:1000', // 400 KB
// ];
// $validator = Validator::make($request->all(),$rules);
// if ($validator->fails()) {
// if ($request->expectsJson()) {
// return response()->json(['success' => false , 'status' => 422,'message'=>'Image should be Less Than 2 MB']);
// }
// }else {
// $file = $request->file('articleThumbnailImage');
// $ext = $file->extension();
// $file_name = time() . '.' . $ext;
// $path = public_path() . '/uploads/news_articles/thumbnail_image';
// $file->move($path, $file_name);
// $editArticle->thumbnail_path = url('/public/uploads/news_articles/thumbnail_image/' . $file_name);
// }
// }
if($request->file('articleImage')){
$rules = [
'articleImage' => 'required|file|max:1000', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422,'message'=>'Image should be Less Than 1 MB']);
}
}else {
$file = $request->file('articleImage');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/news_articles/image';
$file->move($path, $file_name);
$editArticle->image_upload = url('/public/uploads/news_articles/image/' . $file_name);
}
}
$editArticle->category_id = $request->articleCatId;
$editArticle->article_name = $request->articleName;
$editArticle->short_text = $request->articleShortText;
$editArticle->description = $request->articleDescription;
// $editArticle->video_url = $request->articleUrl;
// $editArticle->tags = $request->articleTags;
$editArticle->save();
if($editArticle){
return response()->json([
'messages' => "Article Added Successfully",
'success' => true,
'status' => 200]);
}
}
public function updatArticleStatus(Request $request){
// dd($request->all());
$status = ManageNewsArticles::where('id',$request->catId)->update(['is_active'=> $request->status]);
return response()->json([
'messages' => "Status Updated Successfully",
'success' => true,
'status' => 200]);
}
public function deleteArticlesData(Request $request){
$deleteCat = ManageNewsArticles::where('id',$request->deleteId)->delete();
if($deleteCat){
return response()->json([
'messages' => "Category Is Deleted successfully",
'success' => true,
'status' => 200]);
}
}
//Article ends Here
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageCompanyUserController extends Controller
{
public function create(){
return view('Admin.Pages.manage_company_users.manage_company_user');
}
public function create_add_company(){
return view('Admin.Pages.manage_company_users.add_company');
}
public function create_company_user(){
return view('Admin.Pages.manage_company_users.add_company_user');
}
public function index(){
return view('Admin.Pages.manage_company_users.company');
}
public function index_user_profile_three(){
return view('Admin.Pages.manage_company_users.users_profile_three');
}
}

View File

@@ -0,0 +1,52 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageContactService;
use Illuminate\Http\Request;
use App\Models\ContactUs;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\UsersExport;
class ManageContactController extends Controller {
public function __construct(ManageContactService $manageContactService) {
$this->manageContactService = $manageContactService;
}
public function create() {
return view('Admin.Pages.manage_contact.manage_contact');
}
public function view_contact(Request $req) {
$manage_contact = $this->manageContactService->view_contact();
return view('Admin.Pages.manage_contact.manage_contact')->with(['manage_contact' => $manage_contact]);
}
public function deleted(Request $request) {
$deleted_contact = $this->manageContactService->delete_contact();
return view('Admin.Pages.manage_contact.manage_contact_deleted')->with(['deleted_contact' => $deleted_contact]);
}
public function delete_contact($id) {
ContactUs::find($id)->delete();
}
public function sendManageContact(Request $request) {
$contact = $this->manageContactService->send_mail($request);
return response()->json([
'status' => 200
]);
}
public function exportUser()
{
// return Excel::download(new UsersExport, 'users.xlsx');
// return Excel::download(new UsersExport, 'user.xlsx', \Maatwebsite\Excel\Excel::XLSX);
// return Excel::download(new UsersExport, 'user.xlsx');
return Excel::download(new UsersExport, 'user.xlsx');
}
}

View File

@@ -0,0 +1,155 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageDietPlanService;
use App\Models\DietPlan;
use Illuminate\Http\Request;
use File;
use Illuminate\Support\Facades\Validator;
class ManageDietPlanController extends Controller
{
// public function create(){
// return view('Admin.Pages.manage_diet_plans.manage_diet_plan');
// }
public function __construct(ManageDietPlanService $manageDietPlanService) {
$this->manageDietPlanService = $manageDietPlanService;
}
public function create(Request $req) {
$manage_diet_plan = $this->manageDietPlanService->create();
// echo "<pre>"; print_r($manage_diet_plan);exit;
return view('Admin.Pages.manage_diet_plans.manage_diet_plan')->with(['manage_diet_plan' => $manage_diet_plan]);
}
public function create_diet_plan()
{
return view('Admin.Pages.manage_diet_plans.add_diet_plan');
}
public function insert_diet_plan(Request $request)
{
$dietCategories = $request->input('diet_categories');
$bmrRangeFrom = $request->input('bmr_range_from');
$bmrRangeTo = $request->input('bmr_range_to');
$rules = [
'myFile' => 'required|file|max:2048', // 2048 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
// Validate input if necessary
$oldDietPlan = DietPlan::where('diet_categories', $dietCategories)
->where('bmr_range_from', $bmrRangeFrom)
->where('bmr_range_to', $bmrRangeTo)
->exists();
// dd($oldDietPlan);
if ($oldDietPlan == true) {
return response()->json(['success' => false, 'status' => 403]);
}else{
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/diet_plan';
$file->move($path, $file_name);
// for image upload end
$add_diet_plan = new DietPlan;
$add_diet_plan->image = url('/public/uploads/diet_plan/'.$file_name);
$add_diet_plan->diet_categories = $request->input('diet_categories');
$add_diet_plan->bmr_range_from = $request->input('bmr_range_from');
$add_diet_plan->bmr_range_to = $request->input('bmr_range_to');
$add_diet_plan->save();
return response()->json(['success' => true, 'status' => 200]);
}
}
}
public function edit_diet_plan($id)
{
$diet_plan = DietPlan::find($id)->toArray();
return view('Admin.Pages.manage_diet_plans.edit_diet_plan')->with(['get_diet_plan' => $diet_plan]);
}
// public function update_diet_plan(Request $request)
// {
// $diet_plan = $request->diet_id;
// $diet_plan = DietPlan::find($request->id);
//
// if ($request->hasFile('image')) {
// $path = public_path() . '/uploads/diet_plan';
// $file = $request->file('image');
// $ext = $file->extension();
// $file_name_main_image = time() . '.' . $ext;
// $file->move($path, $file_name_main_image);
// } else {
// $file_name_main_image = $diet_plan->image;
// }
//
// // for image upload end
//
// $update_diet_plan->image = url('/public/uploads/diet_plan/'.$file_name_main_image);
// $update_diet_plan->diet_categories = $request->input('diet_categories');
// $update_diet_plan->bmr_range_from = $request->input('bmr_range_from');
// $update_diet_plan->bmr_range_to = $request->input('bmr_range_to');
// $update_diet_plan->save();
//
// return response()->json(['success' => true, 'status' => 200]);
// }
//
public function update_diet_plan(Request $request) {
// dd($request);
if($request->image){
$rules = [
'image' => 'required|file|max:2048', // 2048 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else{
$file = $request->file('image');
// print_r($file); exit;
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/diet_plan';
$file->move($path, $file_name);
$image_name = url('/public/uploads/diet_plan/'.$file_name);
}
}
else{
$image_name=$request->db_image;
}
$dietPlanId = $request->diet_id;
$update_diet_plan = DietPlan::find($request->diet_id);
$update_diet_plan->diet_categories = $request->input('diet_categories');
$update_diet_plan->bmr_range_from = $request->input('bmr_range_from');
$update_diet_plan->bmr_range_to = $request->input('bmr_range_to');
$update_diet_plan->image = $image_name;
$update_diet_plan->save();
return response()->json(['success' => true, 'status' => 200]);
}
public function delete_diet_plan($id) {
$delete_diet_plan = DietPlan::find($id)->delete();
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\UserDetail;
use App\Models\LeaderboardMaster;
use App\Models\SubscriptionMaster;
use App\Models\ShortClipsLikes;
class ManageDirectUserController extends Controller
{
public function view_users(){
$data = User::with('user_detail')->get()->toArray();
return view('Admin.Pages.manage_direct_users.manage_direct_users')->with(['user_data'=> $data]);
}
public function index(){
return view('Admin.Pages.manage_direct_users.users-profile-two');
}
public function edit_user($id){
$get_single_user = User::with('user_detail')
->where('id', $id)
->first()
->toArray();
// dd($get_single_user);
$subcription = SubscriptionMaster::all()->toArray();
return view('Admin.Pages.manage_direct_users.users-profile-two')->with(['get_single_user_data'=> $get_single_user , 'subcriptions' => $subcription]);;
}
public function destroy_user($id){
// dd($id);
ShortClipsLikes::where('user_id',$id)->delete();
$delete_user = User::find($id)->delete();
LeaderboardMaster::where('user_id',$id)->delete();
return response()->json(['success' => true,'status' => 200]);
}
public function update_age_height(Request $request){
// dd($request->all());
UserDetail::where('user_id',$request->user_id)->update(['age'=>$request->age,'height'=>$request->height]);
return response()->json(['success' => true,'status' => 200]);
}
public function updateSubPlan(Request $request){
// dd($request->id);
$data = User::where('id', $request->id)->update(['utm_source' => $request->data]);
if($data == 1){
return response()->json(['success' => true,'status' => 200]);
}else{
return response()->json(['success' => true,'status' => 500]);
}
}
}

View File

@@ -0,0 +1,99 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageFaqService;
use App\Models\ManageFaqCategory;
use App\Models\ManageFaq;
use Illuminate\Http\Request;
class ManageFaqController extends Controller
{
public function __construct(ManageFaqService $manageFaqService)
{
$this->manageFaqService = $manageFaqService;
}
// public function create(){
// return view('Admin.Pages.manage_cms.manage_faq.manage_faqs');
// }
public function insert_faq_categories(Request $request)
{
// dd($request);
$faq_categories = $this->manageFaqService->insert_faq_categories($request);
return response()->json(['success' => true,'status'=>200]);
}
public function view_faq_category()
{
$faq_categories['faq_categories'] = $this->manageFaqService->view_faq_category();
$faq['faq'] = $this->manageFaqService->view_faq();
// echo "<pre>";
// print_r($faq_categories);
// print_r($faq);
// echo "</pre>";
// exit;
return view('Admin.Pages.manage_cms.manage_faq.manage_faqs',$faq_categories,$faq);
}
public function delete_faq_category($id)
{
$faq_categories = ManageFaqCategory::find($id)->delete();
}
public function update_faq_category(Request $request)
{
$faq_categories = $this->manageFaqService->update_faq_categories($request);
return response()->json(['success2' => true,'status'=>200]);
}
public function change_faq_catg_Status_(Request $request)
{
// dd($request->faq_catag_id);
$status = ManageFaqCategory::find($request->faq_catag_id);
$status->is_active = $request->status;
$status->save();
return response()->json(['success'=>'Status change successfully.']);
}
// =================================================================================================================
public function insert_faq(Request $request)
{
$faq_categories = ManageFaqCategory::all();
$faq = $this->manageFaqService->insert_faq($request);
return response()->json(['success' => true, 'status'=>200, 'faq_categories'=>$faq_categories]);
}
public function delete_faq($id)
{
$faq = ManageFaq::find($id)->delete();
}
public function update_faq(Request $request)
{
$faq_categories = $this->manageFaqService->update_faq($request);
return response()->json(['success' => true,'status'=>200]);
}
public function change_faq_Status(Request $request)
{
// dd($request->faq_catag_id);
$status = ManageFaq::find($request->faq_id);
$status->is_active = $request->status;
$status->save();
return response()->json(['success'=>'Status change successfully.']);
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageFeedback;
use App\Models\User;
use App\Models\AppVersion;
use App\Models\UserDetail;
class ManageFeedbackController extends Controller
{
public function create(){
$feedback = ManageFeedback::with('user','user_detail')->where('is_active','0')->get();
// dd($feedback);
return view('Admin.Pages.manage_feedback.manage_feedback',compact('feedback'));
}
public function delete_feedback($id){
$data = ManageFeedback::find($id)->delete();
// dd($data);
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\NotificationMaster;
use App\Models\NotificationUser;
class ManageNotificationController extends Controller
{
public function create(){
return view('Admin.Pages.manage_notification.manage_notification');
}
public function send_notification(Request $request){
// print_r($request->all());
// exit;
$user = User::get();
// NotificationMaster::create[]
$notification_master = new NotificationMaster;
$notification_master->title = $request->title;
$notification_master->messages = $request->message;
$notification_master->save();
$notification_id = $notification_master->id;
foreach ($user as $user_data){
$notification_user = new NotificationUser;
$notification_user->notification_id = $notification_id;
$notification_user->user_id = $user_data->id;
$notification_user->save();
}
return response()->json(['success' => true,'status' => 200]);
}
}

View File

@@ -0,0 +1,116 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\PastSession;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\ActivityDay;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\LinkFaqActivityMasterIds;
use File;
use Carbon\Carbon;
use Illuminate\Support\Facades\Validator;
class ManagePastSessionContoller extends Controller
{
public function past_schedule($id){
$currentDate = date('Y-m-d');
$manage_past_activity = ActivitySchedule::with('subscription')
->where('activity_master_id',$id)
->where('start_date','<=',$currentDate)
->orderBy('start_date', 'DESC')
->get()
->toArray();
return view('Admin.Pages.manage_activities.past_session.past_schedules')->with(['manage_activity_schedule' => $manage_past_activity]);
}
public function create_past_session($id)
{
// print_r($id);
// exit;
$get_single_activity = ActivitySchedule::find($id)->toArray();
// echo "<pre>"; print_r($get_single_activity);exit;
return view('Admin.Pages.manage_activities.past_session.add_past_session')->with(['get_data' => $get_single_activity]);
// return view('Admin.Pages.manage_activities.past_session.add_past_session');
}
public function insert_past_session(Request $request)
{
// echo '<pre>';
// print_r($request->all());
// exit;
$currentDate = date('Y-m-d');
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/past_session';
$file->move($path, $file_name);
}
// for image upload end
$add_past_session = new PastSession;
$add_past_session->activity_master_id = $request->input('activity_id');
$add_past_session->activity_schedule_id = $request->input('schedule_id');
$add_past_session->activity_name = $request->input('activity_name');
$add_past_session->url = $request->input('video_teaser_url');
$add_past_session->duration = $request->input('activity_duration');
$add_past_session->image = url('/public/uploads/past_session/'.$file_name);
$add_past_session->date = $request->input('date');
$add_past_session->day = $request->input('day');
$date = strtotime($request->input('date'));
// Retrieve the ActivityMaster record
// $activity_schedule = ActivitySchedule::find($request->input('schedule_id'));
// $activity_shedule_start_date = strtotime($activity_schedule->start_date);
// $activity_shedule_end_date = strtotime($activity_schedule->end_date);
if ($date <= $currentDate) {
$add_past_session->save();
return response()->json(['success' => true, 'status' => 200,'id' =>$request->input('schedule_id')]);
} else {
return response()->json([
'error_msg' => 'Date is not greter than current date.',
'success' => false,
'status' => 400,
]);
}
}
public function past_days_show($id){
// print_r($id);
// exit;
$current_day = now()->format('Y-m-d');
$past_data = PastSession::where('activity_schedule_id',$id)
->where('date','<=',$current_day)
->get()
->toArray();
// echo '<pre>';
// print_r($past_data);
// exit;
return view('Admin.Pages.manage_activities.past_session.past_activity_day')->with(['manage_activity_day' => $past_data]);
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManagePlanService;
use App\Models\SubscriptionMaster;
use App\Models\SubscriptionPlanPackage;
use App\Models\SubscriptionPackageDescription;
use Illuminate\Http\Request;
class ManagePlanController extends Controller
{
public function __construct(ManagePlanService $managePlanService) {
$this->managePlanService = $managePlanService;
}
public function view_plan(Request $req) {
$manage_plan = $this->managePlanService->view_plan();
// echo "<pre>"; print_r($manage_plan);exit;
return view('Admin.Pages.manage_plan.manage_plan')->with(['manage_plan' => $manage_plan]);
}
public function create_plan() {
return view('Admin.Pages.manage_plan.add_plan');
}
public function insert_plan(Request $request)
{
try {
$plan = $this->managePlanService->insert_plan($request);
return response()->json(['status' => 200, 'message' => 'Plan added successfully']);
}
catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
}
public function edit($id)
{
$data = $this->managePlanService->edit_plan($id);
return view('Admin.Pages.manage_plan.edit_plan')->with(['plan_data'=>$data]);
}
public function delete_plan($id) {
// print_r($id);die;
$plan = SubscriptionMaster::find($id)->delete();
$plan = SubscriptionPlanPackage::where('subscription_master_id', $id)->delete();
$plan = SubscriptionPackageDescription::where('subscription_master_id', $id)->delete();
}
public function update_plan(Request $request)
{
$plan_update = $this->managePlanService->update_plan($request);
return response()->json(['success' => true,'status'=>200]);
}
}

View File

@@ -0,0 +1,144 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManagePodcast;
use Illuminate\Support\Facades\Validator;
class ManagePodcastController extends Controller
{
public function create(){
$data['podcast'] = ManagePodcast::latest()->get();
// dd($data['podcast']);
return view('Admin.Pages.manage_cms.manage_podcast.manage_podcast',$data);
}
public function add_manage_podcast(){
return view('Admin.Pages.manage_cms.manage_podcast.add_manage_podcast');
}
public function addData(Request $request){
// dd($request->all());
$rules = [
'image' => 'required|file|max:1000'// 1000 kb
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('image');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/manage_podcast';
$file->move($path, $file_name);
}
$podcastFile = $request->file('url');
$podcastFileName = time() . '.' . $podcastFile->getClientOriginalExtension();
$path = public_path() . '/uploads/manage_podcast/podcasts';
$podcastFile->move($path, $podcastFileName);
$addPodcast = new ManagePodcast;
$addPodcast->title = $request->title;
$addPodcast->description = $request->description;
$addPodcast->podcast_url = url('/public/uploads/manage_podcast/podcasts/' . $podcastFileName);
// $addPodcast->podcast_url = $mp3File;
$addPodcast->banner_image = url('/public/uploads/manage_podcast/' . $file_name);
$addPodcast->save();
if($addPodcast){
return response()->json([
'message' => "Podcast Added Succesfully",
'success' => true,
'status' => 200,
]);
}else{
return response()->json([
'message' => "Something Went Wrong",
'success' => true,
'status' => 500,
]);
}
}
public function updateData(Request $request){
$updatepodcast = ManagePodcast::find($request->id);
// dd($request->image);
if($request->file('image')){
$rules = [
'image' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}else {
$file = $request->file('image');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/manage_podcast';
$file->move($path, $file_name);
$updatepodcast->banner_image = url('/public/uploads/manage_podcast/' . $file_name);
}
}
if($request->file('url')){
$podcastFile = $request->file('url');
$podcastFileName = time() . '.' . $podcastFile->getClientOriginalExtension();
$path = public_path() . '/uploads/manage_podcast/podcasts';
$podcastFile->move($path, $podcastFileName);
$updatepodcast->podcast_url = url('/public/uploads/manage_podcast/podcasts/' . $podcastFileName);
}
$updatepodcast->title = $request->title;
$updatepodcast->description = $request->description;
// $updatepodcast->podcast_url = $request->url;
$updatepodcast->save();
if($updatepodcast){
return response()->json([
'message' => "Podcast Updated Succesfully",
'success' => true,
'status' => 200,
]);
}else{
return response()->json([
'message' => "Something Went Wrong",
'success' => true,
'status' => 500,
]);
}
}
public function deleteData(Request $request){
$deletePodcast = ManagePodcast::find($request->id)->delete();
if($deletePodcast){
return response()->json([
'message' => "Podcast Deleted Succesfully",
'success' => true,
'status' => 200,
]);
}
}
public function updatePodcastStatus(Request $request){
// dd($request->all());
$status = ManagePodcast::where('id',$request->queId)->update(['is_active'=> $request->status]);
return response()->json([
'messages' => "Status Updated Successfully",
'success' => true,
'status' => 200]);
}
}

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManagePreRecordedController extends Controller
{
public function create(){
return view('Admin.Pages.manage_pre_recorded.manage_pre_recorded_video');
}
public function create_pre_recorded_video(){
return view('Admin.Pages.manage_pre_recorded.add_manage_pre_recorded_video');
}
public function edit_pre_recorded_video(){
return view('Admin.Pages.manage_pre_recorded.edit_manage_pre_recorded_video');
}
public function view_pre_recorded_video(){
return view('Admin.Pages.manage_pre_recorded.view_manage_pre_recorded_video');
}
}

View File

@@ -0,0 +1,108 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ManageQuizQuestion;
use App\Models\QuizQuestionsAnswer;
class ManageQuizController extends Controller
{
public function create(){
$data['quiz'] = ManageQuizQuestion::with('answer')->get()->toArray();
// dd($data['quiz']);
return view('Admin.Pages.manage_cms.manage_quiz.manage_quiz',$data);
}
public function add_quiz(){
return view('Admin.Pages.manage_cms.manage_quiz.add_quiz');
}
public function edit_quiz($id){
// dd($id);
$data['question'] = ManageQuizQuestion::where('id',$id)->get()->toArray();
$data['answer'] = QuizQuestionsAnswer::where('question_id',$id)->get()->toArray();
// dd($data);
return view('Admin.Pages.manage_cms.manage_quiz.edit_quiz',$data);
}
public function add_quiz_data(Request $request){
// dd($request->answer);
// Create and store the question
if($request->schedule_time == null){
$question = ManageQuizQuestion::create(['questions'=> $request->question,'is_active'=>'1']);
}else{
$question = ManageQuizQuestion::create(['questions'=> $request->question,'schedule_timing'=>$request->schedule_time,'is_active'=>'0']);
}
if($question){
// Create and store the answers
$answersArr = [
'A' => $request->ans_a,
'B' => $request->ans_b,
'C' => $request->ans_c,
'D' => $request->ans_d,
];
foreach ($answersArr as $option => $content) {
$isCorrect = ($request->answer == $option) ? '1' : '0';
QuizQuestionsAnswer::create([
'question_id' => $question->id,
'answers'=> $content,
'is_active' => $isCorrect
]);
}
return response()->json([
'messages' => "Question And Answer Is Added successfully",
'success' => true,
'status' => 200]);
}
}
public function updateQueStatus(Request $request){
$status = ManageQuizQuestion::where('id',$request->queId)->update(['is_active'=> $request->status]);
return response()->json([
'messages' => "Status Updated Successfully",
'success' => true,
'status' => 200]);
}
public function updateQueAnsFormData(Request $request){
// dd($request->answer);
$question = ManageQuizQuestion::where('id',$request->queId)->update(['questions'=>$request->question,'schedule_timing' => $request->schedule_time]);
$rightAnsId = $request->answer;
foreach($request->input('answers') as $option => $content){
$isCorrect = ($option == $rightAnsId) ? '1' : '0';
$request = QuizQuestionsAnswer::where('id',$option)->update([
'answers' => $content['content'],
'is_active' => $isCorrect,
]);
}
return response()->json([
'messages' => "Question And Answer Is Updated successfully",
'success' => true,
'status' => 200]);
}
public function deleteQueAnsData($id){
$deleteQue = ManageQuizQuestion::find($id)->delete();
$deleteAnswer = QuizQuestionsAnswer::where('question_id',$id)->delete();
return response()->json([
'messages' => "Question And Answer Is Deleted successfully",
'success' => true,
'status' => 200]);
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageReportsController extends Controller
{
public function create(){
return view('Admin.Pages.manage_reports.manage_reports');
}
public function user_report_create(){
return view('Admin.Pages.manage_reports.user_report');
}
public function activities_report_create(){
return view('Admin.Pages.manage_reports.activities_report');
}
public function transaction_report_create(){
return view('Admin.Pages.manage_reports.transaction_report');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageSettingController extends Controller
{
public function create(){
return view('Admin.Pages.manage_settings.manage_setting');
}
}

View File

@@ -0,0 +1,90 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Services\Admin\ManageShortClipsService;
use App\Models\ManageShortClips;
use App\Models\ShortClipsLikes;
class ManageShortClipsController extends Controller
{
public function __construct(ManageShortClipsService $manageShortClipsService)
{
$this->manageShortClipsService = $manageShortClipsService;
}
public function create_short_clips()
{
return view('Admin.Pages.manage_short_clips.add_short_clips');
}
public function insert(Request $request)
{
try {
$shortClips = $this->manageShortClipsService->insert_short_clips($request);
if(!empty($shortClips))
{
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
}
catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
}
public function index(Request $request)
{
$data = $this->manageShortClipsService->get_all_short_clips();
return view('Admin.Pages.manage_short_clips.manage_short_clips')->with(['data'=>$data]);
}
public function destroy($id)
{
ManageShortClips::find($id)->delete();
}
public function edit_short_clips($id)
{
$data = $this->manageShortClipsService->edit_short_clips($id)->toArray();
return view('Admin.Pages.manage_short_clips.edit_short_clips')->with(['data'=>$data]);
}
public function update(Request $request)
{
try {
$data = $this->manageShortClipsService->update_short_clips($request);
if(!empty($data))
{
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
}
catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
}
public function changestatus(Request $request)
{
// print_r($request->status);
// exit;
$status = ManageShortClips::find($request->user_id);
$status->is_active = $request->status;
$status->save();
$changesSatus = ShortClipsLikes::where('short_clips_id', $request->user_id)->update(['is_active' => $request->status]);
return response()->json(['success'=>'Status change successfully.']);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageSubAdminController extends Controller
{
public function create(){
return view('Admin.Pages.manage_sub_admins.manage_sub_admin');
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageSubcriptionController extends Controller
{
public function create(){
return view('Admin.Pages.manage_subscription.manage_subscription');
}
public function create_archive_list(){
return view('Admin.Pages.manage_subscription.manage_archive_list');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageSubcriptionPlansController extends Controller
{
public function create(){
return view('Admin.Pages.manage_subscription.manage_subscription_plans');
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageThoughtsService;
use Illuminate\Http\Request;
use App\Models\UserThought;
class ManageThoughtsController extends Controller
{
public function __construct(ManageThoughtsService $manageThoughtsService)
{
$this->manageThoughtsService = $manageThoughtsService;
}
public function view_manage_thoughts(Request $request)
{
$manage_thoughts =$this->manageThoughtsService->view_manage_thoughts($request);
// dd($manage_thoughts);
return view('Admin.Pages.manage_cms.manage_thoughts.manage_thoughts')->with(['manage_thought'=>$manage_thoughts]);
}
public function insert_thoughts(Request $request)
{
// dd($request);
$thoughts = $this->manageThoughtsService->insert_thoughts($request);
return response()->json(['success' => true,'status'=>200]);
}
public function update_thought(Request $request)
{
$updateThought = $this->manageThoughtsService->update_thought($request);
return response()->json(['success2' => true,'status'=>200]);
}
public function change_manage_thoughts_Status(Request $request)
{
$status = UserThought::find($request->thought_id);
$status->is_active = $request->status;
$status->save();
return response()->json(['success'=>'Status change successfully.']);
}
public function delete_thought($id)
{
$Thoughts = UserThought::find($id)->delete();
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ManageTransactionController extends Controller
{
public function create(){
return view('Admin.Pages.manage_transactions.manage_transactions');
}
public function create_manage_transactions_archive_list(){
return view('Admin.Pages.manage_transactions.manage_transactions_archive_list');
}
}

View File

@@ -0,0 +1,77 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Services\Admin\ManageVideoService;
use Illuminate\Http\Request;
use File;
use App\Models\ManageFreeVideo;
class ManageVideoController extends Controller
{
public function __construct(ManageVideoService $manageVideoService)
{
$this->manageVideoService = $manageVideoService;
}
public function create(){
return view('Admin.Pages.manage_cms.manage_video.manage_video');
}
public function add_manage_video(){
return view('Admin.Pages.manage_cms.manage_video.add_manage_video');
}
public function view_manage_video(Request $request)
{
$manage_free_video =$this->manageVideoService->view_manage_video($request);
// dd($manage_free_video);
return view('Admin.Pages.manage_cms.manage_video.manage_video')->with(['manage_video'=>$manage_free_video]);
}
public function insert_manage_video(Request $request)
{
$manage_free_video = $this->manageVideoService->insert_manage_video($request);
return response()->json(['success' => true,'status'=>200]);
}
public function edit_manage_video($id){
$manage_free_video = $this->manageVideoService->edit_manage_video($id);
// echo "<pre>";
// print_r($manage_free_video);
// echo "</pre>";exit;
return view('Admin.Pages.manage_cms.manage_video.edit_manage_video')->with(['manage_free_video_getById'=>$manage_free_video]);
}
public function delete_manage_video($id)
{
$manage_free_video = ManageFreeVideo::find($id);
$manage_free_video->delete();
$path = public_path().'/uploads/';
File::delete($path.$manage_free_video->video_cover_image);
return response()->json([
'status'=> 200,
'message'=> 'student Deleted Successfully',
]);
}
public function update_mange_video(Request $request)
{
$manage_free_video = $this->manageVideoService->update_mange_video($request);
return response()->json(['success' => true,'status'=>200]);
}
public function change_manage_video_Status(Request $request)
{
// dd($request->faq_catag_id);
$status = ManageFreeVideo::find($request->manage_thought_id);
$status->is_active = $request->status;
$status->save();
return response()->json(['success'=>'Status change successfully.']);
}
}

View File

@@ -0,0 +1,321 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivitySchedule;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use Illuminate\Support\Facades\Validator;
use App\Models\ActivityDay;
class SummerSweatController extends Controller {
public function create() {
return view('Admin.Pages.manage_activities.summer_sweats.summer_sweat');
}
// public function index() {
// $manage_activity_schedule = ActivitySchedule::all()->toArray();
//// echo "<pre>"; print_r($manage_activity_schedule);exit;
// return view('Admin.Pages.manage_activities.summer_sweats.summer_sweat')->with(['manage_activity_schedule' => $manage_activity_schedule]);
// }
public function add_create(Request $request) {
$get_single_activity = ActivityMaster::find($request->id)->toArray();
$subcription = SubscriptionMaster::all()->toArray();
// echo "<pre>"; print_r($get_single_activity);exit;
return view('Admin.Pages.manage_activities.summer_sweats.add_summer_sweat')->with(['get_data' => $get_single_activity, 'subcriptions' => $subcription]);
}
public function add_upcoming_create(Request $request) {
$get_single_activity = ActivityMaster::find($request->id)->toArray();
$subcription = SubscriptionMaster::all()->toArray();
// echo "<pre>"; print_r($get_single_activity);exit;
return view('Admin.Pages.manage_activities.summer_sweats.add_upcoming_summer_sweat')->with(['get_data' => $get_single_activity, 'subcriptions' => $subcription]);
}
public function insert_summer_sweat(Request $request) {
// echo "<pre>";print_r($request->all());die;
// for image upload start
// dd($request->all());
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_schedule';
$file->move($path, $file_name);
}
// for image upload end
$activity_schedule = new ActivitySchedule;
$activity_schedule->activity_master_id = $request->input('url_id');
$activity_schedule->activity_teaser = $file_name;
$activity_schedule->activity_name = $request->input('main_activity_name');
$activity_schedule->description = $request->input('description');
$activity_schedule->start_date = $request->input('start_date');
$activity_schedule->end_date = $request->input('end_date');
$activity_schedule->subscription_id = $request->input('subscription_id');
$start_date = strtotime($request->input('start_date'));
$end_date = strtotime($request->input('end_date'));
// Retrieve the ActivityMaster record
$activity_master = ActivityMaster::find($request->input('url_id'));
$activity_master_start = strtotime($activity_master->start_date);
$activity_master_end = strtotime($activity_master->end_date);
// Check if start date and end date are within the activity master range
if ($start_date >= $activity_master_start && $end_date <= $activity_master_end) {
$activity_schedule->start_date = date('Y-m-d', $start_date);
$activity_schedule->end_date = date('Y-m-d', $end_date);
$activity_schedule->save();
return response()->json([
'schedule_data' => $request->input('url_id'),
'success' => true,
'status' => 200,
]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function insert_upcoming_summer_sweat(Request $request) {
// echo "<pre>";print_r($request->all());die;
// for image upload start
$rules = [
'myFile' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('myFile');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_schedule';
$file->move($path, $file_name);
}
// for image upload end
$activity_schedule = new ActivitySchedule;
$activity_schedule->activity_master_id = $request->input('url_id');
$activity_schedule->activity_teaser = $file_name;
$activity_schedule->activity_name = $request->input('main_activity_name');
$activity_schedule->description = $request->input('description');
$activity_schedule->start_date = $request->input('start_date');
$activity_schedule->end_date = $request->input('end_date');
$activity_schedule->subscription_id = $request->input('subscription_id');
$start_date = strtotime($request->input('start_date'));
$end_date = strtotime($request->input('end_date'));
// Retrieve the ActivityMaster record
$activity_master = ActivityMaster::find($request->input('url_id'));
$activity_master_start = strtotime($activity_master->start_date);
$activity_master_end = strtotime($activity_master->end_date);
// Check if start date and end date are within the activity master range
if ($start_date >= $activity_master_start && $end_date <= $activity_master_end) {
$activity_schedule->start_date = date('Y-m-d', $start_date);
$activity_schedule->end_date = date('Y-m-d', $end_date);
$activity_schedule->save();
return response()->json([
'schedule_data' => $request->input('url_id'),
'success' => true,
'status' => 200,
]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function edit_summer_sweat($id) {
$subcription = SubscriptionMaster::all()->toArray();
$get_manage_activity_schedule = ActivitySchedule::find($id)->toArray();
// dd($get_manage_activity_schedule);
return view('Admin.Pages.manage_activities.summer_sweats.edit_summer_sweat')->with(['get_manage_activity' => $get_manage_activity_schedule, 'subcriptions' => $subcription,]);
}
public function edit_upcoming_summer_sweat($id) {
$subcription = SubscriptionMaster::all()->toArray();
$get_manage_activity_schedule = ActivitySchedule::find($id)->toArray();
// dd($get_manage_activity_schedule);
return view('Admin.Pages.manage_activities.summer_sweats.edit_upcoming_summer_sweat')->with(['get_manage_activity' => $get_manage_activity_schedule, 'subcriptions' => $subcription,]);
}
public function update_summer_sweat(Request $request) {
// for image upload start
if ($request->activity_teaser) {
$rules = [
'activity_teaser' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('activity_teaser');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_schedule';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/activity_schedule/' . $file_name);
}
// print_r($file_name_store);exit;
} else {
$file_name_store = $request->db_image;
}
// $file = $request->file('myFile');
// $ext = $file->extension();
// $file_name = time() . '.' . $ext;
// $path = public_path() . '/uploads/activity_banner_images/activity_schedule';
// $file->move($path, $file_name);
// for image upload end
$activity_master_id = $request->edit_schedule_id;
$activity_schedule = ActivitySchedule::find($request->edit_schedule_id);
$activity_schedule->activity_teaser = $file_name_store;
$activity_schedule->activity_name = $request->input('activity_name');
$activity_schedule->description = $request->input('description');
$activity_schedule->start_date = $request->input('start_date');
$activity_schedule->end_date = $request->input('end_date');
$activity_schedule->subscription_id = $request->input('subscription_id');
//End Date of schedule is not greater than activity end date logic
$start_date = strtotime($request->input('start_date'));
$end_date = strtotime($request->input('end_date'));
// Retrieve the ActivityMaster record
$activity_master = ActivityMaster::find($request->input('activity_master_id'));
$activity_master_start = strtotime($activity_master->start_date);
$activity_master_end = strtotime($activity_master->end_date);
if ($start_date >= $activity_master_start && $end_date <= $activity_master_end) {
$activity_schedule->save();
return response()->json(['schedule_data' => $request->input('activity_master_id'),'success' => true, 'status' => 200]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function update_upcoming_summer_sweat(Request $request) {
// for image upload start
// echo "<pre>"; print_r($request->all());exit;
if ($request->activity_teaser) {
$rules = [
'activity_teaser' => 'required|file|max:400', // 400 KB
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
if ($request->expectsJson()) {
return response()->json(['success' => false , 'status' => 422]);
}
}
else {
$file = $request->file('activity_teaser');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/activity_banner_images/activity_schedule';
$file->move($path, $file_name);
$file_name_store = url('/public/uploads/activity_banner_images/activity_schedule/' . $file_name);
}
// print_r($file_name_store);exit;
} else {
$file_name_store = $request->db_image;
}
// $file = $request->file('myFile');
// $ext = $file->extension();
// $file_name = time() . '.' . $ext;
// $path = public_path() . '/uploads/activity_banner_images/activity_schedule';
// $file->move($path, $file_name);
// for image upload end
$activity_master_id = $request->edit_schedule_id;
$activity_schedule = ActivitySchedule::find($request->edit_schedule_id);
$activity_schedule->activity_teaser = $file_name_store;
$activity_schedule->activity_name = $request->input('activity_name');
$activity_schedule->description = $request->input('description');
$activity_schedule->start_date = $request->input('start_date');
$activity_schedule->end_date = $request->input('end_date');
$activity_schedule->subscription_id = $request->input('subscription_id');
//End Date of schedule is not greater than activity end date logic
$start_date = strtotime($request->input('start_date'));
$end_date = strtotime($request->input('end_date'));
// Retrieve the ActivityMaster record
$activity_master = ActivityMaster::find($request->input('activity_master_id'));
$activity_master_start = strtotime($activity_master->start_date);
$activity_master_end = strtotime($activity_master->end_date);
if ($start_date >= $activity_master_start && $end_date <= $activity_master_end) {
$activity_schedule->save();
return response()->json(['schedule_data' => $request->input('activity_master_id'),'success' => true, 'status' => 200]);
} else {
return response()->json([
'error_msg' => 'Start date or end date is not within the activity master range.',
'success' => false,
'status' => 400,
]);
}
}
public function delete_schedule($id) {
// dd($id);
$manage_schedule = ActivitySchedule::find($id)->delete();
// dd($manage_schedule);
// if($manage_schedule == true){
ActivityDay::where('activity_schedule_id',$id)->delete();
// }
}
}

View File

@@ -0,0 +1,78 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Teacher;
use File;
class TeacherController extends Controller {
public function index() {
$manage_teacher = Teacher::all()->toArray();
// echo "<pre>"; dd($manage_teacher);exit;
return view('Admin.Pages.manage_teachers.manage_teacher')->with(['data' => $manage_teacher]);
}
public function create() {
return view('Admin.Pages.manage_teachers.add_manage_teacher');
}
public function insert(Request $request) {
// for image upload start
$file = $request->file('teacher_image');
$ext = $file->extension();
$file_name = time() . '.' . $ext;
$path = public_path() . '/uploads/teacher_images';
$file->move($path, $file_name);
// for image upload end
$add_teacher = new Teacher;
$add_teacher->teacher_title = $request->input('teacher_title');
$add_teacher->teacher_sub_title = $request->input('teacher_sub_title');
$add_teacher->description = $request->input('teacher_description');
$add_teacher->address = $request->input('teacher_address');
$add_teacher->teacher_image = $file_name;
$add_teacher->contact_number = $request->input('teacher_contact_number');
$add_teacher->save();
return response()->json(['success' => true, 'status' => 200]);
}
public function delete_teacher($id) {
$manage_teacher = Teacher::find($id)->delete();
}
public function edit_teacher($id) {
$manage_teacher = Teacher::find($id)->toArray();
return view('Admin.Pages.manage_teachers.edit_manage_teacher')->with(['manage_teacher' => $manage_teacher]);
}
public function update_teacher(Request $request) {
$teacher_data = Teacher::find($request->teacher_id);
if ($request->hasFile('teacher_image')) {
$path = public_path() . '/uploads/teacher_images';
File::delete($path . $teacher_data->teacher_image);
$file = $request->file('teacher_image');
$ext = $file->extension();
$file_name_main_image = time() . '.' . $ext;
$file->move($path, $file_name_main_image);
} else {
$file_name_main_image = $teacher_data->teacher_image;
}
$teacher_data->teacher_title = $request->input('teacher_title');
$teacher_data->teacher_sub_title = $request->input('teacher_sub_title');
$teacher_data->description = $request->input('teacher_description');
$teacher_data->teacher_image = url('/public/uploads/teacher_images/' . $file_name_main_image);
$teacher_data->address = $request->input('teacher_address');
$teacher_data->contact_number = $request->input('teacher_contact_number');
$teacher_data->save();
return response()->json(['success' => true, 'status' => 200]);
}
}

View File

@@ -0,0 +1,81 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Services\Admin\ManageTestimonialService;
use App\Models\Testimonial;
use App\Models\TestimonialImages;
use File;
use Validator;
class TestimonialController extends Controller {
public function __construct(ManageTestimonialService $manageTestimonialService) {
$this->manageTestimonialService = $manageTestimonialService;
}
public function create_testimonial()
{
return view('Admin.Pages.manage_cms.testimonial.add_testimonial');
}
public function insert_testimonial(Request $request)
{
try {
$testimonial = $this->manageTestimonialService->insert_testimonial($request);
if(!empty($testimonial))
{
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
}
catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
}
public function view_testimonial(Request $request) {
$testimonials = $this->manageTestimonialService->view_testimonial($request)->toArray();
// echo "<pre>"; print_r($testimonials);exit;
return view('Admin.Pages.manage_cms.testimonial.testimonial')->with(['data' => $testimonials]);
// return response()->json(['success' => true,'status'=>200]);
}
public function delete_testimonial($id) {
// print_r($id);die;
$testimonials = Testimonial::find($id)->delete();
}
public function edit_testimonial($id)
{
$data = $this->manageTestimonialService->edit_testimonial($id)->toArray();
// dd($data);
return view('Admin.Pages.manage_cms.testimonial.edit_testimonial')->with(['data'=>$data]);
}
public function update_testimonial(Request $request)
{
try {
$data = $this->manageTestimonialService->update_testimonial($request);
if(!empty($data)){
return response()->json(['success' => true , 'status' => 200]);
}
else{
return response()->json(['success' => false , 'status' => 422]);
}
}
catch (Exception $e) {
echo 'Message: ' .$e->getMessage();
}
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\UserOverView;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\DataExport;
class UserOverviewController extends Controller
{
public function create(){
return view('Admin.Pages.user_overview.user_overview');
}
public function export(Request $request)
{
// dd($request->all());
// $date = $request->date;
// $data = UserOverView::whereDate('created_at', $date)->get();
return Excel::download(new DataExport, 'dataoverview.xlsx');
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\ConfirmsPasswords;
class ConfirmPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Confirm Password Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password confirmations and
| uses a simple trait to include the behavior. You're free to explore
| this trait and override any functions that require customization.
|
*/
use ConfirmsPasswords;
/**
* Where to redirect users when the intended url fails.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
class ForgotPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset emails and
| includes a trait which assists in sending these notifications from
| your application to your users. Feel free to explore this trait.
|
*/
use SendsPasswordResetEmails;
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\Models\User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\ResetsPasswords;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Where to redirect users after resetting their password.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
}

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\VerifiesEmails;
class VerificationController extends Controller
{
/*
|--------------------------------------------------------------------------
| Email Verification Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling email verification for any
| user that recently registered with the application. Emails may also
| be re-sent if the user didn't receive the original email message.
|
*/
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class GSFExclusiveController extends Controller
{
//
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class GetSetEatController extends Controller
{
//
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TransformAndBeyondBeginnersController extends Controller
{
//
}

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ContactUs;
use App\Models\User;
use Auth;
use Illuminate\Support\Facades\Mail;
use App\Mail\ContactUsForm;
class ContactUsController extends Controller
{
public function index(){
return view('website.pages.contact_us');
}
public function send_contact_us(Request $req){
$contactdata = array(
'name' => $req->full_name,
'email_id' => $req->email,
'subject' => $req->subject,
'type' => $req->subject,
'message' => $req->message,
'is_reply' => '0',
'is_active' => '1',
);
$data = ContactUs::create($contactdata);
$mail_details = [
'email' => $req->email,
'subject' => $req->subject,
'body' => $req->message
];
$mail = Mail::to(['Support@Getsetfit.Co'])->send(new ContactUsForm($mail_details));
// dd($mail);
if ($mail) {
return response()->json(['success' => true, 'message' => 'Message Send Successfully', 'status' => 200]);
}
return response()->json(['success' => false, 'message' => 'Message failed to send', 'status' => 500]);
}
}

View File

@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DownloadController extends Controller
{
public function index(){
return view('website.pages.download');
}
}

View File

@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index(){
return view('website.pages.home_page');
}
}

View File

@@ -0,0 +1,51 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
use Carbon\Carbon;
class Logincontroller extends Controller
{
public function login(Request $request){
// print_r($request->all());
// exit;
$cread=$request->only('email','password');
$credentials = ['email_id' => $request->email,'password' => $request->password
];
// Retrieve the user by their email or ID (you can use any identifier)
$user = User::where('email_id', $request->input('email'))->first();
// print_r(!$user);
// exit;
if(!$user) {
return response()->json(['success' => false, 'message' => 'Invalid Email', 'status' => 404]);
}else{
if (Hash::check($credentials['password'], $user->password)) {
$login = Auth::login($user);
$userData = Auth::user();
$todaysDate = Carbon::now()->toDateString();
$subscriptionEndDate = $userData->end_date;
$subscriptionEndDate = Carbon::parse($subscriptionEndDate);
$subscriptionEndsIn7Days = $subscriptionEndDate->addDays(7)->toDateString();
if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todaysDate)
{
return response()->json(['success' => true, 'message' => 'Your subscription has ended.', 'status' => 201]);
}
return response()->json(['success' => true, 'message' => 'Login Succefully', 'status' => 200]);
} else {
return response()->json(['success' => false, 'message' => 'Wrong Password', 'status' => 401]);
}
}
}
}

View File

@@ -0,0 +1,86 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http;
class OurServicesController extends Controller
{
public function index(){
return view('website.pages.our_services');
}
//transform and beyond biginners
public function transform_beyond_beginner(Request $request){
// $apiKey = "bdf20639fab33d6dc265da0f6926a491";
// $ip = $request->ip(); // Get user's IP address
// $client = new Client();
// $response = $client->get("http://api.ipstack.com/{$ip}?access_key={$apiKey}");
$userIP = $request->ip(); // Get the user's IP address
// Make a GET request to ipinfo.io
$response = Http::get("https://ipinfo.io/{$userIP}/json");
// Parse the JSON response
$data = $response->json();
// $data = json_decode($response->getBody(), true);
// Get user's country code from the API response
$userCountry['data'] = $data['country'];
// dd($userCountry);
return view('website.pages.transform_beyond_beginner',$userCountry);
}
//gsf exclusive
public function gsf_exclusive(Request $request){
// $apiKey = "bdf20639fab33d6dc265da0f6926a491";
// $ip = $request->ip(); // Get user's IP address
// $client = new Client();
// $response = $client->get("http://api.ipstack.com/{$ip}?access_key={$apiKey}");
$userIP = $request->ip(); // Get the user's IP address
// Make a GET request to ipinfo.io
$response = Http::get("https://ipinfo.io/{$userIP}/json");
// Parse the JSON response
$data = $response->json();
// $data = json_decode($response->getBody(), true);
// Get user's country code from the API response
$userCountry['data'] = $data['country'];
// dd($userCountry);
return view('website.pages.gsf_exclusive',$userCountry);
}
// get set eat
public function get_set_eat(Request $request){
// $apiKey = "bdf20639fab33d6dc265da0f6926a491";
// $ip = $request->ip(); // Get user's IP address
// $client = new Client();
// $response = $client->get("http://api.ipstack.com/{$ip}?access_key={$apiKey}");
$userIP = $request->ip(); // Get the user's IP address
// Make a GET request to ipinfo.io
$response = Http::get("https://ipinfo.io/{$userIP}/json");
// Parse the JSON response
$data = $response->json();
// $data = json_decode($response->getBody(), true);
// Get user's country code from the API response
$userCountry['data'] = $data['country'];
// dd($userCountry);
return view('website.pages.get_set_eat',$userCountry);
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http;
class TransformBeyondController extends Controller
{
public function index(Request $request){
// $apiKey = "bdf20639fab33d6dc265da0f6926a491";
// $ip = $request->ip(); // Get user's IP address
// $client = new Client();
// $response = $client->get("http://api.ipstack.com/{$ip}?access_key={$apiKey}");
$userIP = $request->ip(); // Get the user's IP address
// Make a GET request to ipinfo.io
$response = Http::get("https://ipinfo.io/{$userIP}?token=fb9b51b5a3bbd9");
// Parse the JSON response
$data = $response->json();
// dd($data);
// $data = json_decode($response->getBody(), true);
// Get user's country code from the API response
$userCountry['data'] = $data['country'];
// dd($userCountry);
return view('website.pages.transform_beyond',$userCountry);
}
}

View File

@@ -0,0 +1,161 @@
<?php
namespace App\Http\Controllers\Website;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\ActivityMaster;
use App\Models\SubscriptionMaster;
use App\Models\ActivitySchedule;
use App\Models\ActivityDay;
use App\Models\Teacher;
use App\Models\ManageFaq;
use App\Models\LinkFaqActivityMasterIds;
use App\Models\PastSession;
use Carbon\Carbon;
use DateTimeZone;
use DateTime;
use Auth;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Http;
use Torann\GeoIP\Facades\GeoIP;
use Spatie\TimeZone\GoogleTimeZone;
class YourActivityController extends Controller
{
public function index(Request $request){
$data=[];
$current_day = now()->format('Y-m-d'); // Get the current date in the format "YYYY-MM-DD"
$user_data = Auth::user();
$userIP = \Request::ip();
// $access_token = 'fb9b51b5a3bbd9';
// $client = new IPinfo($access_token);
// $ip_address = $userIP ;
// $details = $client->getDetails($ip_address);
// dd($details);
$response = Http::get("https://ipinfo.io/{$userIP}?token=fb9b51b5a3bbd9");
$locationData = $response->json();
$userTimeZone = $locationData['timezone'];
$user_data = Auth::user();
$utm_source = $user_data->utm_source;
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
$data['live_activity'] = ActivityDay::where('subscription_id', $subscription_id)
->where('date', 'LIKE', "%$current_day%")
->with('scheduleData', 'activityData')
->get();
// dd($data['live_activity']);
// dd($data['live_activity']);
// if($data['live_activity']->isEmpty()){
// $data['data'] = ['0'];
// dd($data);
// return view('website.pages.your_activity',compact('data'));
// }else{
if(!$data['live_activity']->isEmpty()){
$timestamp = $data['live_activity'][0]['time'];
// dd($timestamp);
$gettimezone = $userTimeZone;
// $datetime = "2016-02-01 00:00:01";
// Target timezone based on the user's IP address
$targetTimeZone = new DateTimeZone($userTimeZone);
// Create a DateTime object for the original timestamp in India timezone
$given = new DateTime($timestamp, new DateTimeZone('Asia/Kolkata'));
// Set the target timezone
$given->setTimezone($targetTimeZone);
// $given = new DateTime($timestamp, new DateTimeZone($gettimezone));
// $given->setTimezone(new DateTimeZone("UTC"));
$output = $given->format("H:i");
$data['live_activity'][0]['time']=$output;
}
$data['subscription_data'] = SubscriptionMaster::where('utm_plan',$utm_source)->first();
// return $data;
//past data
$subscription_data = SubscriptionMaster::where('utm_plan',$utm_source)->first();
$subscription_id = $subscription_data->id;
// dd($subscription_id);
// Calculate the cutoff date (end date + 7 days)
$activity_data = ActivityMaster::where('subscription_id', $subscription_id)->orderBy('end_date', 'desc')->first();
// return $activity_data;
// dd($activity_data);
$end_date = $activity_data->end_date;
// dd($end_date);
$cutoffDate = Carbon::parse($end_date)->addDays(7)->toDateString();
// dd($cutoffDate);
// $desired_date = Carbon::createFromDate(2024, 1, 2);
// $cutoffDate = $desired_date->format('Y-m-d');
$current_date = Carbon::now()->format('Y-m-d');
$data['data'] = [];
// dd($cutoffDate);
// Check if the current date is past the cutoff date
if (Carbon::now()->toDateString() > $cutoffDate) {
$data['data'] = ['0'];
// dd($data);
return view('website.pages.your_activity',compact('data'));
}
$data['past_activity'] = ActivityMaster::where('subscription_id', $subscription_id)->where('end_date','<',$cutoffDate)->with('teacher_data')->orderBy('start_date', 'desc')->first();
// dd($data['past_activity']);
if ($data['past_activity'] !== null) {
$schedule_data = ActivitySchedule::where('activity_master_id', $data['past_activity']['id'])->with('past_data')->orderBy('start_date', 'asc')->get()->toArray();
// dd($schedule_data);
} else {
$data['past_activity'] = [];
$schedule_data = []; // Set an empty array when $data['past_activity'] is null
}
$data_schedule = [];
foreach ($schedule_data as $k => $val){
if (empty($val['past_data'])){
continue;
}else{
$data_schedule[] = $val;
}
}
$data['past_activity']['schedule'] = $data_schedule;
// $userIP = $request->ip();
// $response = Http::get("https://ipinfo.io/{$userIP}/json");
// $locationData = $response->json();
// // dd($locationData);
// $userTimeZone = $locationData['timezone'];
// // dd($userTimeZone);
// $timestamp = $data['live_activity'][0]->new_time; // Use square brackets to access elements
// // dd()
// $originalTime = Carbon::parse($timestamp,$userTimeZone);
// $date = Carbon::createFromFormat('H:i:s', $timestamp, 'UTC');
// $date->setTimezone($userTimeZone);
// dd($date);
// $userTime = $originalTime->copy();
// $userTime->setTimezone($userTimeZone);
// $userTimeFormatted = $userTime->format('H:i:s');
// // dd($userTimeFormatted);
// $data['live_activity'] = $data['live_activity']->map(function ($item) use ($userTimeZone) {
// $timestamp = $item->new_time;
// // $normalTime = Carbon::createFromFormat('H:i', $timestamp, $userTimeZone); // Replace 'your_timezone' with the actual timezone of the 'time' column
// $normalTime = Carbon::parse($timestamp, $userTimeZone);
// $convertedTime = $normalTime->setTimezone($userTimeZone); // Convert to the user's time zone
// $item->new_time = $convertedTime->format('H:i'); // Update the 'time' value with the user's time zone in 'HH:mm' format
// return $item;
// })->toArray();
// echo "<pre>";
// print_r($data['live_activity']);
// exit;
return view('website.pages.your_activity',$data);
}
}

View File

@@ -0,0 +1,14 @@
<?php
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/EmptyPHP.php to edit this template
*/
function api_response($code, $message, $data){
return [
"status_code" => $code,
"message"=>$message,
"data"=>$data
];
}

View File

@@ -0,0 +1 @@
<?php use Illuminate\Support\Facades\Storage; use Image as thumbimage; /** * Created By : Pradyumn Dwivedi * Created at : 16 January 2023 * Use : Function for listing image url */ if (!function_exists('ListingImageUrl')) { function ListingImageUrl($type, $imageName) { $src = ''; $defaultImagePath = ""; if (!empty($imageName) && file_exists('public/uploads/' . $type . '/' . $imageName)) { $src = 'public/uploads/' . $type . '/' . $imageName . '?d=' . time(); } else { //default image path $src = $defaultImagePath; } return url($src); } }

View File

@@ -0,0 +1,25 @@
<?php
use GeoIp2\Database\Reader;
function getCountryTimeZone($userSelectedCountry)
{
// Path to the GeoIP2 database file
$databasePath = storage_path('app/GeoLite2-Country.mmdb'); // Replace with the path to your downloaded database file
// Initialize the GeoIP2 reader
$reader = new Reader($databasePath);
try {
// Look up the country for the user's selected IP address or country code
$record = $reader->country($userSelectedCountry);
// Get the time zone from the country data
$timeZone = $record->location->timeZone;
return $timeZone;
} catch (\Exception $e) {
// Handle exceptions if the country code or IP address is not found
return 'UTC'; // Default to UTC if not found
}
}

View File

@@ -0,0 +1,86 @@
<?php
use App\Models\PersonalAccessToken;
use App\Models\LeaderboardMaster;
use GeoIp2\Database\Reader;
function generateRandomOTP(){
// return rand(1000, 9999);
return 1234;
}
function readHeaderToken()
{
$tokenData = Session::get('tokenData');
$token = JWTAuth::setToken($tokenData)->getPayload();
$userCheck = PersonalAccessToken::where([['user_id', $token['sub']], ['token', $tokenData]])->get();
if(count($userCheck) == 0 || $userCheck[0]->token == '')
{
$msg_data['data'] = array([
'success' => 0,
'messsage' => 'Please Login and try again.'
]);
}
return $token;
}
//leader dashboard filter for elite
function GroupLevelElites(){
$elites_user_id = [];
$totalUsers = LeaderboardMaster::count();
//top 30 percent for elites from all data
$eliteCount = ceil($totalUsers * 0.3);
$elites = LeaderboardMaster::where('total_score', '>=', 'some_value')
->orderBy('total_score', 'desc')
->take($eliteCount)
->get();
foreach ($elites as $k => $val){
$elites_user_id[] = $val->user_id;
}
$data['elites'] = $elites;
$data['elites_user_id'] = $elites_user_id;
return $data;
}
//leader dashboard filter for gamechanger
function GroupLevelGameChanger(){
$gamechanger_user_id = [];
$elit_data = GroupLevelElites();
$elites_user_id = $elit_data['elites_user_id'];
$remainingUsers = LeaderboardMaster::whereNotIn('user_id', $elites_user_id);
$gameChangerCount = ceil($remainingUsers->get()->count() * 0.3);
$remainingUsersData = $remainingUsers->take($gameChangerCount)->orderBy('total_score', 'desc')->get();
foreach ($remainingUsersData as $value){
$gamechanger_user_id[] = $value['user_id'];
}
//pushing gamechanger user id to elite user id
foreach ($gamechanger_user_id as $ids){
array_push($elites_user_id, $ids);
}
$data['game_changer'] = $remainingUsersData;
$data['all_top_users_id'] = $elites_user_id;
return $data;
}
function getCountryTimeZone($userSelectedCountry)
{
// Path to the GeoIP2 database file
$databasePath = storage_path('app/GeoLite2-Country.mmdb'); // Replace with the path to your downloaded database file
// Initialize the GeoIP2 reader
$reader = new Reader($databasePath);
try {
// Look up the country for the user's selected IP address or country code
$record = $reader->country($userSelectedCountry);
// Get the time zone from the country data
$timeZone = $record->location->timeZone;
return $timeZone;
} catch (\Exception $e) {
// Handle exceptions if the country code or IP address is not found
return 'UTC'; // Default to UTC if not found
}
}

71
app/Http/Kernel.php Normal file
View File

@@ -0,0 +1,71 @@
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array<string, class-string|string>
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'admin' => \App\Http\Middleware\AdminMiddleware::class,
'website' => \App\Http\Middleware\WebsiteMiddleware::class,
'jwt.verify' => \App\Http\Middleware\JwtMiddleware::class,
'log_execution_time' => \App\Http\Middleware\RequestExecutionTimeLogMiddleware::class, // added by Pradyumn on 9 july 2024;
];
}

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if(!Auth::guard('admin')->check()){
return redirect('/admin/sign_in');
}
return $next($request);
}
}

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
class AuthCheck
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if(Session::has('data'))
{
return $next($request);
} else {
return redirect('/');
}
//// dd(Session()->all());
// if(!Session()->has('_token')){
// return redirect('sign_in')->with('error_msg','You must be logged in..');
// }
// return $request;
//
// if($response instanceof \Illuminate\Http\Response) {
// return $next($request)->header('Cache-Control','no-cache, no-store, max-age=0, must-revalidate')
// ->header('Pragma','no-cache')
// ->header('Expires','Sat 01 Jan 1990 00:00:00 GMT');;
// }
// $response = $next($request);
//
// foreach($header as $key => $value)
// {
// $response->headers->set($key, $value);
// }
// return $response;
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array<int, string>
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use JWTAuth;
use Session;
use Exception;
use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;
use App\Models\User;
use Carbon\Carbon;
use Auth;
class JwtMiddleware extends BaseMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try {
$token = $request->header('access-token');
$data = JWTAuth::setToken($token)->getPayload();
// dd($data['sub']);
$user = User::find($data['sub']);
// dd($user);
$subscriptionEndDate = Carbon::parse($user->end_date);
// dd($subscriptionEndDate);
$todaysDate = Carbon::now()->toDateString();
$subscriptionEndsIn7Days = $subscriptionEndDate->addDays(7)->toDateString();
if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todaysDate)
{
// Auth::logout();
$logout = auth('api')->logout();
return response()->json(['success' => false,'status' => 'Authentication failed.']);
}
} catch (Exception $e) {
if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException){
return response()->json(['status' => 'Token is Invalid']);
}else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException){
return response()->json(['status' => 'Token is Expired']);
}else{
return response()->json(['status' => 'Authorization Token not found' , 'status_code' => 201]);
}
}
Session::flash('tokenData', $token);
return $next($request);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array<int, string>
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @param string|null ...$guards
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class RequestExecutionTimeLogMiddleware
{
/**
* Handle an incoming request.
*
* Created By: Pradyumn Dwivedi
* Created at: 9 July 2024
* Use: To log APIs execution time middleware
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
// Get the start time
$startTime = microtime(true);
// Proceed with the request
$response = $next($request);
// Calculate the execution time
$executionTime = microtime(true) - $startTime;
// Log the details
$logMessage = sprintf(
'Method: %s | URL: %s | Execution Time: %s ms',
$request->method(),
$request->fullUrl(),
number_format($executionTime * 1000, 2)
);
Log::info($logMessage);
return $response;
// return $next($request);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array<int, string>
*/
protected $except = [
'current_password',
'password',
'password_confirmation',
];
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array<int, string|null>
*/
public function hosts()
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array<int, string>|string|null
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers =
Request::HEADER_X_FORWARDED_FOR |
Request::HEADER_X_FORWARDED_HOST |
Request::HEADER_X_FORWARDED_PORT |
Request::HEADER_X_FORWARDED_PROTO |
Request::HEADER_X_FORWARDED_AWS_ELB;
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Routing\Middleware\ValidateSignature as Middleware;
class ValidateSignature extends Middleware
{
/**
* The names of the query string parameters that should be ignored.
*
* @var array<int, string>
*/
protected $except = [
// 'fbclid',
// 'utm_campaign',
// 'utm_content',
// 'utm_medium',
// 'utm_source',
// 'utm_term',
];
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array<int, string>
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
use Carbon\Carbon;
class WebsiteMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if(!Auth::check()){
return redirect('/Home');
}else{
$userData = Auth::user();
$todaysDate = Carbon::now()->toDateString();
$subscriptionEndDate = Carbon::parse($userData->end_date);
$subscriptionEndsIn7Days = $subscriptionEndDate->addDays(7)->toDateString();
if($subscriptionEndsIn7Days == null || $subscriptionEndsIn7Days < $todaysDate)
{
return redirect()->route('logout');
// Auth::logout();
}
}
return $next($request);
}
}