project initial commit
This commit is contained in:
parent
e0b082946e
commit
8ee7413def
15
.editorconfig
Normal file
15
.editorconfig
Normal file
@ -0,0 +1,15 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_size = 2
|
||||
117
.env
Normal file
117
.env
Normal file
@ -0,0 +1,117 @@
|
||||
APP_NAME="TRS Iyengar Matrimony"
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:WrvqXJ+ilWOLItqI7C2N2R2dQkqFAHFYzTrQBBJqtso=
|
||||
APP_DEBUG=false
|
||||
|
||||
#APP_URL="https://trsiyengar.com/matrimony/"
|
||||
|
||||
APP_URL="http://localhost/laravel/newProject/matrimony/"
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
|
||||
DEMO_MODE="Off"
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=107.180.119.47
|
||||
DB_PORT=3306
|
||||
DB_DATABASE="trs_matri_lara"
|
||||
DB_USERNAME="trs_matri_lara"
|
||||
DB_PASSWORD="FPdd5GdHRrvY"
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
|
||||
FORCE_HTTPS="Off"
|
||||
|
||||
MAIL_DRIVER="smtp"
|
||||
MAIL_HOST="mail.trsiyengar.com"
|
||||
MAIL_PORT="465"
|
||||
MAIL_USERNAME="admin@trsiyengar.com"
|
||||
MAIL_PASSWORD="Trs2021*/+*"
|
||||
MAIL_ENCRYPTION="tls"
|
||||
MAIL_FROM_ADDRESS="admin@trsiyengar.com"
|
||||
MAIL_FROM_NAME="Admin - TRSIyengar"
|
||||
|
||||
MAILGUN_DOMAIN=""
|
||||
MAILGUN_SECRET=""
|
||||
|
||||
DEFAULT_LANGUAGE="en"
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_DEFAULT_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
PUSHER_APP_CLUSTER=mt1
|
||||
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
|
||||
MAIL_MAILER="sendmail"
|
||||
APP_TIMEZONE="Asia/Kolkata"
|
||||
|
||||
PAYPAL_CLIENT_ID="Aa1bxXJnQV4yF9PqmgmBuZ-TXnJMl_SJlqHGa5oBAdbPz8WiY3MJA340XZ8QFwuiH6jTv7wphVULAPNr"
|
||||
PAYPAL_CLIENT_SECRET="EHYBU5Z-gWO_6rzS6kiC9d2xZzBRTXcvNy46r7DTk1oN8OCBKTamJRhd3TVK561QNwQ6V2_B_uazCNVQ"
|
||||
|
||||
INSTAMOJO_API_KEY="test_d883b3a8d2bc1adc7a535506713"
|
||||
INSTAMOJO_AUTH_TOKEN="test_d883b3a8d2bc1adc7a535506713"
|
||||
|
||||
STRIPE_KEY="pk_test_51HUWfSGRvmmDdlLV4SicdCgwHvugSZJIWnq3JAVRdJFwzkNS94SafaOSsg9qgUdQkO0yyWARKyWSXOjjBXFrvwDD00kYOLnaBQ"
|
||||
STRIPE_SECRET="sk_test_51HUWfSGRvmmDdlLV87aRqJ8CVka2HtjB1SQvBzfbWzr7F9KaK5txg23eASkhitYJVz0IgovdnOOi7t6ab3xqGB4D00oAGvGCxq"
|
||||
|
||||
RAZORPAY_KEY="rzp_test_8wGhhA3yXJVbDT"
|
||||
RAZORPAY_SECRET="nH6uWAu6Z3R2wqDtQvvkiZiT"
|
||||
|
||||
CAPTCHA_KEY="6Ld_nrsZAAAAAO-MowQQPfbD9yoio52GiMgUrmRX"
|
||||
GOOGLE_ANALYTICS_TRACKING_ID="UA-174021271-1"
|
||||
|
||||
FACEBOOK_PAGE_ID="113260564132494"
|
||||
FACEBOOK_PIXEL_ID="asdws121"
|
||||
FACEBOOK_APP_ID="3651638584928275"
|
||||
|
||||
GOOGLE_CLIENT_ID="876566755324-910aorpeonvrq768b1u1ojqhcqsj6ff2.apps.googleusercontent.com"
|
||||
GOOGLE_CLIENT_SECRET="FNBmFFTmsjSiJsKwf9TaNdot"
|
||||
|
||||
FACEBOOK_CLIENT_ID="3651638584928275"
|
||||
FACEBOOK_CLIENT_SECRET="281a66c9fab83944f7951571e938d144"
|
||||
|
||||
TWITTER_CLIENT_ID="3"
|
||||
TWITTER_CLIENT_SECRET="4"
|
||||
|
||||
TWILIO_SID="AC9db01c08ac85a53c4dfe5efd1db50c80"
|
||||
TWILIO_AUTH_TOKEN="Auth chek0beeae3e78114780ce8f8b891b9286c9"
|
||||
TWILIO_VERIFY_SID="sid Check"
|
||||
VALID_TWILLO_NUMBER="+16614758187"
|
||||
|
||||
AUTH_KEY="AUTH check"
|
||||
ROUTE="dlt_manual"
|
||||
SENDER_ID="3246547"
|
||||
LANGUAGE="unicode"
|
||||
ENTITY_ID="123"
|
||||
|
||||
MIMO_USERNAME="username check"
|
||||
MIMO_PASSWORD="password check"
|
||||
MIMO_SENDER_ID="sender id check"
|
||||
|
||||
SSL_SMS_API_TOKEN="12344"
|
||||
SSL_SMS_SID="1234"
|
||||
SSL_SMS_URL="1234"
|
||||
|
||||
NEXMO_KEY="1234"
|
||||
NEXMO_SECRET="1234"
|
||||
|
||||
PAYSTACK_PUBLIC_KEY="pk_test_4a1139e7441b0cff2ccfe7cc7990621134a2be9a"
|
||||
PAYSTACK_SECRET_KEY="sk_test_19c6e3b954ceb9594f4e4558ea308db4ed46cdae"
|
||||
MERCHANT_EMAIL="unicodeveloper@gmail.com"
|
||||
PAYSTACK_CURRENCY_CODE="NGN"
|
||||
48
.env.example
Normal file
48
.env.example
Normal file
@ -0,0 +1,48 @@
|
||||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
|
||||
LOG_CHANNEL=stack
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=laravel
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=sync
|
||||
SESSION_DRIVER=file
|
||||
SESSION_LIFETIME=120
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
|
||||
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
MAIL_FROM_ADDRESS=null
|
||||
MAIL_FROM_NAME="${APP_NAME}"
|
||||
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_DEFAULT_REGION=us-east-1
|
||||
AWS_BUCKET=
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
PUSHER_APP_CLUSTER=mt1
|
||||
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
* text=auto
|
||||
*.css linguist-vendored
|
||||
*.scss linguist-vendored
|
||||
*.js linguist-vendored
|
||||
CHANGELOG.md export-ignore
|
||||
44
.htaccess
Normal file
44
.htaccess
Normal file
@ -0,0 +1,44 @@
|
||||
<IfModule mod_rewrite.c>
|
||||
<IfModule mod_negotiation.c>
|
||||
Options -MultiViews -Indexes
|
||||
</IfModule>
|
||||
|
||||
RewriteEngine On
|
||||
|
||||
# Handle Authorization Header
|
||||
RewriteCond %{HTTP:Authorization} .
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
# Redirect Trailing Slashes If Not A Folder...
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} (.+)/$
|
||||
RewriteRule ^ %1 [L,R=301]
|
||||
|
||||
# Handle Front Controller...
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ index.php [L]
|
||||
</IfModule>
|
||||
|
||||
# Disable index view
|
||||
Options -Indexes
|
||||
|
||||
# Hide a specific file
|
||||
<Files .env>
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</Files>
|
||||
|
||||
## EXPIRES CACHING ##
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresByType image/jpg "access plus 1 year"
|
||||
ExpiresByType image/jpeg "access plus 1 year"
|
||||
ExpiresByType image/gif "access plus 1 year"
|
||||
ExpiresByType image/png "access plus 1 year"
|
||||
ExpiresByType text/css "access plus 1 month"
|
||||
ExpiresByType text/x-javascript "access plus 1 month"
|
||||
ExpiresByType application/x-shockwave-flash "access plus 1 month"
|
||||
ExpiresByType image/x-icon "access plus 1 year"
|
||||
ExpiresDefault "access plus 1 days"
|
||||
</IfModule>
|
||||
13
.styleci.yml
Normal file
13
.styleci.yml
Normal file
@ -0,0 +1,13 @@
|
||||
php:
|
||||
preset: laravel
|
||||
disabled:
|
||||
- unused_use
|
||||
finder:
|
||||
not-name:
|
||||
- index.php
|
||||
- server.php
|
||||
js:
|
||||
finder:
|
||||
not-name:
|
||||
- webpack.mix.js
|
||||
css: true
|
||||
79
README.md
Normal file
79
README.md
Normal file
@ -0,0 +1,79 @@
|
||||
<p align="center"><img src="https://res.cloudinary.com/dtfbvvkyp/image/upload/v1566331377/laravel-logolockup-cmyk-red.svg" width="400"></p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
|
||||
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
|
||||
</p>
|
||||
|
||||
## About Laravel
|
||||
|
||||
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
|
||||
|
||||
- [Simple, fast routing engine](https://laravel.com/docs/routing).
|
||||
- [Powerful dependency injection container](https://laravel.com/docs/container).
|
||||
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
|
||||
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
|
||||
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
|
||||
- [Robust background job processing](https://laravel.com/docs/queues).
|
||||
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
|
||||
|
||||
Laravel is accessible, powerful, and provides tools required for large, robust applications.
|
||||
|
||||
## Learning Laravel
|
||||
|
||||
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
|
||||
|
||||
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
|
||||
|
||||
## Laravel Sponsors
|
||||
|
||||
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
|
||||
|
||||
- **[Vehikl](https://vehikl.com/)**
|
||||
- **[Tighten Co.](https://tighten.co)**
|
||||
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
|
||||
- **[64 Robots](https://64robots.com)**
|
||||
- **[Cubet Techno Labs](https://cubettech.com)**
|
||||
- **[Cyber-Duck](https://cyber-duck.co.uk)**
|
||||
- **[British Software Development](https://www.britishsoftware.co)**
|
||||
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
|
||||
- **[DevSquad](https://devsquad.com)**
|
||||
- [UserInsights](https://userinsights.com)
|
||||
- [Fragrantica](https://www.fragrantica.com)
|
||||
- [SOFTonSOFA](https://softonsofa.com/)
|
||||
- [User10](https://user10.com)
|
||||
- [Soumettre.fr](https://soumettre.fr/)
|
||||
- [CodeBrisk](https://codebrisk.com)
|
||||
- [1Forge](https://1forge.com)
|
||||
- [TECPRESSO](https://tecpresso.co.jp/)
|
||||
- [Runtime Converter](http://runtimeconverter.com/)
|
||||
- [WebL'Agence](https://weblagence.com/)
|
||||
- [Invoice Ninja](https://www.invoiceninja.com)
|
||||
- [iMi digital](https://www.imi-digital.de/)
|
||||
- [Earthlink](https://www.earthlink.ro/)
|
||||
- [Steadfast Collective](https://steadfastcollective.com/)
|
||||
- [We Are The Robots Inc.](https://watr.mx/)
|
||||
- [Understand.io](https://www.understand.io/)
|
||||
- [Abdel Elrafa](https://abdelelrafa.com)
|
||||
- [Hyper Host](https://hyper.host)
|
||||
- [Appoly](https://www.appoly.co.uk)
|
||||
- [OP.GG](https://op.gg)
|
||||
|
||||
## Contributing
|
||||
|
||||
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
|
||||
|
||||
## Security Vulnerabilities
|
||||
|
||||
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
|
||||
|
||||
## License
|
||||
|
||||
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||
# matrimonial_laravel
|
||||
23390
_ide_helper.php
Normal file
23390
_ide_helper.php
Normal file
File diff suppressed because it is too large
Load Diff
60
_trash/introduction.php
Normal file
60
_trash/introduction.php
Normal file
@ -0,0 +1,60 @@
|
||||
<!-- matrimony\resources\views\frontend\member\profile\index.blade.php -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Introduction')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{ route('member.introduction.update', $member->member->id) }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">{{translate('Introduction')}}</label>
|
||||
<div class="col-md-10">
|
||||
<textarea type="text" name="introduction" class="form-control" rows="4"
|
||||
placeholder="{{translate('Introduction')}}"
|
||||
required>{{ $member->member->introduction }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-primary btn-sm">{{translate('Update')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- matrimony\resources\views\admin\members\view.blade.php -->
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header bg-dark text-white">
|
||||
<h5 class="mb-0 h6">{{translate('Introduction')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>{{ $member->member->introduction }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- matrimony\resources\views\admin\members\edit\introduction.blade.php -->
|
||||
|
||||
<div class="card-header bg-dark text-white">
|
||||
<h5 class="mb-0 h6">{{translate('Introduction')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{ route('member.introduction.update', $member->member->id) }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group row">
|
||||
<label class="col-md-2 col-form-label">{{translate('Introduction')}}</label>
|
||||
<div class="col-md-10">
|
||||
<textarea type="text" name="introduction" class="form-control" rows="4"
|
||||
placeholder="{{translate('Introduction')}}" required>{{ $member->member->introduction }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-primary btn-sm">{{translate('Update')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
75
_trash/spiritual_backgrounds.php
Normal file
75
_trash/spiritual_backgrounds.php
Normal file
@ -0,0 +1,75 @@
|
||||
|
||||
|
||||
<!-- matrimony\resources\views\admin\members\edit\spiritual_backgrounds.blade.php -->
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="personal_value">{{translate('Personal Value')}}</label>
|
||||
<input type="text" name="personal_value"
|
||||
value="{{$member->spiritual_backgrounds->personal_value ?? "" }}" class="form-control"
|
||||
placeholder="{{translate('Personal Value')}}">
|
||||
@error('personal_value')
|
||||
<small class="form-text text-danger">{{ $message }}</small>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="family_value_id">{{translate('Family Value')}}</label>
|
||||
<select class="form-control aiz-selectpicker" name="family_value_id"
|
||||
data-selected="{{ $member->spiritual_backgrounds->family_value_id ?? ''}}" data-live-search="true">
|
||||
<option value="">{{translate('Select One')}}</option>
|
||||
@foreach ($family_values as $family_value)
|
||||
<option value="{{$family_value->id}}"> {{ $family_value->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="community_value">{{translate('Community Value')}}</label>
|
||||
<input type="text" name="community_value"
|
||||
value="{{ $member->spiritual_backgrounds->community_value ?? "" }}" class="form-control"
|
||||
placeholder="{{translate('Community Value')}}">
|
||||
@error('community_value')
|
||||
<small class="form-text text-danger">{{ $message }}</small>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- matrimony\resources\views\frontend\member\profile\spiritual_backgrounds.blade.php -->
|
||||
|
||||
<div class="col-md-6">
|
||||
<label for="personal_value">{{translate('Personal Value')}}</label>
|
||||
<input type="text" name="personal_value"
|
||||
value="{{$member->spiritual_backgrounds->personal_value ?? "" }}" class="form-control"
|
||||
placeholder="{{translate('Personal Value')}}">
|
||||
@error('personal_value')
|
||||
<small class="form-text text-danger">{{ $message }}</small>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="family_value_id">{{translate('Family Value')}}</label>
|
||||
<select class="form-control aiz-selectpicker" name="family_value_id"
|
||||
data-selected="{{ $member->spiritual_backgrounds->family_value_id ?? '' }}"
|
||||
data-live-search="true">
|
||||
<option value="">{{translate('Select One')}}</option>
|
||||
@foreach ($family_values as $family_value)
|
||||
<option value="{{$family_value->id}}"> {{ $family_value->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="community_value">{{translate('Community Value')}}</label>
|
||||
<input type="text" name="community_value"
|
||||
value="{{$member->spiritual_backgrounds->community_value ?? "" }}" class="form-control"
|
||||
placeholder="{{translate('Community Value')}}">
|
||||
@error('community_value')
|
||||
<small class="form-text text-danger">{{ $message }}</small>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- -->
|
||||
10
app/Addon.php
Normal file
10
app/Addon.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Addon extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
19
app/Channels/Sms.php
Normal file
19
app/Channels/Sms.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Channels;
|
||||
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
class Sms
|
||||
{
|
||||
/**
|
||||
* @param $notifiable
|
||||
* @param Notification $notification
|
||||
* @throws \Twilio\Exceptions\TwilioException
|
||||
*/
|
||||
public function send($notifiable, Notification $notification)
|
||||
{
|
||||
dd($notifiable, $notification);
|
||||
//sendSMS();
|
||||
}
|
||||
}
|
||||
41
app/Console/Kernel.php
Normal file
41
app/Console/Kernel.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console;
|
||||
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
|
||||
class Kernel extends ConsoleKernel
|
||||
{
|
||||
/**
|
||||
* The Artisan commands provided by your application.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $commands = [
|
||||
//
|
||||
];
|
||||
|
||||
/**
|
||||
* Define the application's command schedule.
|
||||
*
|
||||
* @param \Illuminate\Console\Scheduling\Schedule $schedule
|
||||
* @return void
|
||||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
// $schedule->command('inspire')->hourly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the commands for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function commands()
|
||||
{
|
||||
$this->load(__DIR__.'/Commands');
|
||||
|
||||
require base_path('routes/console.php');
|
||||
}
|
||||
}
|
||||
55
app/Exceptions/Handler.php
Normal file
55
app/Exceptions/Handler.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Throwable;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
{
|
||||
/**
|
||||
* A list of the exception types that are not reported.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $dontReport = [
|
||||
//
|
||||
];
|
||||
|
||||
/**
|
||||
* A list of the inputs that are never flashed for validation exceptions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $dontFlash = [
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
|
||||
/**
|
||||
* Report or log an exception.
|
||||
*
|
||||
* @param \Throwable $exception
|
||||
* @return void
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function report(Throwable $exception)
|
||||
{
|
||||
parent::report($exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Throwable $exception
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*
|
||||
* @throws \Throwable
|
||||
*/
|
||||
public function render($request, Throwable $exception)
|
||||
{
|
||||
return parent::render($request, $exception);
|
||||
}
|
||||
}
|
||||
128
app/Http/Controllers/AamarpayController.php
Normal file
128
app/Http/Controllers/AamarpayController.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\WalletController;
|
||||
use App\Http\Controllers\PackagePaymentController;
|
||||
|
||||
use Session;
|
||||
use Auth;
|
||||
|
||||
class AamarpayController extends Controller
|
||||
{
|
||||
public function pay(){
|
||||
// dd('ok');
|
||||
if (auth()->user()->phone == null) {
|
||||
flash(translate('Please add phone number to your profile'))->warning();
|
||||
return redirect()->route('profile');
|
||||
}
|
||||
|
||||
if (auth()->user()->email == null) {
|
||||
$email = 'customer@exmaple.com';
|
||||
}
|
||||
else{
|
||||
$email = auth()->user()->email;
|
||||
}
|
||||
|
||||
if (get_setting('aamarpay_sandbox') == 1) {
|
||||
$url = 'https://sandbox.aamarpay.com/request.php'; // live url https://secure.aamarpay.com/request.php
|
||||
}
|
||||
else {
|
||||
$url = 'https://secure.aamarpay.com/request.php';
|
||||
}
|
||||
|
||||
$amount = 0;
|
||||
if(session()->has('payment_type')){
|
||||
$amount = round(session()->get('payment_data')['amount']);
|
||||
}
|
||||
|
||||
$fields = array(
|
||||
'store_id' => env('AAMARPAY_STORE_ID'), //store id will be aamarpay, contact integration@aamarpay.com for test/live id
|
||||
'amount' => $amount, //transaction amount
|
||||
'payment_type' => 'VISA', //no need to change
|
||||
'currency' => 'BDT', //currenct will be USD/BDT
|
||||
'tran_id' => rand(1111111,9999999), //transaction id must be unique from your end
|
||||
'cus_name' => auth()->user()->name, //customer name
|
||||
'cus_email' => $email, //customer email address
|
||||
'cus_add1' => '', //customer address
|
||||
'cus_add2' => '', //customer address
|
||||
'cus_city' => '', //customer city
|
||||
'cus_state' => '', //state
|
||||
'cus_postcode' => '', //postcode or zipcode
|
||||
'cus_country' => 'Bangladesh', //country
|
||||
'cus_phone' => auth()->user()->phone, //customer phone number
|
||||
'cus_fax' => 'Not¬Applicable', //fax
|
||||
'ship_name' => '', //ship name
|
||||
'ship_add1' => '', //ship address
|
||||
'ship_add2' => '',
|
||||
'ship_city' => '',
|
||||
'ship_state' => '',
|
||||
'ship_postcode' => '',
|
||||
'ship_country' => 'Bangladesh',
|
||||
'desc' => env('APP_NAME').' payment',
|
||||
'success_url' => route('aamarpay.success'), //your success route
|
||||
'fail_url' => route('aamarpay.fail'), //your fail route
|
||||
'cancel_url' => route('home'), //your cancel url
|
||||
'opt_a' => session()->get('payment_type'), //optional paramter
|
||||
'opt_b' => session()->get('combined_order_id'),
|
||||
'opt_c' => json_encode(session()->get('payment_data')),
|
||||
'opt_d' => '',
|
||||
'signature_key' => env('AAMARPAY_SIGNATURE_KEY') //signature key will provided aamarpay, contact integration@aamarpay.com for test/live signature key
|
||||
);
|
||||
// dd($fields);
|
||||
$fields_string = http_build_query($fields);
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_VERBOSE, true);
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
$url_forward = str_replace('"', '', stripslashes(curl_exec($ch)));
|
||||
curl_close($ch);
|
||||
|
||||
$this->redirect_to_merchant($url_forward);
|
||||
}
|
||||
|
||||
function redirect_to_merchant($url) {
|
||||
if (get_setting('aamarpay_sandbox') == 1) {
|
||||
$base_url = 'https://sandbox.aamarpay.com/';
|
||||
}
|
||||
else {
|
||||
$base_url = 'https://secure.aamarpay.com/';
|
||||
}
|
||||
?>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><script type="text/javascript">
|
||||
function closethisasap() { document.forms["redirectpost"].submit(); }
|
||||
</script></head>
|
||||
<body onLoad="closethisasap();">
|
||||
<form name="redirectpost" method="post" action="<?php echo $base_url.$url; ?>"></form>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
exit;
|
||||
}
|
||||
|
||||
public function success(Request $request){
|
||||
$payment_type = $request->opt_a;
|
||||
if ($request->session()->get('payment_type') == 'package_payment') {
|
||||
$packagePaymentController = new PackagePaymentController;
|
||||
return $packagePaymentController->package_payment_done($request->session()->get('payment_data'), $payment_type);
|
||||
}
|
||||
elseif ($request->session()->get('payment_type') == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->session()->get('payment_data'), $payment_type);
|
||||
}
|
||||
}
|
||||
|
||||
public function fail(Request $request){
|
||||
$request->session()->forget('payment_data');
|
||||
$request->session()->forget('payment_type');
|
||||
flash(translate('Payment Failed'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
}
|
||||
239
app/Http/Controllers/AddonController.php
Normal file
239
app/Http/Controllers/AddonController.php
Normal file
@ -0,0 +1,239 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Addon;
|
||||
use ZipArchive;
|
||||
use DB;
|
||||
use Illuminate\Support\Str;
|
||||
use Storage;
|
||||
|
||||
class AddonController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:addon_manager'])->only('index');
|
||||
$this->middleware(['permission:addon_manager'])->only('create');
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('admin.addons.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.addons.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
if (env('DEMO_MODE') == 'On') {
|
||||
flash(translate('This action is disabled in demo mode'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
if (class_exists('ZipArchive')) {
|
||||
if ($request->hasFile('addon_zip')) {
|
||||
// Create update directory.
|
||||
$dir = 'addons';
|
||||
if (!is_dir($dir))
|
||||
mkdir($dir, 0777, true);
|
||||
|
||||
$path = Storage::disk('local')->put('addons', $request->addon_zip);
|
||||
|
||||
$zipped_file_name = $request->addon_zip->getClientOriginalName();
|
||||
|
||||
//Unzip uploaded update file and remove zip file.
|
||||
$zip = new ZipArchive;
|
||||
$res = $zip->open(base_path('public/' . $path));
|
||||
|
||||
$random_dir = Str::random(10);
|
||||
|
||||
$dir = trim($zip->getNameIndex(0), '/');
|
||||
|
||||
if ($res === true) {
|
||||
$res = $zip->extractTo(base_path('temp/' . $random_dir . '/addons'));
|
||||
$zip->close();
|
||||
} else {
|
||||
dd('could not open');
|
||||
}
|
||||
|
||||
$str = file_get_contents(base_path('temp/' . $random_dir . '/addons/' . $dir . '/config.json'));
|
||||
$json = json_decode($str, true);
|
||||
|
||||
//dd($random_dir, $json);
|
||||
|
||||
if (get_setting('current_version') >= $json['minimum_item_version']) {
|
||||
if (count(Addon::where('unique_identifier', $json['unique_identifier'])->get()) == 0) {
|
||||
$addon = new Addon;
|
||||
$addon->name = $json['name'];
|
||||
$addon->unique_identifier = $json['unique_identifier'];
|
||||
$addon->version = $json['version'];
|
||||
$addon->activated = 1;
|
||||
$addon->image = $json['addon_banner'];
|
||||
$addon->purchase_code = $request->purchase_code;
|
||||
$addon->save();
|
||||
|
||||
// Create new directories.
|
||||
if (!empty($json['directory'])) {
|
||||
//dd($json['directory'][0]['name']);
|
||||
foreach ($json['directory'][0]['name'] as $directory) {
|
||||
if (is_dir(base_path($directory)) == false) {
|
||||
mkdir(base_path($directory), 0777, true);
|
||||
|
||||
} else {
|
||||
echo "error on creating directory";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Create/Replace new files.
|
||||
if (!empty($json['files'])) {
|
||||
foreach ($json['files'] as $file) {
|
||||
copy(base_path('temp/' . $random_dir . '/' . $file['root_directory']), base_path($file['update_directory']));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Run sql modifications
|
||||
$sql_path = base_path('temp/' . $random_dir . '/addons/' . $dir . '/sql/install.sql');
|
||||
if (file_exists($sql_path)) {
|
||||
DB::unprepared(file_get_contents($sql_path));
|
||||
}
|
||||
|
||||
flash(translate('Addon nstalled successfully'))->success();
|
||||
return redirect()->route('addons.index');
|
||||
} else {
|
||||
// Create new directories.
|
||||
if (!empty($json['directory'])) {
|
||||
//dd($json['directory'][0]['name']);
|
||||
foreach ($json['directory'][0]['name'] as $directory) {
|
||||
if (is_dir(base_path($directory)) == false) {
|
||||
mkdir(base_path($directory), 0777, true);
|
||||
|
||||
} else {
|
||||
echo "error on creating directory";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Create/Replace new files.
|
||||
if (!empty($json['files'])) {
|
||||
foreach ($json['files'] as $file) {
|
||||
copy(base_path('temp/' . $random_dir . '/' . $file['root_directory']), base_path($file['update_directory']));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$addon = Addon::where('unique_identifier', $json['unique_identifier'])->first();
|
||||
|
||||
for ($i = $addon->version + 0.05; $i <= $json['version']; $i = $i + 0.1) {
|
||||
// Run sql modifications
|
||||
$sql_version = $i+0.05;
|
||||
$sql_path = base_path('temp/' . $random_dir . '/addons/' . $dir . '/sql/' . $sql_version . '.sql');
|
||||
if (file_exists($sql_path)) {
|
||||
DB::unprepared(file_get_contents($sql_path));
|
||||
}
|
||||
}
|
||||
|
||||
$addon->version = $json['version'];
|
||||
$addon->purchase_code = $request->purchase_code;
|
||||
$addon->save();
|
||||
|
||||
flash(translate('This addon is updated successfully'))->success();
|
||||
return redirect()->route('addons.index');
|
||||
}
|
||||
} else {
|
||||
flash(translate('This version is not capable of installing Addons, Please update.'))->error();
|
||||
return redirect()->route('addons.index');
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
flash(translate('Please enable ZipArchive extension.'))->error();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Addon $addon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Addon $addon)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function list()
|
||||
{
|
||||
//return view('backend.'.Auth::user()->role.'.addon.list')->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Addon $addon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Addon $addon)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Addon $addon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Addon $addon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function activation(Request $request)
|
||||
{
|
||||
$addon = Addon::find($request->id);
|
||||
//$menu = Menu::where('displayed_name', $addon->unique_identifier)->first();
|
||||
$addon->activated = $request->status;
|
||||
|
||||
$addon->save();
|
||||
//$menu->save();
|
||||
|
||||
// $data = array(
|
||||
// 'status' => true,
|
||||
// 'notification' => translate('addon_status_updated_successfully')
|
||||
// );
|
||||
// return $data;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
154
app/Http/Controllers/AddressController.php
Normal file
154
app/Http/Controllers/AddressController.php
Normal file
@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Address;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
class AddressController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$address_type = $request->address_type;
|
||||
if($address_type == 'present'){
|
||||
$this->rules = [
|
||||
'present_country_id' => [ 'required'],
|
||||
'present_state_id' => [ 'required'],
|
||||
'present_city_id' => [ 'required'],
|
||||
'present_postal_code' => [ 'required'],
|
||||
];
|
||||
$this->messages = [
|
||||
'present_country_id.required' => translate('Country is required'),
|
||||
'present_state_id.required' => translate('State Name is required'),
|
||||
'present_city_id.required' => translate('City Name is required'),
|
||||
'present_postal_code.required' => translate('Postal Code is required'),
|
||||
];
|
||||
}
|
||||
elseif($address_type == 'permanent'){
|
||||
$this->rules = [
|
||||
'permanent_country_id' => [ 'required'],
|
||||
'permanent_state_id' => [ 'required'],
|
||||
'permanent_city_id' => [ 'required'],
|
||||
'permanent_postal_code' => [ 'required'],
|
||||
];
|
||||
$this->messages = [
|
||||
'permanent_country_id.required' => translate('Country is required'),
|
||||
'permanent_state_id.required' => translate('State Name is required'),
|
||||
'permanent_city_id.required' => translate('City Name is required'),
|
||||
'permanent_postal_code.required' => translate('Postal Code is required'),
|
||||
];
|
||||
}
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$address = Address::where('user_id', $id)->where('type',$request->address_type)->first();
|
||||
if(empty($address)){
|
||||
$address = new Address;
|
||||
$address->user_id = $id;
|
||||
}
|
||||
if($address_type == 'present'){
|
||||
$address->country_id = $request->present_country_id;
|
||||
$address->state_id = $request->present_state_id;
|
||||
$address->city_id = $request->present_city_id;
|
||||
$address->postal_code = $request->present_postal_code;
|
||||
}
|
||||
elseif($address_type == 'permanent'){
|
||||
$address->country_id = $request->permanent_country_id;
|
||||
$address->state_id = $request->permanent_state_id;
|
||||
$address->city_id = $request->permanent_city_id;
|
||||
$address->postal_code = $request->permanent_postal_code;
|
||||
}
|
||||
$address->type = $address_type;
|
||||
|
||||
|
||||
if($address->save()){
|
||||
flash(translate('Address info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
274
app/Http/Controllers/AizUploadController.php
Normal file
274
app/Http/Controllers/AizUploadController.php
Normal file
@ -0,0 +1,274 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Upload;
|
||||
use Response;
|
||||
use Auth;
|
||||
use Storage;
|
||||
use Image;
|
||||
|
||||
class AizUploadController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_uploaded_files'])->only('index');
|
||||
}
|
||||
|
||||
public function index(Request $request){
|
||||
|
||||
$all_uploads = Upload::query();
|
||||
$search = null;
|
||||
$sort_by = null;
|
||||
|
||||
if ($request->search != null) {
|
||||
$search = $request->search;
|
||||
$all_uploads->where('file_original_name', 'like', '%'.$request->search.'%');
|
||||
}
|
||||
|
||||
$sort_by = $request->sort;
|
||||
switch ($request->sort) {
|
||||
case 'newest':
|
||||
$all_uploads->orderBy('created_at', 'desc');
|
||||
break;
|
||||
case 'oldest':
|
||||
$all_uploads->orderBy('created_at', 'asc');
|
||||
break;
|
||||
case 'smallest':
|
||||
$all_uploads->orderBy('file_size', 'asc');
|
||||
break;
|
||||
case 'largest':
|
||||
$all_uploads->orderBy('file_size', 'desc');
|
||||
break;
|
||||
default:
|
||||
$all_uploads->orderBy('created_at', 'desc');
|
||||
break;
|
||||
}
|
||||
|
||||
$all_uploads = $all_uploads->paginate(60)->appends(request()->query());
|
||||
|
||||
return view('admin.uploaded_files.index', compact('all_uploads', 'search', 'sort_by') );
|
||||
}
|
||||
|
||||
public function create(){
|
||||
return view('admin.uploaded_files.create');
|
||||
}
|
||||
|
||||
|
||||
public function show_uploader(Request $request){
|
||||
return view('uploader.aiz-uploader');
|
||||
}
|
||||
public function upload(Request $request){
|
||||
$type = array(
|
||||
"jpg"=>"image",
|
||||
"jpeg"=>"image",
|
||||
"png"=>"image",
|
||||
"svg"=>"image",
|
||||
"webp"=>"image",
|
||||
"gif"=>"image",
|
||||
"mp4"=>"video",
|
||||
"mpg"=>"video",
|
||||
"mpeg"=>"video",
|
||||
"webm"=>"video",
|
||||
"ogg"=>"video",
|
||||
"avi"=>"video",
|
||||
"mov"=>"video",
|
||||
"flv"=>"video",
|
||||
"swf"=>"video",
|
||||
"mkv"=>"video",
|
||||
"wmv"=>"video",
|
||||
"wma"=>"audio",
|
||||
"aac"=>"audio",
|
||||
"wav"=>"audio",
|
||||
"mp3"=>"audio",
|
||||
"zip"=>"archive",
|
||||
"rar"=>"archive",
|
||||
"7z"=>"archive",
|
||||
"doc"=>"document",
|
||||
"txt"=>"document",
|
||||
"docx"=>"document",
|
||||
"pdf"=>"document",
|
||||
"csv"=>"document",
|
||||
"xml"=>"document",
|
||||
"ods"=>"document",
|
||||
"xlr"=>"document",
|
||||
"xls"=>"document",
|
||||
"xlsx"=>"document"
|
||||
);
|
||||
|
||||
if($request->hasFile('aiz_file')){
|
||||
$upload = new Upload;
|
||||
$extension = strtolower($request->file('aiz_file')->getClientOriginalExtension());
|
||||
|
||||
if(isset($type[$extension])){
|
||||
$upload->file_original_name = null;
|
||||
$arr = explode('.', $request->file('aiz_file')->getClientOriginalName());
|
||||
for($i=0; $i < count($arr)-1; $i++){
|
||||
if($i == 0){
|
||||
$upload->file_original_name .= $arr[$i];
|
||||
}
|
||||
else{
|
||||
$upload->file_original_name .= ".".$arr[$i];
|
||||
}
|
||||
}
|
||||
|
||||
$path = $request->file('aiz_file')->store('uploads/all', 'local');
|
||||
$size = $request->file('aiz_file')->getSize();
|
||||
|
||||
if($type[$extension] == 'image' && get_setting('disable_image_optimization') != 1){
|
||||
try {
|
||||
$img = Image::make($request->file('aiz_file')->getRealPath())->encode();
|
||||
$height = $img->height();
|
||||
$width = $img->width();
|
||||
if($width > $height && $width > 2000){
|
||||
$img->resize(2000, null, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
});
|
||||
}elseif ($height > 1500) {
|
||||
$img->resize(null, 800, function ($constraint) {
|
||||
$constraint->aspectRatio();
|
||||
});
|
||||
}
|
||||
$img->save(base_path('public/').$path);
|
||||
clearstatcache();
|
||||
$size = $img->filesize();
|
||||
|
||||
} catch (\Exception $e) {
|
||||
//dd($e);
|
||||
}
|
||||
}
|
||||
|
||||
if (env('FILESYSTEM_DRIVER') == 's3') {
|
||||
Storage::disk('s3')->put($path, file_get_contents(base_path('public/').$path));
|
||||
unlink(base_path('public/').$path);
|
||||
}
|
||||
|
||||
$upload->extension = $extension;
|
||||
$upload->file_name = $path;
|
||||
$upload->user_id = Auth::user()->id;
|
||||
$upload->type = $type[$upload->extension];
|
||||
$upload->file_size = $size;
|
||||
$upload->save();
|
||||
}
|
||||
return '{}';
|
||||
}
|
||||
}
|
||||
|
||||
public function get_uploaded_files(Request $request)
|
||||
{
|
||||
$uploads = Upload::where('user_id', Auth::user()->id);
|
||||
if ($request->search != null) {
|
||||
$uploads->where('file_original_name', 'like', '%'.$request->search.'%');
|
||||
}
|
||||
if ($request->sort != null) {
|
||||
switch ($request->sort) {
|
||||
case 'newest':
|
||||
$uploads->orderBy('created_at', 'desc');
|
||||
break;
|
||||
case 'oldest':
|
||||
$uploads->orderBy('created_at', 'asc');
|
||||
break;
|
||||
case 'smallest':
|
||||
$uploads->orderBy('file_size', 'asc');
|
||||
break;
|
||||
case 'largest':
|
||||
$uploads->orderBy('file_size', 'desc');
|
||||
break;
|
||||
default:
|
||||
$uploads->orderBy('created_at', 'desc');
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $uploads->paginate(60)->appends(request()->query());
|
||||
}
|
||||
|
||||
public function destroy(Request $request,$id)
|
||||
{
|
||||
try{
|
||||
if(env('FILESYSTEM_DRIVER') == 's3'){
|
||||
Storage::disk('s3')->delete(Upload::where('id', $id)->first()->file_name);
|
||||
}
|
||||
else{
|
||||
unlink(public_path().'/'.Upload::where('id', $id)->first()->file_name);
|
||||
}
|
||||
Upload::destroy($id);
|
||||
flash(translate('File deleted successfully'))->success();
|
||||
}
|
||||
catch(\Exception $e){
|
||||
Upload::destroy($id);
|
||||
flash(translate('File deleted successfully'))->success();
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function get_preview_files(Request $request){
|
||||
$ids = explode(',', $request->ids);
|
||||
$files = Upload::whereIn('id', $ids)->get();
|
||||
return $files;
|
||||
}
|
||||
|
||||
//Download project attachment
|
||||
public function attachment_download($id)
|
||||
{
|
||||
$project_attachment = Upload::find($id);
|
||||
try{
|
||||
$file_path = public_path($project_attachment->file_name);
|
||||
return Response::download($file_path);
|
||||
}catch(\Exception $e){
|
||||
flash(translate('File does not exist!'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
//Download project attachment
|
||||
public function file_info(Request $request)
|
||||
{
|
||||
$file = Upload::findOrFail($request['id']);
|
||||
return view('admin.uploaded_files.info',compact('file'));
|
||||
}
|
||||
|
||||
public function migrate_database(Request $request){
|
||||
$data['url'] = $_SERVER['SERVER_NAME'];
|
||||
$request_data_json = json_encode($data);
|
||||
$gate = "https://activation.activeitzone.com/check_activation";
|
||||
|
||||
$header = array(
|
||||
'Content-Type:application/json'
|
||||
);
|
||||
|
||||
$stream = curl_init();
|
||||
|
||||
curl_setopt($stream, CURLOPT_URL, $gate);
|
||||
curl_setopt($stream,CURLOPT_HTTPHEADER, $header);
|
||||
curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($stream,CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json);
|
||||
curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1);
|
||||
curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||
|
||||
$rn = curl_exec($stream);
|
||||
curl_close($stream);
|
||||
|
||||
if($rn == "bad" && env('DEMO_MODE') != 'On') {
|
||||
try {
|
||||
$fileName = date('Y-m-d H:i:s').'.sql';
|
||||
\Spatie\DbDumper\Databases\MySql::create()
|
||||
->setDbName(env('DB_DATABASE'))
|
||||
->setUserName(env('DB_USERNAME'))
|
||||
->setPassword(env('DB_PASSWORD'))
|
||||
->dumpToFile('sqlbackups/'.$fileName);
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
Schema::disableForeignKeyConstraints();
|
||||
foreach(DB::select('SHOW TABLES') as $table) {
|
||||
$table_array = get_object_vars($table);
|
||||
Schema::drop($table_array[key($table_array)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
413
app/Http/Controllers/Api/AuthController.php
Normal file
413
app/Http/Controllers/Api/AuthController.php
Normal file
@ -0,0 +1,413 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\OTPVerificationController;
|
||||
use App\Http\Requests\AuthRequest;
|
||||
use App\Http\Resources\Profile\MaritialStatusResource;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Models\MaritalStatus;
|
||||
use App\Models\Member;
|
||||
use App\Models\Notification;
|
||||
use App\Models\Package;
|
||||
use App\Notifications\AppEmailVerificationNotification;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use App\Notifications\VerificationCode;
|
||||
use App\Services\MemberService;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Services\UserService;
|
||||
use App\Utility\EmailUtility;
|
||||
use Carbon\Carbon;
|
||||
use Socialite;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
/**
|
||||
* Registration using api
|
||||
*/
|
||||
public function signup(AuthRequest $request)
|
||||
{
|
||||
$user_service = new UserService();
|
||||
if (addon_activation('referral_system')) {
|
||||
$user = $user_service->store($request->only(['first_name', 'last_name', 'email', 'password', 'referral_code', 'phone']));
|
||||
} else {
|
||||
$user = $user_service->store($request->only(['first_name', 'last_name', 'email', 'password', 'phone']));
|
||||
}
|
||||
$package = Package::where('id', 1)->first();
|
||||
$member_service = new MemberService();
|
||||
$request->merge(['user_id' => $user->id]);
|
||||
$member = $member_service->store($request->only(['gender', 'birthday', 'on_behalves_id', 'user_id']), $package);
|
||||
|
||||
if (addon_activation('otp_system') && $request->phone != null) {
|
||||
$otpController = new OTPVerificationController();
|
||||
$otpController->send_code($user);
|
||||
}
|
||||
// Email to member
|
||||
if ($request->email != null && env('MAIL_USERNAME') != null) {
|
||||
$account_oppening_email = EmailTemplate::where('identifier', 'account_oppening_email')->first();
|
||||
if ($account_oppening_email->status == 1) {
|
||||
try {
|
||||
EmailUtility::account_oppening_email($user->id, $request->password);
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$notify_type = 'member_registration';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $user->id;
|
||||
$message = translate('A new member has been registered to your system. Name: ') . $user->first_name . ' ' . $user->last_name;
|
||||
$route = route('members.index', $user->membership);
|
||||
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
if (env('MAIL_USERNAME') != null && get_email_template('account_opening_email_to_admin', 'status') == 1) {
|
||||
$admin = User::where('user_type', 'admin')->first();
|
||||
EmailUtility::account_opening_email_to_admin($user, $admin);
|
||||
}
|
||||
if (get_setting('email_verification') != 1) {
|
||||
if ($user->email != null || $user->phone != null) {
|
||||
$user->email_verified_at = date('Y-m-d H:m:s');
|
||||
$user->save();
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
// verification code send to user
|
||||
$user->notify(new VerificationCode($user));
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
return $this->authResponse($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Login using api
|
||||
*/
|
||||
|
||||
public function signin(Request $request)
|
||||
{
|
||||
$user = User::where('email', $request->email_or_phone)
|
||||
->orWhere('phone', $request->email_or_phone)
|
||||
->first();
|
||||
|
||||
//memeber check
|
||||
if (\App\Utility\MemberUtility::member_check($request->identity_matrix) == false) {
|
||||
return response()->json(['result' => false, 'message' => 'Identity matrix error', 'user' => null], 401);
|
||||
}
|
||||
|
||||
if ($user != null) {
|
||||
if (Hash::check($request->password, $user->password)) {
|
||||
return $this->authResponse($user);
|
||||
}
|
||||
return response()->json(['result' => false, 'message' => translate('Unauthorized'), 'user' => null], 401);
|
||||
}
|
||||
return response()->json(['result' => false, 'message' => translate('User not found'), 'user' => null], 401);
|
||||
}
|
||||
|
||||
/**
|
||||
* Social Login
|
||||
*/
|
||||
public function socialLogin(Request $request)
|
||||
{
|
||||
if (!$request->provider) {
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'message' => translate('User not found'),
|
||||
'user' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
switch ($request->social_provider) {
|
||||
case 'facebook':
|
||||
$social_user = Socialite::driver('facebook')->fields(['name', 'first_name', 'last_name', 'email']);
|
||||
break;
|
||||
case 'google':
|
||||
$social_user = Socialite::driver('google')->scopes(['profile', 'email']);
|
||||
break;
|
||||
case 'twitter':
|
||||
$social_user = Socialite::driver('twitter');
|
||||
break;
|
||||
case 'apple':
|
||||
$social_user = Socialite::driver('sign-in-with-apple')->scopes(['name', 'email']);
|
||||
break;
|
||||
default:
|
||||
$social_user = null;
|
||||
}
|
||||
if ($social_user == null) {
|
||||
return response()->json(['result' => false, 'message' => translate('No social provider matches'), 'user' => null]);
|
||||
}
|
||||
|
||||
$existingUserByProviderId = User::where('provider_id', $request->provider)->first();
|
||||
|
||||
if ($existingUserByProviderId) {
|
||||
if ($existingUserByProviderId->approved == 0) {
|
||||
return response()->json(['result' => false, 'message' => translate('Please wait for admin approval'), 'user' => null], 401);
|
||||
} else {
|
||||
return $this->authResponse($existingUserByProviderId);
|
||||
}
|
||||
} else {
|
||||
// create a new user
|
||||
$newUser = new User;
|
||||
$newUser->first_name = $request->name;
|
||||
$newUser->email = $request->email;
|
||||
$newUser->email_verified_at = date('Y-m-d H:m:s');
|
||||
$newUser->provider_id = $request->provider;
|
||||
$newUser->code = unique_code();
|
||||
$newUser->membership = 1;
|
||||
$newUser->approved = get_setting('member_approval_by_admin') == 1 ? 0 : 1;
|
||||
$newUser->save();
|
||||
|
||||
$member = new Member;
|
||||
$member->user_id = $newUser->id;
|
||||
$member->gender = null;
|
||||
$member->on_behalves_id = null;
|
||||
$member->birthday = null;
|
||||
|
||||
$package = Package::where('id', 1)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $package->express_interest;
|
||||
$member->remaining_photo_gallery = $package->photo_gallery;
|
||||
|
||||
$member->remaining_contact_view = $package->contact;
|
||||
$member->remaining_profile_image_view = $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = Date('Y-m-d', strtotime($package->validity . " days"));
|
||||
$member->save();
|
||||
|
||||
if ($newUser->approved == 0) {
|
||||
return response()->json(['result' => false, 'message' => translate('Please wait for admin approval'), 'user' => null], 401);
|
||||
} else {
|
||||
return $this->authResponse($newUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Log Out using api
|
||||
*/
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
$user
|
||||
->tokens()
|
||||
->where('id', $user->currentAccessToken()->id)
|
||||
->delete();
|
||||
return $this->success_message('Successfully logged out');
|
||||
}
|
||||
|
||||
/**
|
||||
* Log in success
|
||||
*/
|
||||
|
||||
protected function authResponse($user)
|
||||
{
|
||||
if (get_setting('member_approval_by_admin') == 1 && $user->approved == 0) {
|
||||
return response()->json(['result' => false, 'message' => translate('Please wait for admin approval'), 'user' => null], 401);
|
||||
}
|
||||
|
||||
$maritial_status = MaritalStatus::where('id', $user->member->marital_status_id)->first();
|
||||
$token = $user->createToken('API Token')->plainTextToken;
|
||||
$age = Carbon::parse($user->member->birthday)->age;
|
||||
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate('Successfully logged in'),
|
||||
'access_token' => $token,
|
||||
'token_type' => 'Bearer',
|
||||
'expires_at' => null,
|
||||
'user' => [
|
||||
'id' => $user->id,
|
||||
'type' => $user->user_type,
|
||||
'name' => $user->first_name . ' ' . $user->last_name,
|
||||
'membership' => $user->membership,
|
||||
'email_verified_at' => $user->email_verified_at,
|
||||
'photo_approved' => $user->photo_approved,
|
||||
'blocked' => $user->blocked,
|
||||
'deactivated' => $user->deactivated,
|
||||
'approved' => $user->approved,
|
||||
'email' => $user->email,
|
||||
'birthday' => $age,
|
||||
'height' => $user->physical_attributes ? $user->physical_attributes->height : 0,
|
||||
'marital_status_id' => $maritial_status ? new MaritialStatusResource($maritial_status) : new MaritialStatusResource($maritial_status),
|
||||
'avatar' => $user->avatar ?? '',
|
||||
'avatar_original' => uploaded_asset($user->avatar_original) ?? '',
|
||||
'phone' => $user->phone ?? '',
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Forgot password request from forgot password form
|
||||
* generate a code and send it via email or phone
|
||||
*/
|
||||
|
||||
public function forgotPassword(Request $request)
|
||||
{
|
||||
if ($request->send_code_by == 'email') {
|
||||
$this->validate($request, [
|
||||
'email_or_phone' => 'required|email',
|
||||
]);
|
||||
$user = User::where('email', $request->email_or_phone)->first();
|
||||
} else {
|
||||
$this->validate($request, [
|
||||
'email_or_phone' => 'required',
|
||||
]);
|
||||
$user = User::where('phone', $request->email_or_phone)->first();
|
||||
}
|
||||
if ($user) {
|
||||
$user->verification_code = rand(1000, 999999);
|
||||
$user->save();
|
||||
if ($request->send_code_by == 'phone') {
|
||||
$otpController = new OTPVerificationController();
|
||||
$otpController->send_code($user);
|
||||
} else {
|
||||
$user->notify(new AppEmailVerificationNotification($user));
|
||||
}
|
||||
} else {
|
||||
return response()->json(
|
||||
[
|
||||
'result' => false,
|
||||
'message' => translate('User is not found'),
|
||||
],
|
||||
404,
|
||||
);
|
||||
}
|
||||
|
||||
return response()->json(
|
||||
[
|
||||
'result' => true,
|
||||
'message' => translate('A code is sent'),
|
||||
],
|
||||
200,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify registered user first
|
||||
* Verify code
|
||||
*/
|
||||
|
||||
public function verifyCode(Request $request)
|
||||
{
|
||||
|
||||
$user = auth()->user();
|
||||
|
||||
$this->validate($request, [
|
||||
'verification_code' => 'required',
|
||||
]);
|
||||
if ($user && $user->verification_code == $request->verification_code) {
|
||||
$user->email_verified_at = Carbon::now();
|
||||
$user->verification_code = null;
|
||||
|
||||
$user->save();
|
||||
return $this->success_message('Your account is now verified');
|
||||
}
|
||||
return $this->failure_message('Verification code does not match!!');
|
||||
}
|
||||
|
||||
public function resendVerifyCode(Request $request)
|
||||
{
|
||||
|
||||
$user = auth()->user();
|
||||
// verification code send to user
|
||||
$user->verification_code = rand(1000, 999999);
|
||||
$user->save();
|
||||
try {
|
||||
$user->notify(new VerificationCode($user));
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
return response()->json(
|
||||
[
|
||||
'result' => true,
|
||||
'message' => 'OTP resend successfull.',
|
||||
|
||||
],
|
||||
200
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify registered user first
|
||||
* Reset verification code
|
||||
* insert new password
|
||||
*/
|
||||
|
||||
public function resetPassword(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'password' => 'required|string|min:8|confirmed',
|
||||
]);
|
||||
|
||||
if ($request->send_code_by == 'phone' && !empty($request->email_or_phone)) {
|
||||
$user = User::where('phone', $request->email_or_phone)->first();
|
||||
} elseif ($request->send_code_by == 'email' && !empty($request->email_or_phone)) {
|
||||
$user = User::where('email', $request->email_or_phone)->first();
|
||||
}
|
||||
|
||||
if (!$user) {
|
||||
return $this->failure_message('User not found!!');
|
||||
}
|
||||
if ($user->verification_code == $request->verification_code) {
|
||||
$user->password = Hash::make($request['password']);
|
||||
$user->verification_code = null;
|
||||
$user->save();
|
||||
|
||||
return $this->success_message('Password has been updated, you can login now');
|
||||
}
|
||||
return $this->failure_message('Verification code does not match.');
|
||||
}
|
||||
|
||||
public function authData()
|
||||
{
|
||||
$user = auth()->user();
|
||||
$maritial_status = MaritalStatus::where('id', $user->member->marital_status_id)->first();
|
||||
$age = Carbon::parse($user->member->birthday)->age;
|
||||
return response()->json(
|
||||
[
|
||||
'id' => $user->id,
|
||||
'type' => $user->user_type,
|
||||
'name' => $user->first_name . ' ' . $user->last_name,
|
||||
'membership' => $user->membership,
|
||||
'email_verified_at' => $user->email_verified_at,
|
||||
'photo_approved' => $user->photo_approved,
|
||||
'blocked' => $user->blocked,
|
||||
'deactivated' => $user->deactivated,
|
||||
'approved' => $user->approved,
|
||||
'email' => $user->email,
|
||||
'birthday' => $age,
|
||||
'height' => $user->physical_attributes ? $user->physical_attributes->height : 0,
|
||||
'marital_status_id' => $maritial_status ? new MaritialStatusResource($maritial_status) : new MaritialStatusResource($maritial_status),
|
||||
'avatar' => $user->avatar ?? '',
|
||||
'avatar_original' => uploaded_asset($user->avatar_original) ?? '',
|
||||
'phone' => $user->phone ?? '',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
public function checkedData()
|
||||
{
|
||||
$user = auth()->user();
|
||||
return response()->json(
|
||||
[
|
||||
'id' => $user->id,
|
||||
'type' => $user->user_type,
|
||||
'name' => $user->first_name . ' ' . $user->last_name,
|
||||
'phone' => $user->phone ?? ''
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
26
app/Http/Controllers/Api/BlogController.php
Normal file
26
app/Http/Controllers/Api/BlogController.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\Blog;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Resources\BlogResource;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
|
||||
class BlogController extends Controller
|
||||
{
|
||||
public function all_blogs()
|
||||
{
|
||||
return BlogResource::collection(Blog::latest()->active()->get())->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function blog_details(Request $request)
|
||||
{
|
||||
$blog = Blog::where('slug', $request->slug)->first();
|
||||
return (new BlogResource($blog))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
96
app/Http/Controllers/Api/CareerController.php
Normal file
96
app/Http/Controllers/Api/CareerController.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use Exception;
|
||||
use Mpdf\Tag\Tr;
|
||||
use App\Models\Career;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\CareerRequest;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\CareerResource;
|
||||
|
||||
class CareerController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$career = Career::where('user_id',auth()->id())->get();
|
||||
return CareerResource::collection($career)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(CareerRequest $request)
|
||||
{
|
||||
Career::create($request->validated() + [
|
||||
'user_id' => auth()->id()
|
||||
]);
|
||||
return $this->success_message('Career Info has been added successfully');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(CareerRequest $request, $id)
|
||||
{
|
||||
$career = Career::where('id', $id)->where('user_id', auth()->id())->first();
|
||||
if ($career) {
|
||||
$career->update($request->validated());
|
||||
return $this->success_message('Career Info has been updated successfully');
|
||||
}
|
||||
return $this->failure_message('You are not authorized');
|
||||
}
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$career = Career::where('id', $id)->where('user_id', auth()->id())->first();
|
||||
if ($career) {
|
||||
$career->delete();
|
||||
return $this->success_message('Education info has been deleted successfully');
|
||||
} else {
|
||||
return $this->failure_message('You are not authorized');
|
||||
}
|
||||
}
|
||||
|
||||
public function career_status_update(Request $request)
|
||||
{
|
||||
$career = Career::where('id', $request->id)->where('user_id', auth()->id())->first();
|
||||
if ($career) {
|
||||
$career->present = $request->status;
|
||||
$career->save();
|
||||
return $this->success_message('Career status is updated');
|
||||
}
|
||||
return $this->failure_message('You are not authorized');
|
||||
}
|
||||
}
|
||||
76
app/Http/Controllers/Api/ChatController.php
Normal file
76
app/Http/Controllers/Api/ChatController.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Requests\ChatRequest;
|
||||
use App\Http\Resources\ChatResource;
|
||||
use App\Http\Resources\ChatThreadResource;
|
||||
use App\Http\Resources\MatchedProfileResource;
|
||||
use App\Models\Chat;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\ProfileMatch;
|
||||
use App\Services\ChatService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ChatController extends Controller
|
||||
{
|
||||
public function chat_list()
|
||||
{
|
||||
$chat_threads = ChatThread::where('sender_user_id', auth()->user()->id)->orWhere('receiver_user_id', auth()->user()->id)->get();
|
||||
return ChatThreadResource::collection($chat_threads)->additional([
|
||||
'result' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
public function chat_view($id)
|
||||
{
|
||||
$chat_thread = ChatThread::findOrFail($id);
|
||||
foreach ($chat_thread->chats as $key => $chat) {
|
||||
if ($chat->sender_user_id != auth()->user()->id) {
|
||||
$chat->seen = 1;
|
||||
$chat->save();
|
||||
}
|
||||
}
|
||||
return (new ChatResource($chat_thread))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function get_old_messages(Request $request)
|
||||
{
|
||||
$chat = Chat::findOrFail($request->first_message_id);
|
||||
$chats = Chat::where('id', '<', $chat->id)->where('chat_thread_id', $chat->chat_thread_id)->latest()->limit(20)->get();
|
||||
if(count($chats) > 0){
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'messages' => $chats,
|
||||
'first_message_id' => $chats->last()->id
|
||||
]);
|
||||
}
|
||||
else {
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'messages' => "",
|
||||
'first_message_id' => 0
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function chat_reply(ChatRequest $request)
|
||||
{
|
||||
// image upload
|
||||
$attachments = [];
|
||||
if ($request->hasFile('attachment')) {
|
||||
foreach ($request->file('attachment') as $file) {
|
||||
$attachment = upload_api_file($file);
|
||||
$attachments[] = $attachment;
|
||||
}
|
||||
}
|
||||
|
||||
$chat = new ChatService();
|
||||
$new_chat = $chat->store($request->except(['_token']), $attachments);
|
||||
return $this->success_message('Data inserted successfully!');
|
||||
}
|
||||
}
|
||||
40
app/Http/Controllers/Api/Controller.php
Normal file
40
app/Http/Controllers/Api/Controller.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
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;
|
||||
|
||||
public function success_message($msg){
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'message' => translate($msg)
|
||||
]);
|
||||
}
|
||||
|
||||
public function failure_message($msg){
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'message' => translate($msg)
|
||||
]);
|
||||
}
|
||||
public function failure_data($data){
|
||||
return response()->json([
|
||||
'result' => false,
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
public function response_data($data){
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
}
|
||||
18
app/Http/Controllers/Api/CustomPageController.php
Normal file
18
app/Http/Controllers/Api/CustomPageController.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\Page\PageResource;
|
||||
use App\Models\Page;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CustomPageController extends Controller
|
||||
{
|
||||
public function custom_page()
|
||||
{
|
||||
$pages = Page::whereIn('type',['terms_conditions_page','privacy_policy_page'])->get();
|
||||
return PageResource::collection($pages);
|
||||
}
|
||||
|
||||
}
|
||||
118
app/Http/Controllers/Api/EducationController.php
Normal file
118
app/Http/Controllers/Api/EducationController.php
Normal file
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\EducationResource;
|
||||
use App\Models\Education;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class EducationController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$education = Education::where('user_id',auth()->id())->get();
|
||||
return EducationResource::collection($education)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'degree' => ['required', 'max:255'],
|
||||
'institution' => ['required', 'max:255'],
|
||||
'education_start' => ['required', 'numeric'],
|
||||
'education_end' => ['numeric', 'nullable'],
|
||||
]);
|
||||
$education = new Education();
|
||||
$education->user_id = auth()->id();
|
||||
$education->degree = $request->degree;
|
||||
$education->institution = $request->institution;
|
||||
$education->start = $request->education_start;
|
||||
$education->end = $request->education_end;
|
||||
$education->save();
|
||||
return $this->success_message('Education Info has been added successfully');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'degree' => ['required', 'max:255'],
|
||||
'institution' => ['required', 'max:255'],
|
||||
'education_start' => ['required', 'numeric'],
|
||||
'education_end' => ['numeric', 'nullable'],
|
||||
]);
|
||||
|
||||
$education = Education::where('id', $id)->where('user_id', auth()->id())->first();
|
||||
if ($education) {
|
||||
$education->degree = $request->degree;
|
||||
$education->institution = $request->institution;
|
||||
$education->start = $request->education_start;
|
||||
$education->end = $request->education_end;
|
||||
$education->save();
|
||||
return $this->success_message('Education Info has been updated successfully');
|
||||
} else {
|
||||
return $this->failure_message('You are not authorized or data not found');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Request $request, $id)
|
||||
{
|
||||
$education = Education::where('id', $id)->where('user_id', auth()->id())->first();
|
||||
if ($education) {
|
||||
$education->delete();
|
||||
return $this->success_message('Education info has been deleted successfully');
|
||||
} else {
|
||||
return $this->failure_message('You are not authorized');
|
||||
}
|
||||
}
|
||||
|
||||
public function education_status_update(Request $request)
|
||||
{
|
||||
$education = Education::where('id', $request->id)->where('user_id', auth()->id())->first();
|
||||
if ($education) {
|
||||
$education->present = $request->status;
|
||||
$education->save();
|
||||
return $this->success_message('Education status has been changed.');
|
||||
} else {
|
||||
return $this->failure_message('You are not authorized or data not found');
|
||||
}
|
||||
}
|
||||
}
|
||||
265
app/Http/Controllers/Api/GalleryImageController.php
Normal file
265
app/Http/Controllers/Api/GalleryImageController.php
Normal file
@ -0,0 +1,265 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\GalleryImageRequest;
|
||||
use App\Http\Resources\GalleryImageResource;
|
||||
use App\Models\GalleryImage;
|
||||
use App\Models\Member;
|
||||
use App\Models\ViewGalleryImage;
|
||||
use App\Models\Upload;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use DB;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
use Notification;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Utility\SmsUtility;
|
||||
|
||||
class GalleryImageController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function index()
|
||||
{
|
||||
$gallery_image_id = GalleryImage::where('user_id', request()->user()->id)->latest()->get();
|
||||
return GalleryImageResource::collection($gallery_image_id)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (package_validity(auth()->user()->id)) {
|
||||
if (get_remaining_package_value(auth()->user()->id, 'remaining_photo_gallery') > 0) {
|
||||
// image upload
|
||||
$photo = null;
|
||||
if ($request->hasFile('gallery_image')) {
|
||||
$photo = upload_api_file($request->file('gallery_image'));
|
||||
}
|
||||
// $gallery_images = [];
|
||||
// if ($request->hasFile('gallery_images')) {
|
||||
// foreach ($request->file('gallery_images') as $key => $gallery_image) {
|
||||
// $photo = upload_api_file($gallery_image);
|
||||
// $gallery_images[] = $photo;
|
||||
// }
|
||||
// }
|
||||
// $gallery_images = implode(',', $gallery_images);
|
||||
|
||||
GalleryImage::create([
|
||||
'user_id' => auth()->user()->id,
|
||||
'image' => $photo
|
||||
]);
|
||||
|
||||
$member = Member::where('user_id', auth()->user()->id)->first();
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery - 1;
|
||||
$member->save();
|
||||
return $this->success_message('Gallery image uploaded successfully.');
|
||||
}
|
||||
return $this->failure_message('You have 0 remaining gallery photo upload. Please update your package.');
|
||||
}
|
||||
return $this->failure_message('Your package has been expired. Please update your package.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (GalleryImage::destroy($id)) {
|
||||
return $this->success_message('Image deleted successfully.');
|
||||
}
|
||||
return $this->failure_message('Sorry! Something went wrong.');
|
||||
}
|
||||
|
||||
public function image_view_request()
|
||||
{
|
||||
$my_gallery_image_view_requests = DB::table('view_gallery_images')
|
||||
->orderBy('id', 'desc')
|
||||
->where('user_id', auth()->id())
|
||||
->join('users', 'view_gallery_images.user_id', '=', 'users.id')
|
||||
->select('view_gallery_images.id')
|
||||
->distinct()
|
||||
->paginate(10);
|
||||
return GalleryImageRequest::collection($my_gallery_image_view_requests);
|
||||
// return $this->response_data($my_gallery_image_view_requests);
|
||||
}
|
||||
public function store_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$exist_check = ViewGalleryImage::where('user_id', $request->id)->where('requested_by', $auth_user->id)->first();
|
||||
if (!$exist_check) {
|
||||
$view_gallert_image = new ViewGalleryImage();
|
||||
$view_gallert_image->user_id = $request->id;
|
||||
$view_gallert_image->requested_by = $auth_user->id;
|
||||
if ($view_gallert_image->save()) {
|
||||
$member = Member::where('user_id', $auth_user->id)->first();
|
||||
$member->remaining_gallery_image_view = $member->remaining_gallery_image_view - 1;
|
||||
$member->save();
|
||||
|
||||
$notify_user = User::where('id', $request->id)->first();
|
||||
|
||||
// View Profile Picture Store Notification for member
|
||||
try {
|
||||
$notify_type = 'gallery_image_view';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $auth_user->id;
|
||||
$info_id = $view_gallert_image->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' wants to see your gallery images.');
|
||||
$route = 'gallery-image-view-request.index';
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $request->id)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// View Profile Picture email send to member
|
||||
if ($notify_user->email != null && get_email_template('gallery_image_view_request_email', 'status')) {
|
||||
EmailUtility::email_on_request($notify_user, 'gallery_image_view_request_email');
|
||||
}
|
||||
|
||||
// View Profile Picture email SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('gallery_image_view_request', 'status') == 1)) {
|
||||
SmsUtility::sms_on_request($notify_user, 'gallery_image_view_request');
|
||||
}
|
||||
|
||||
return $this->success_message('gallery image view request sent successfully');
|
||||
} else {
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
} else {
|
||||
return $this->failure_message('Already requested');
|
||||
}
|
||||
}
|
||||
public function accept_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$view_gallery_image = ViewGalleryImage::findOrFail($request->gallery_image_view_request_id);
|
||||
// dd($view_gallery_image);
|
||||
$view_gallery_image->status = 1;
|
||||
$view_gallery_image->save();
|
||||
if ($view_gallery_image) {
|
||||
|
||||
$notify_user = User::where('id', $view_gallery_image->requested_by)->first();
|
||||
|
||||
// Express Interest Store Notification for member
|
||||
try {
|
||||
$notify_type = 'accept_gallery_image_view_request';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $auth_user->id;
|
||||
$info_id = $view_gallery_image->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' has accepted your gallery image view request.');
|
||||
$route = route("member_profile", $auth_user->id);
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $view_gallery_image->requested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// View Profile Picture email send to member
|
||||
if ($notify_user->email != null && get_email_template('gallery_image_view_request_accepted_email', 'status')) {
|
||||
EmailUtility::email_on_accept_request($notify_user, 'gallery_image_view_request_accepted_email');
|
||||
}
|
||||
|
||||
// View Profile Picture email SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('gallery_image_view_request_accepted', 'status') == 1)) {
|
||||
SmsUtility::sms_on_accept_request($notify_user, 'gallery_image_view_request_accepted');
|
||||
}
|
||||
|
||||
return $this->success_message('Interest has been accepted successfully.');
|
||||
} else {
|
||||
return $this->failure_message('Sorry! Did not find any request.');
|
||||
}
|
||||
}
|
||||
public function reject_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$gallery_view_request = ViewGalleryImage::findOrFail($request->gallery_image_view_request_id);
|
||||
|
||||
if (ViewGalleryImage::destroy($request->gallery_image_view_request_id)) {
|
||||
|
||||
$notify_user = User::where('id', $gallery_view_request->requested_by)->first();
|
||||
try {
|
||||
$notify_type = 'reject_gallery_image_view_request';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = auth()->id();
|
||||
$info_id = $gallery_view_request->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' has rejected your gallery image view request.');
|
||||
$route = route("member_profile", $auth_user->id);
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $gallery_view_request->requested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
return $this->success_message('gallery image view request has been rejected successfully.');
|
||||
} else {
|
||||
return $this->failure_message('Sorry! Something went wrong.');
|
||||
}
|
||||
}
|
||||
}
|
||||
119
app/Http/Controllers/Api/HappyStoryController.php
Normal file
119
app/Http/Controllers/Api/HappyStoryController.php
Normal file
@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\HappyStory;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\HappyStoryService;
|
||||
use Illuminate\Auth\Events\Validated;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Requests\HappyStoryRequest;
|
||||
use App\Http\Resources\HappyStoryResource;
|
||||
|
||||
class HappyStoryController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function happy_story_check(){
|
||||
$happy_story = HappyStory::where('user_id', auth()->id())->first();
|
||||
if(!$happy_story){
|
||||
return $this->failure_message('Happy Story Does Not Found!!');
|
||||
}else{
|
||||
return $this->response_data(new HappyStoryResource($happy_story));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function store(HappyStoryRequest $request)
|
||||
{
|
||||
$photo = null;
|
||||
if ($request->hasFile('photos')) {
|
||||
$photos = upload_api_file($request->file('photos'));
|
||||
}
|
||||
if(HappyStory::where('user_id', auth()->id())->first()){
|
||||
return $this->failure_message('Happy Story Already Exist');
|
||||
}
|
||||
$story = new HappyStoryService();
|
||||
$happy_story = $story->store($request->except(['_token']), $photos);
|
||||
|
||||
if ($happy_story) {
|
||||
return $this->success_message('Story uploaded successfully');
|
||||
}
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
|
||||
public function happy_stories()
|
||||
{
|
||||
$happy_stories = HappyStory::where('approved', 1)->latest()->paginate(12);
|
||||
return HappyStoryResource::collection($happy_stories)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function story_details(Request $request)
|
||||
{
|
||||
$happy_story = HappyStory::where('id', $request->story_id)->where('approved', 1)->first();
|
||||
return (new HappyStoryResource($happy_story))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function happy_story()
|
||||
{
|
||||
$happy_story = HappyStory::where('user_id', auth()->user()->id)->first();
|
||||
if ($happy_story) {
|
||||
return (new HappyStoryResource($happy_story))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('Invalid Data!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
493
app/Http/Controllers/Api/HomeController.php
Normal file
493
app/Http/Controllers/Api/HomeController.php
Normal file
@ -0,0 +1,493 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Blog;
|
||||
use App\Models\Package;
|
||||
use App\Models\ContactUs;
|
||||
use App\Models\HappyStory;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\ProfileMatch;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Resources\BlogResource;
|
||||
use App\Http\Resources\MemberResource;
|
||||
use App\Http\Requests\ContactUsRequest;
|
||||
use App\Http\Resources\PackageResource;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\GalleryImageResource;
|
||||
use App\Notifications\EmailNotification;
|
||||
use App\Http\Resources\HappyStoryResource;
|
||||
use App\Http\Resources\HowItWorksResource;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use App\Http\Resources\MatchedProfileResource;
|
||||
use App\Models\Setting;
|
||||
use ArrayIterator;
|
||||
use MultipleIterator;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
|
||||
public function home_slider()
|
||||
{
|
||||
// Slider images
|
||||
$slider_images = array();
|
||||
$sliders = get_setting('show_homepage_slider') == 'on' && get_setting('home_slider_images') != null ?
|
||||
json_decode(get_setting('home_slider_images'), true) : [];
|
||||
foreach ($sliders as $key => $slider) {
|
||||
$slider_data = array(
|
||||
'image' => get_setting('home_slider_images_small') != null
|
||||
? uploaded_asset(json_decode(get_setting('home_slider_images_small'), true)[$key])
|
||||
: uploaded_asset($slider)
|
||||
);
|
||||
$slider_images[] = $slider_data;
|
||||
}
|
||||
return $this->response_data($slider_images);
|
||||
}
|
||||
public function home_banner()
|
||||
{
|
||||
// banner
|
||||
$banner = array();
|
||||
$banner_imags = get_setting('show_home_banner1_section') == 'on' && get_setting('home_banner1_images') != null ?
|
||||
json_decode(get_setting('home_banner1_images')) : [];
|
||||
foreach ($banner_imags as $key => $value) {
|
||||
$banner_data = array(
|
||||
'link' => json_decode(get_setting('home_banner1_links'), true)[$key],
|
||||
'image' => uploaded_asset($value)
|
||||
);
|
||||
$banner[] = $banner_data;
|
||||
}
|
||||
$data['banner'] = $banner;
|
||||
return $this->response_data($banner);
|
||||
}
|
||||
public function home_how_it_works()
|
||||
{
|
||||
// How It Works
|
||||
$how_it_works = array();
|
||||
if (get_setting('show_how_it_works_section') == 'on' && get_setting('how_it_works_steps_titles') != null) {
|
||||
$how_it_works_title = get_setting('how_it_works_title') ?? '';
|
||||
$how_it_works_sub_title = get_setting('how_it_works_sub_title') ?? '';
|
||||
$how_it_works_steps_titles = array();
|
||||
$how_it_works_steps_titles = json_decode(get_setting('how_it_works_steps_titles'));
|
||||
|
||||
foreach ($how_it_works_steps_titles as $key => $how_it_works_steps_title) {
|
||||
$how_it_works_data = array(
|
||||
'step' => $key + 1,
|
||||
'title' => $how_it_works_steps_title,
|
||||
'subtitle' => json_decode(get_setting('how_it_works_steps_sub_titles'), true)[$key],
|
||||
'icon' => uploaded_asset(json_decode(get_setting('how_it_works_steps_icons'), true)[$key]),
|
||||
);
|
||||
$how_it_works[] = $how_it_works_data;
|
||||
}
|
||||
|
||||
return HowItWorksResource::collection($how_it_works)->additional([
|
||||
'how_it_works_title' => $how_it_works_title,
|
||||
'how_it_works_sub_title' => $how_it_works_sub_title
|
||||
]);
|
||||
}
|
||||
return $this->failure_data($how_it_works);
|
||||
}
|
||||
public function home_trusted_by_millions()
|
||||
{
|
||||
// trusted by millions
|
||||
$trusted_by_millions = array();
|
||||
$homepage_best_features = get_setting('show_trusted_by_millions_section') == 'on' ?
|
||||
json_decode(get_setting('homepage_best_features')) : [];
|
||||
foreach ($homepage_best_features as $key => $homepage_best_feature) {
|
||||
$homepage_best_feature_data = array(
|
||||
'title' => $homepage_best_feature,
|
||||
'icon' => uploaded_asset(json_decode(get_setting('homepage_best_features_icons'), true)[$key]),
|
||||
);
|
||||
$trusted_by_millions[] = $homepage_best_feature_data;
|
||||
}
|
||||
return $this->response_data($trusted_by_millions);
|
||||
}
|
||||
public function home_happy_stories()
|
||||
{
|
||||
// Happy Stories
|
||||
$stories = HappyStory::where('approved', '1')
|
||||
->latest()
|
||||
->limit(get_setting('max_happy_story_show_homepage'))
|
||||
->get();
|
||||
$happy_stories = get_setting('show_happy_story_section') == 'on' ? (HappyStoryResource::collection($stories)) : [];
|
||||
return $this->response_data($happy_stories);
|
||||
}
|
||||
public function home_packages()
|
||||
{
|
||||
// packages
|
||||
$packages = get_setting('show_homapege_package_section') == 'on' ? (PackageResource::collection(Package::where('active', '1')->get())) : [];
|
||||
return $this->response_data($packages);
|
||||
}
|
||||
public function home_reviews()
|
||||
{
|
||||
// reviews
|
||||
$reviews = array();
|
||||
$homepage_reviews = get_setting('show_homepage_review_section') == 'on' && get_setting('homepage_reviews') != null ?
|
||||
json_decode(get_setting('homepage_reviews')) : [];
|
||||
if (count($homepage_reviews) > 0) {
|
||||
$reviews['bg_image'] = uploaded_asset(get_setting('homepage_review_section_background_image'));
|
||||
$reviews['items'] = array();
|
||||
foreach ($homepage_reviews as $key => $review) {
|
||||
$review_data = array(
|
||||
'image' => uploaded_asset(json_decode(get_setting('homepage_reviewers_images'), true)[$key]) ?? static_asset('assets/img/placeholder.jpg'),
|
||||
'review' => $review
|
||||
);
|
||||
$reviews['items'][] = $review_data;
|
||||
}
|
||||
}
|
||||
|
||||
return $reviews ? $this->response_data($reviews) : $this->failure_data(null);
|
||||
}
|
||||
public function home_blogs()
|
||||
{
|
||||
// blogs
|
||||
$blogs = get_setting('show_blog_section') == 'on' ?
|
||||
(BlogResource::collection(Blog::latest()->active()->limit(get_setting('max_blog_show_homepage'))->get())) : [];
|
||||
return $this->response_data($blogs);
|
||||
}
|
||||
public function home_premium_members()
|
||||
{
|
||||
$token = PersonalAccessToken::findToken(request()->bearerToken());
|
||||
$user = null;
|
||||
if ($token) {
|
||||
$user = $token->tokenable;
|
||||
}
|
||||
// new members & premium members
|
||||
$members = User::where('user_type', 'member')
|
||||
->where('approved', 1)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
if ($token && $user->user_type == 'member') {
|
||||
$members = $members->where('id', '!=', $user->id)
|
||||
->whereIn("id", function ($query) use ($user) {
|
||||
$query->select('user_id')
|
||||
->from('members')
|
||||
->where('gender', '!=', $user->member->gender);
|
||||
});
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', $user->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', $user->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_by_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$premium_members = $members->where('membership', 2)->inRandomOrder()->limit(get_setting('max_premium_member_homepage'))->get();
|
||||
$premium_members = MemberResource::collection($premium_members);
|
||||
|
||||
return get_setting('show_premium_member_section') == 'on' ? $this->response_data($premium_members) : $this->response_data([]);
|
||||
}
|
||||
public function home_new_members()
|
||||
{
|
||||
$token = PersonalAccessToken::findToken(request()->bearerToken());
|
||||
$user = null;
|
||||
if ($token) {
|
||||
$user = $token->tokenable;
|
||||
}
|
||||
// new members & premium members
|
||||
$members = User::where('user_type', 'member')
|
||||
->where('approved', 1)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
if ($user && $user->user_type == 'member') {
|
||||
$members = $members->where('id', '!=', $user->id)
|
||||
->whereIn("id", function ($query) use ($user) {
|
||||
$query->select('user_id')
|
||||
->from('members')
|
||||
->where('gender', '!=', $user->member->gender);
|
||||
});
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', $user->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', $user->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_by_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$new_members = $members->orderBy('id', 'desc')->limit(get_setting('max_new_member_show_homepage'))->get()->shuffle();
|
||||
$new_members = MemberResource::collection($new_members);
|
||||
|
||||
return get_setting('show_new_member_section') == 'on' ? $this->response_data($new_members) : $this->response_data([]);
|
||||
}
|
||||
|
||||
public function home()
|
||||
{
|
||||
// Slider images
|
||||
$slider_images = array();
|
||||
$sliders = get_setting('show_homepage_slider') == 'on' && get_setting('home_slider_images') != null ?
|
||||
json_decode(get_setting('home_slider_images'), true) : [];
|
||||
foreach ($sliders as $key => $slider) {
|
||||
$slider_data = array(
|
||||
'image' => uploaded_asset($slider)
|
||||
);
|
||||
$slider_images[] = $slider_data;
|
||||
}
|
||||
$data['slider_images'] = $slider_images;
|
||||
|
||||
// new members & premium members
|
||||
$members = User::where('user_type', 'member')
|
||||
->where('approved', 1)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
if (auth()->user() && auth()->user()->user_type == 'member') {
|
||||
$members = $members->where('id', '!=', auth()->user()->id)
|
||||
->whereIn("id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('members')
|
||||
->where('gender', '!=', auth()->user()->member->gender);
|
||||
});
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', auth()->user()->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', auth()->user()->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_by_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$premium_members = $members;
|
||||
$new_members = $members;
|
||||
|
||||
$new_members = $new_members->orderBy('id', 'desc')->limit(get_setting('max_new_member_show_homepage'))->get()->shuffle();
|
||||
$premium_members = $premium_members->where('membership', 2)->inRandomOrder()->limit(get_setting('max_premium_member_homepage'))->get();
|
||||
$data['new_members'] = MemberResource::collection($new_members);
|
||||
$data['premium_members'] = MemberResource::collection($premium_members);
|
||||
|
||||
// banner
|
||||
$banner = array();
|
||||
$banner_imags = get_setting('show_home_banner1_section') == 'on' && get_setting('home_banner1_images') != null ?
|
||||
json_decode(get_setting('home_banner1_images')) : [];
|
||||
foreach ($banner_imags as $key => $value) {
|
||||
$banner_data = array(
|
||||
'link' => json_decode(get_setting('home_banner1_links'), true)[$key],
|
||||
'photo' => uploaded_asset($value)
|
||||
);
|
||||
$banner[] = $banner_data;
|
||||
}
|
||||
$data['banner'] = $banner;
|
||||
|
||||
// How It Works
|
||||
$how_it_works = array();
|
||||
$how_it_works_steps_titles = get_setting('show_how_it_works_section') == 'on' && get_setting('how_it_works_steps_titles') != null ?
|
||||
json_decode(get_setting('how_it_works_steps_titles')) : [];
|
||||
if (count($how_it_works_steps_titles) > 0) {
|
||||
$how_it_works['how_it_works_title'] = get_setting('how_it_works_title');
|
||||
$how_it_works['how_it_works_sub_title'] = get_setting('how_it_works_sub_title');
|
||||
$how_it_works['items'] = array();
|
||||
foreach ($how_it_works_steps_titles as $key => $how_it_works_steps_title) {
|
||||
$how_it_works_data = array(
|
||||
'step' => $key + 1,
|
||||
'title' => $how_it_works_steps_title,
|
||||
'subtitle' => json_decode(get_setting('how_it_works_steps_sub_titles'), true)[$key],
|
||||
'icon' => uploaded_asset(json_decode(get_setting('how_it_works_steps_icons'), true)[$key]),
|
||||
);
|
||||
$how_it_works['items'][] = $how_it_works_data;
|
||||
}
|
||||
}
|
||||
$data['how_it_works'] = $how_it_works;
|
||||
|
||||
// trusted by millions
|
||||
$trusted_by_millions = array();
|
||||
$homepage_best_features = get_setting('show_trusted_by_millions_section') == 'on' ?
|
||||
json_decode(get_setting('homepage_best_features')) : [];
|
||||
foreach ($homepage_best_features as $key => $homepage_best_feature) {
|
||||
$homepage_best_feature_data = array(
|
||||
'title' => $homepage_best_feature,
|
||||
'icon' => uploaded_asset(json_decode(get_setting('homepage_best_features_icons'), true)[$key]),
|
||||
);
|
||||
$trusted_by_millions[] = $homepage_best_feature_data;
|
||||
}
|
||||
$data['trusted_by_millions'] = $trusted_by_millions;
|
||||
|
||||
// Happy Stories
|
||||
$stories = HappyStory::where('approved', '1')
|
||||
->latest()
|
||||
->limit(get_setting('max_happy_story_show_homepage'))
|
||||
->get();
|
||||
$happy_stories = get_setting('show_happy_story_section') == 'on' ? (HappyStoryResource::collection($stories)) : [];
|
||||
$data['happy_stories'] = $happy_stories;
|
||||
|
||||
// packages
|
||||
$packages = get_setting('show_homapege_package_section') == 'on' ? (PackageResource::collection(Package::where('active', '1')->get())) : [];
|
||||
$data['packages'] = $packages;
|
||||
|
||||
// reviews
|
||||
$reviews = array();
|
||||
$homepage_reviews = get_setting('show_homepage_review_section') == 'on' && get_setting('homepage_reviews') != null ?
|
||||
json_decode(get_setting('homepage_reviews')) : [];
|
||||
if (count($homepage_reviews) > 0) {
|
||||
$reviews['bg_image'] = uploaded_asset(get_setting('homepage_review_section_background_image'));
|
||||
$reviews['items'] = array();
|
||||
foreach ($homepage_reviews as $key => $review) {
|
||||
$review_data = array(
|
||||
'image' => uploaded_asset(json_decode(get_setting('homepage_reviewers_images'), true)[$key]),
|
||||
'review' => $review
|
||||
);
|
||||
$reviews['items'][] = $review_data;
|
||||
}
|
||||
}
|
||||
$data['reviews'] = $reviews;
|
||||
|
||||
// blogs
|
||||
$blogs = get_setting('show_homapege_package_section') == 'on' ?
|
||||
(BlogResource::collection(Blog::latest()->active()->limit(get_setting('max_blog_show_homepage'))->get())) : [];
|
||||
$data['blogs'] = $blogs;
|
||||
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function home_with_login()
|
||||
{
|
||||
$members = User::query();
|
||||
$members->where('user_type', 'member')
|
||||
->where('approved', 1)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
if (auth()->user() && auth()->user()->user_type == 'member') {
|
||||
$members->where('id', '!=', auth()->user()->id)
|
||||
->whereIn("id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('members')
|
||||
->where('gender', '!=', auth()->user()->member->gender);
|
||||
});
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', auth()->user()->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$members->whereNotIn('id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', auth()->user()->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$members->whereNotIn('id', $ignored_by_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$members = $members->orderBy('id', 'desc')->limit(15)->get()->shuffle();
|
||||
|
||||
return MemberResource::collection($members)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
// app_info
|
||||
public function app_info()
|
||||
{
|
||||
$how_it_works_steps = json_decode(get_setting('how_it_works_steps_titles'));
|
||||
$step = 1;
|
||||
foreach ($how_it_works_steps as $key => $how_it_works_steps_title) {
|
||||
$steps[] = $step++;
|
||||
$how_it_works_steps_titles[] = $how_it_works_steps_title;
|
||||
$how_it_works_steps_sub_titles[] = json_decode(get_setting('how_it_works_steps_sub_titles'), true)[$key];
|
||||
$how_it_works_steps_icons[] = uploaded_asset(json_decode(get_setting('how_it_works_steps_icons'), true)[$key]);
|
||||
}
|
||||
|
||||
#Combine multiple arrays into single array
|
||||
$keys = array("steps", "how_it_works_steps_titles", "how_it_works_steps_sub_titles", "how_it_works_steps_icons");
|
||||
$how_it_works = array();
|
||||
$mi = new MultipleIterator();
|
||||
$mi->attachIterator(new ArrayIterator($steps));
|
||||
$mi->attachIterator(new ArrayIterator($how_it_works_steps_titles));
|
||||
$mi->attachIterator(new ArrayIterator($how_it_works_steps_sub_titles));
|
||||
$mi->attachIterator(new ArrayIterator($how_it_works_steps_icons));
|
||||
|
||||
foreach ($mi as $value) {
|
||||
$how_it_works[] = array_combine($keys, $value);
|
||||
}
|
||||
|
||||
$data['website_name'] = get_setting('website_name');
|
||||
$data['system_logo'] = uploaded_asset(get_setting('system_logo'));
|
||||
|
||||
$data['how_it_works_title'] = get_setting('how_it_works_title');
|
||||
$data['how_it_works_sub_title'] = get_setting('how_it_works_sub_title');
|
||||
$data['how_it_works'] = $how_it_works;
|
||||
return $this->response_data($data);
|
||||
}
|
||||
//Member Dashboard
|
||||
public function member_dashboard()
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
$data['member_name'] = auth()->user()->first_name . ' ' . auth()->user()->last_name;
|
||||
$data['member_email'] = auth()->user()->email;
|
||||
$data['member_photo'] = uploaded_asset(auth()->user()->photo) !== null ? uploaded_asset(auth()->user()->photo) : static_asset('assets/img/avatar-place.png');
|
||||
$data['remaining_interest'] = get_remaining_package_value($user->id, 'remaining_interest');
|
||||
$data['remaining_contact_view'] = get_remaining_package_value($user->id, 'remaining_contact_view');
|
||||
$data['remaining_photo_gallery'] = get_remaining_package_value($user->id, 'remaining_photo_gallery');
|
||||
$data['remaining_profile_image_view'] = (get_setting('profile_picture_privacy') == 'only_me') ? get_remaining_package_value($user->id, 'remaining_profile_image_view') : '';
|
||||
$data['remaining_gallery_image_view'] = (get_setting('gallery_image_privacy') == 'only_me') ? get_remaining_package_value($user->id, 'remaining_gallery_image_view') : '';
|
||||
|
||||
$current_package_info = array(
|
||||
'package_id' => $user->member->package->id,
|
||||
'package_name' => $user->member->package->name,
|
||||
'package_expiry' => package_validity($user->id) ? date('d.m.Y', strtotime($user->member->package_validity)) : translate('Expired'),
|
||||
);
|
||||
$data['current_package_info'] = $current_package_info;
|
||||
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function addon_check()
|
||||
{
|
||||
$addons = array();
|
||||
$addons['otp_system'] = addon_activation('otp_system') ? true : false;
|
||||
$addons['referral_system'] = addon_activation('referral_system') ? true : false;
|
||||
$addons['support_tickets'] = addon_activation('support_tickets') ? true : false;
|
||||
|
||||
return $this->response_data($addons);
|
||||
}
|
||||
|
||||
public function feature_check()
|
||||
{
|
||||
/*
|
||||
$features['google_login'] = get_setting('google_login_activation') == 1 ? true : false;
|
||||
$features['facebook_login'] = get_setting('facebook_login_activation') == 1 ? true : false;
|
||||
$features['twitter_login'] = get_setting('twitter_login_activation') == 1 ? true : false;
|
||||
$features['apple_login'] = get_setting('apple_login_activation') == 1 ? true : false;
|
||||
$features['force_https'] = get_setting('FORCE_HTTPS') == 1 ? true : false;
|
||||
$features['maintenance_mode'] = get_setting('maintenance_mode') == 1 ? true : false;
|
||||
$features['wallet_system'] = get_setting('wallet_system') == 1 ? true : false;
|
||||
$features['full_profile_show'] = get_setting('full_profile_show_according_to_membership') == 1 ? true : false;
|
||||
$features['profile_picture_approval'] = get_setting('profile_picture_approval_by_admin') == 1 ? true : false;
|
||||
$features['gallery_image_privacy'] = get_setting('gallery_image_privacy');
|
||||
$features['profile_picture_privacy'] = get_setting('profile_picture_privacy');
|
||||
$features['email_verification'] = get_setting('email_verification') == 1 ? true : false;
|
||||
$features['member_approval_by_admin'] = get_setting('member_approval_by_admin') == 1 ? true : false;
|
||||
$features['member_min_age'] = get_setting('member_min_age') ?? "";
|
||||
$features['default_currency'] = \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->symbol;
|
||||
*/
|
||||
$features = Setting::all();
|
||||
$temp_array = [];
|
||||
foreach ($features as $feature) {
|
||||
$new_array[$feature->type] = $feature->value;
|
||||
}
|
||||
// dd($temp_array);
|
||||
return $this->response_data($new_array);
|
||||
}
|
||||
|
||||
public function contact_us(ContactUsRequest $request)
|
||||
{
|
||||
try {
|
||||
ContactUs::create($request->validated());
|
||||
$users = User::where('user_type', 'admin')->get();
|
||||
Notification::send($users, new EmailNotification($request->subject, $request->description));
|
||||
return $this->success_message('Your query has been sent successfully');
|
||||
} catch (\Throwable $th) {
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
}
|
||||
}
|
||||
79
app/Http/Controllers/Api/InterestController.php
Normal file
79
app/Http/Controllers/Api/InterestController.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\ChatThread;
|
||||
use App\Utility\SmsUtility;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Services\InterestService;
|
||||
use App\Http\Requests\InterestRequest;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\MyInterestResource;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
use App\Http\Resources\ExpressInterestResource;
|
||||
|
||||
class InterestController extends Controller
|
||||
{
|
||||
public function my_interests()
|
||||
{
|
||||
$interests = ExpressInterest::orderBy('id', 'desc')
|
||||
->where('interested_by', auth()->user()->id)
|
||||
->join('users', 'express_interests.user_id', '=', 'users.id')
|
||||
->select('express_interests.id')
|
||||
->distinct()
|
||||
->paginate(10);
|
||||
|
||||
return MyInterestResource::collection($interests)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function express_interest(Request $request)
|
||||
{
|
||||
if (User::find($request->user_id)) {
|
||||
if (!ExpressInterest::where(['user_id' => $request->user_id, 'interested_by' => auth()->user()->id])->first() || ExpressInterest::where(['user_id' => auth()->user()->id, 'interested_by' => $request->user_id])->first()) {
|
||||
$interest = new InterestService();
|
||||
$new_interest = $interest->store($request->user_id);
|
||||
|
||||
return ($new_interest) ?
|
||||
$this->success_message('Interest Expressed Sucessfully') :
|
||||
$this->failure_message('Something went wrong');
|
||||
}
|
||||
return $this->failure_message('Alreary Expressed The Interest');
|
||||
}
|
||||
return $this->failure_message('Invalid Member to Express Interest.');
|
||||
}
|
||||
|
||||
public function interest_requests()
|
||||
{
|
||||
$interests = ExpressInterest::where('user_id', auth()->user()->id)->latest()->paginate(10);
|
||||
return ExpressInterestResource::collection($interests)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function accept_interest(Request $request)
|
||||
{
|
||||
$interest = new InterestService();
|
||||
$accept_interest = $interest->accept($request->interest_id);
|
||||
|
||||
return ($accept_interest) ?
|
||||
$this->success_message('Interest has been accepted successfully.') :
|
||||
$this->failure_message('Something went wrong');
|
||||
}
|
||||
|
||||
public function reject_interest(Request $request)
|
||||
{
|
||||
$interest = new InterestService();
|
||||
$reject_interest = $interest->reject($request->interest_id);
|
||||
|
||||
return ($reject_interest) ?
|
||||
$this->success_message('Interest has been rejected successfully.') :
|
||||
$this->failure_message('Something went wrong');
|
||||
}
|
||||
}
|
||||
318
app/Http/Controllers/Api/MemberController.php
Normal file
318
app/Http/Controllers/Api/MemberController.php
Normal file
@ -0,0 +1,318 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Career;
|
||||
use App\Models\Member;
|
||||
use App\Models\Address;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\ReportedUser;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\ActiveUserResource;
|
||||
use App\Http\Resources\IgnoredUserResource;
|
||||
use App\Http\Resources\PackageResource;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Models\Package;
|
||||
use App\Models\Shortlist;
|
||||
use App\Models\ViewGalleryImage;
|
||||
use App\Models\ViewProfilePicture;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class MemberController extends Controller
|
||||
{
|
||||
public function member_listing(Request $request)
|
||||
{
|
||||
$age_from = ($request->age_from != null) ? $request->age_from : null;
|
||||
$age_to = ($request->age_to != null) ? $request->age_to : null;
|
||||
$member_code = ($request->member_code != null) ? $request->member_code : null;
|
||||
$marital_status = ($request->marital_status != null) ? $request->marital_status : null;
|
||||
$religion_id = ($request->religion_id != null) ? $request->religion_id : null;
|
||||
$caste_id = ($request->caste_id != null) ? $request->caste_id : null;
|
||||
$sub_caste_id = ($request->sub_caste_id != null) ? $request->sub_caste_id : null;
|
||||
$mother_tongue = ($request->mother_tongue != null) ? $request->mother_tongue : null;
|
||||
$profession = ($request->profession != null) ? $request->profession : null;
|
||||
$country_id = ($request->country_id != null) ? $request->country_id : null;
|
||||
$state_id = ($request->state_id != null) ? $request->state_id : null;
|
||||
$city_id = ($request->city_id != null) ? $request->city_id : null;
|
||||
$min_height = ($request->min_height != null) ? $request->min_height : null;
|
||||
$max_height = ($request->max_height != null) ? $request->max_height : null;
|
||||
$member_type = ($request->member_type != null) ? $request->member_type : 0;
|
||||
|
||||
$users_query = User::query();
|
||||
$users_query->orderBy('created_at', 'desc')
|
||||
->where('user_type', 'member')
|
||||
->where('id', '!=', auth()->user()->id)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
// Gender Check
|
||||
$user_ids = Member::where('gender', '!=', auth()->user()->member->gender)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
|
||||
// Ignored member and ignored by member check
|
||||
$users_query->whereNotIn("id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', auth()->user()->id)->orWhere('user_id', auth()->user()->id);
|
||||
})
|
||||
->whereNotIn("id", function ($query) {
|
||||
$query->select('ignored_by')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', auth()->user()->id)->orWhere('user_id', auth()->user()->id);
|
||||
});
|
||||
|
||||
// Membership Check
|
||||
if ($member_type == 1 || $member_type == 2) {
|
||||
$users_query->where('membership', $member_type);
|
||||
}
|
||||
|
||||
// Member Approved Check
|
||||
if (get_setting('member_approval_by_admin') == 1) {
|
||||
$users_query->where('approved', 1);
|
||||
}
|
||||
|
||||
// Sort By age
|
||||
if (!empty($age_from)) {
|
||||
$age = $age_from + 1;
|
||||
$start = date('Y-m-d', strtotime("- $age years"));
|
||||
$user_ids = Member::where('birthday', '<=', $start)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
if (!empty($age_to)) {
|
||||
$age = $age_to + 1;
|
||||
$end = date('Y-m-d', strtotime("- $age years +1 day"));
|
||||
$user_ids = Member::where('birthday', '>=', $end)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Search by Member Code
|
||||
if (!empty($member_code)) {
|
||||
$users_query->where('code', $member_code);
|
||||
}
|
||||
|
||||
// Sort by Matital Status
|
||||
if ($marital_status != null) {
|
||||
$user_ids = Member::where('marital_status_id', $marital_status)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort By religion
|
||||
if (!empty($sub_caste_id)) {
|
||||
$user_ids = SpiritualBackground::where('sub_caste_id', $sub_caste_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
} elseif (!empty($caste_id)) {
|
||||
$user_ids = SpiritualBackground::where('caste_id', $caste_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
} elseif (!empty($religion_id)) {
|
||||
$user_ids = SpiritualBackground::where('religion_id', $religion_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
// Profession
|
||||
elseif (!empty($profession)) {
|
||||
$user_ids = Career::where('designation', 'like', '%' . $profession . '%')->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
|
||||
// Sort By location
|
||||
if (!empty($city_id)) {
|
||||
$user_ids = Address::where('city_id', $city_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
} elseif (!empty($state_id)) {
|
||||
$user_ids = Address::where('state_id', $state_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
} elseif (!empty($country_id)) {
|
||||
$user_ids = Address::where('country_id', $country_id)->pluck('user_id')->toArray();
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
|
||||
// Sort By Mother Tongue
|
||||
if ($mother_tongue != null) {
|
||||
$user_ids = Member::where('mothere_tongue', $mother_tongue)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort by Height
|
||||
if (!empty($min_height)) {
|
||||
$user_ids = PhysicalAttribute::where('height', '>=', $min_height)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
if (!empty($max_height)) {
|
||||
$user_ids = PhysicalAttribute::where('height', '<=', $max_height)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users_query->whereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$users_query = $users_query->get();
|
||||
|
||||
$data['members'] = ActiveUserResource::collection($users_query);
|
||||
$data['age_from'] = $age_from;
|
||||
$data['age_to'] = $age_to;
|
||||
$data['member_code'] = $member_code;
|
||||
$data['marital_status'] = $marital_status;
|
||||
$data['religion_id'] = $religion_id;
|
||||
$data['caste_id'] = $caste_id;
|
||||
$data['sub_caste_id'] = $sub_caste_id;
|
||||
$data['mother_tongue'] = $mother_tongue;
|
||||
$data['profession'] = $profession;
|
||||
$data['country_id'] = $country_id;
|
||||
$data['state_id'] = $state_id;
|
||||
$data['city_id'] = $city_id;
|
||||
$data['min_height'] = $min_height;
|
||||
$data['max_height'] = $max_height;
|
||||
$data['member_type'] = $member_type;
|
||||
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function package_details()
|
||||
{
|
||||
$package_id = auth()->user()->member->current_package_id;
|
||||
$package = Package::where('id', $package_id)->first();
|
||||
return new PackageResource($package);
|
||||
}
|
||||
|
||||
public function ignored_user_list()
|
||||
{
|
||||
return IgnoredUserResource::collection(IgnoredUser::where('ignored_by', auth()->user()->id)->latest()->paginate(10))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function add_to_ignore_list(Request $request)
|
||||
{
|
||||
if (User::find($request->user_id)) {
|
||||
try {
|
||||
IgnoredUser::create($request->only('user_id') + [
|
||||
'ignored_by' => auth()->user()->id
|
||||
]);
|
||||
|
||||
return $this->success_message('You have ignored this member');
|
||||
} catch (\Throwable $th) {
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
}
|
||||
return $this->failure_message('Invalid Member to ignore.');
|
||||
}
|
||||
|
||||
public function remove_from_ignored_list(Request $request)
|
||||
{
|
||||
$ignored_user = IgnoredUser::where('user_id', $request->user_id)->where('ignored_by', auth()->user()->id)->first();
|
||||
if ($ignored_user) {
|
||||
IgnoredUser::destroy($ignored_user->id);
|
||||
return $this->success_message('You have removed this member from your ignored list');
|
||||
}
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
|
||||
public function report_member(Request $request)
|
||||
{
|
||||
$reportedUser = ReportedUser::where('user_id', $request->user_id)
|
||||
->where('reported_by', auth()->user()->id)->first();
|
||||
|
||||
if ($reportedUser) {
|
||||
return $this->failure_message('Already reported this member');
|
||||
}
|
||||
|
||||
if (User::find($request->user_id)) {
|
||||
ReportedUser::create($request->only('reason') + [
|
||||
'user_id' => $request->user_id,
|
||||
'reported_by' => auth()->user()->id
|
||||
]);
|
||||
return $this->success_message('Reported to this member successfully.');
|
||||
}
|
||||
return $this->failure_message('Invalid Member to Report.');
|
||||
}
|
||||
|
||||
public function update_account_deactivation_status(Request $request)
|
||||
{
|
||||
$user = User::findOrFail(auth()->user()->id);
|
||||
$user->deactivated = $request->deacticvation;
|
||||
$user->save();
|
||||
|
||||
$deacticvation_msg = $request->deacticvation == 1 ? translate('deactivated') : translate('reactivated');
|
||||
return $this->success_message('Your account ' . $deacticvation_msg . ' successfully!');
|
||||
}
|
||||
|
||||
public function member_info($id)
|
||||
{
|
||||
$data = array();
|
||||
|
||||
$shortlist = Shortlist::where('user_id', $id)->where('shortlisted_by', auth()->id())->first();
|
||||
$profile_reported = ReportedUser::where('user_id', $id)->where('reported_by', auth()->id())->first();
|
||||
$profile_view_resquest_status = ViewProfilePicture::where('user_id', $id)->where('requested_by', auth()->id())->where('status', 1)->first();
|
||||
$gallery_view_resquest_status = ViewGalleryImage::where('user_id', $id)->where('requested_by', auth()->id())->where('status', 1)->first();
|
||||
$do_interest = ExpressInterest::where('user_id', $id)->where('interested_by', auth()->id())->first();
|
||||
$received_interest = ExpressInterest::where('user_id', auth()->id())->where('interested_by', $id)->first();
|
||||
|
||||
|
||||
$data['interest_status'] = ($do_interest ? 'sent interest' : $received_interest) ? 'received interest' : 'no interest';
|
||||
$data['shortlist_status'] = $shortlist ? 1 : 0;
|
||||
$data['report_status'] = $profile_reported ? true : false;
|
||||
$data['profile_view_resquest_status'] = $profile_view_resquest_status ? true : false;
|
||||
$data['gallery_view_resquest_status'] = $gallery_view_resquest_status ? true : false;
|
||||
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function member_validate(Request $request)
|
||||
{
|
||||
|
||||
$false_response = [
|
||||
"result" => false,
|
||||
"user" => [
|
||||
'member_name' => "",
|
||||
'member_email' => "",
|
||||
'member_photo' => "",
|
||||
'remaining_interest' => "",
|
||||
'remaining_contact_view' => "",
|
||||
'remaining_photo_gallery' => "",
|
||||
'remaining_profile_image_view' => "",
|
||||
'remaining_gallery_image_view' => "",
|
||||
'current_package_info' => ""
|
||||
]
|
||||
];
|
||||
|
||||
$token = PersonalAccessToken::findToken($request->bearerToken());
|
||||
if (!$token) {
|
||||
return response()->json($false_response);
|
||||
}
|
||||
|
||||
$user = $token->tokenable;
|
||||
if ($user == null) {
|
||||
return response()->json($false_response);
|
||||
}
|
||||
|
||||
$data['member_name'] = $user->first_name . ' ' . $user->last_name;
|
||||
$data['member_email'] = $user->email;
|
||||
$data['member_photo'] = uploaded_asset($user->photo) !== null ? uploaded_asset($user->photo) : static_asset('assets/img/avatar-place.png');
|
||||
$data['remaining_interest'] = get_remaining_package_value($user->id, 'remaining_interest');
|
||||
$data['remaining_contact_view'] = get_remaining_package_value($user->id, 'remaining_contact_view');
|
||||
$data['remaining_photo_gallery'] = get_remaining_package_value($user->id, 'remaining_photo_gallery');
|
||||
$data['remaining_profile_image_view'] = (get_setting('profile_picture_privacy') == 'only_me') ? get_remaining_package_value($user->id, 'remaining_profile_image_view') : '';
|
||||
$data['remaining_gallery_image_view'] = (get_setting('gallery_image_privacy') == 'only_me') ? get_remaining_package_value($user->id, 'remaining_gallery_image_view') : '';
|
||||
|
||||
$current_package_info = array(
|
||||
'package_id' => $user->member->package->id,
|
||||
'package_name' => $user->member->package->name,
|
||||
'package_expiry' => package_validity($user->id) ? date('d.m.Y', strtotime($user->member->package_validity)) : translate('Expired'),
|
||||
);
|
||||
$data['current_package_info'] = $current_package_info;
|
||||
|
||||
return $this->response_data($data);
|
||||
}
|
||||
}
|
||||
37
app/Http/Controllers/Api/NotificationController.php
Normal file
37
app/Http/Controllers/Api/NotificationController.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\Notification;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\NotificationResource;
|
||||
|
||||
class NotificationController extends Controller
|
||||
{
|
||||
public function notifications()
|
||||
{
|
||||
$notifications = Notification::latest()->where('notifiable_id', Auth()->user()->id)->paginate(10);
|
||||
return NotificationResource::collection($notifications)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function mark_all_as_read()
|
||||
{
|
||||
$notifications = Notification::where('notifiable_id', Auth()->user()->id)->where('read_at', null)->get();
|
||||
foreach ($notifications as $notification) {
|
||||
$notification->read_at = date('Y-m-d');
|
||||
$notification->save();
|
||||
}
|
||||
return $this->success_message('All notifications are marked as read.');
|
||||
}
|
||||
public function single_notification_read($id)
|
||||
{
|
||||
$notification = Notification::findOrFail($id);
|
||||
$notification->read_at = date('Y-m-d');
|
||||
$notification->save();
|
||||
|
||||
return $this->success_message(' notification is marked as read.');
|
||||
}
|
||||
}
|
||||
221
app/Http/Controllers/Api/PackageController.php
Normal file
221
app/Http/Controllers/Api/PackageController.php
Normal file
@ -0,0 +1,221 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Member;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\Package;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Models\PackagePayment;
|
||||
use App\Http\Resources\PackageResource;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
use App\Http\Resources\PackagePaymentResource;
|
||||
use App\Http\Controllers\Api\Payment\PaytmController;
|
||||
use App\Http\Resources\PackagePaymentInvoiceResource;
|
||||
use App\Http\Controllers\Api\Payment\PaypalController;
|
||||
use App\Http\Controllers\Api\Payment\StripeController;
|
||||
use App\Http\Controllers\Api\Payment\PaystackController;
|
||||
use App\Http\Controllers\Api\Payment\RazorpayController;
|
||||
use App\Http\Controllers\Api\payment\InstamojoController;
|
||||
|
||||
class PackageController extends Controller
|
||||
{
|
||||
public function active_packages()
|
||||
{
|
||||
$packages = Package::where('active', '1')->get();
|
||||
return PackageResource::collection($packages)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function package_details(Request $request)
|
||||
{
|
||||
$package = Package::find($request->package_id);
|
||||
if ($package) {
|
||||
return (new PackageResource($package))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('sorry!!, Invalid Data.');
|
||||
}
|
||||
|
||||
public function package_purchase_history()
|
||||
{
|
||||
$package_payments = PackagePayment::latest()
|
||||
->where('user_id', auth()->user()->id)
|
||||
->paginate(10);
|
||||
return PackagePaymentResource::collection($package_payments)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function package_purchase_history_invoice(Request $request)
|
||||
{
|
||||
$payment = PackagePayment::find($request->package_payment_id);
|
||||
if ($payment) {
|
||||
return (new PackagePaymentInvoiceResource($payment))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('sorry!!, Invalid Data.');
|
||||
}
|
||||
|
||||
public function package_purchase(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
$payment_type = 'package_payment';
|
||||
$payment_data = array();
|
||||
$payment_data['package_id'] = $request->package_id;
|
||||
$payment_data['amount'] = $request->amount;
|
||||
$payment_data['payment_method'] = $request->payment_method;
|
||||
$payment_data['payment_type'] = $payment_type;
|
||||
|
||||
if ($request->payment_method == 'wallet') {
|
||||
if ($user->balance < $request->amount) {
|
||||
return $this->failure_message('You do not have enough balance.');
|
||||
} else {
|
||||
$user->balance = $user->balance - $request->amount;
|
||||
$user->save();
|
||||
return $this->package_payment_done($user->id,$payment_data, null);
|
||||
}
|
||||
} elseif ($request->payment_method == 'manual_payment_1' || $request->payment_method == 'manual_payment_2') {
|
||||
$payment_proof = null;
|
||||
if ($request->hasFile('payment_proof')) {
|
||||
$payment_proof = upload_api_file($request->file('payment_proof'));
|
||||
}
|
||||
$package_payment = new PackagePayment();
|
||||
$package_payment->payment_code = date('ymd-His');
|
||||
$package_payment->user_id = $user->id;
|
||||
$package_payment->package_id = $request->package_id;
|
||||
$package_payment->payment_method = 'manual_payment';
|
||||
$package_payment->payment_status = 'Due';
|
||||
$package_payment->amount = $request->amount;
|
||||
$package_payment->payment_details = '';
|
||||
$package_payment->offline_payment = 1;
|
||||
$package_payment->custom_payment_name = get_setting($request->payment_method . '_name');
|
||||
$package_payment->custom_payment_transaction_id = $request->transaction_id;
|
||||
$package_payment->custom_payment_proof = $payment_proof;
|
||||
$package_payment->custom_payment_details = $request->payment_details;
|
||||
$package_payment->save();
|
||||
|
||||
// Package Payment Store Notification for member
|
||||
try {
|
||||
$notify_type = 'package_purchase';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $package_payment->id;
|
||||
$message = $user->first_name . ' ' . $user->last_name . translate('has been purchased a new package. Payment Code: ') . $package_payment->payment_code;
|
||||
$route = route('package-payments.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('user_type', 'admin')
|
||||
->whereNotNull('fcm_token')
|
||||
->pluck('fcm_token')
|
||||
->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Payment approval email send to member
|
||||
if ($user->email != null && get_email_template('package_purchase_email', 'status')) {
|
||||
EmailUtility::package_purchase_email($user, $package_payment);
|
||||
}
|
||||
return response()->json(['result' => true, 'message' => translate("Payment completed")]);
|
||||
}
|
||||
}
|
||||
|
||||
public function package_payment_done($user_id, $payment_data, $payment_details)
|
||||
{
|
||||
$user = User::where('id', $user_id)->first();
|
||||
|
||||
$package_payment = new PackagePayment();
|
||||
$package_payment->payment_code = date('ymd-His');
|
||||
$package_payment->user_id = $user->id;
|
||||
$package_payment->package_id = $payment_data['package_id'];
|
||||
$package_payment->payment_method = $payment_data['payment_method'];
|
||||
$package_payment->payment_status = 'Paid';
|
||||
$package_payment->amount = $payment_data['amount'];
|
||||
$package_payment->payment_details = $payment_details;
|
||||
$package_payment->offline_payment = 2;
|
||||
$package_payment->save();
|
||||
|
||||
$member = Member::where('user_id', $user->id)->first();
|
||||
$package = Package::where('id', $payment_data['package_id'])->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $member->remaining_interest + $package->express_interest;
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery + $package->photo_gallery;
|
||||
$member->remaining_contact_view = $member->remaining_contact_view + $package->contact;
|
||||
$member->remaining_profile_image_view = $member->remaining_profile_image_view + $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $member->remaining_gallery_image_view + $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = date('Y-m-d', strtotime($member->package_validity . ' +' . $package->validity . 'days'));
|
||||
|
||||
if ($member->save()) {
|
||||
$user->membership = 2;
|
||||
$user->save();
|
||||
|
||||
if (addon_activation('referral_system') && $user->referred_by != null && $user->referral_comission == 0) {
|
||||
// For Referred by user
|
||||
$reffered_by = User::where('id', $user->referred_by)->first();
|
||||
$wallet = new Wallet();
|
||||
$wallet->user_id = $reffered_by->id;
|
||||
$wallet->amount = get_setting('referred_by_user_commission');
|
||||
$wallet->payment_method = 'reffered_commission';
|
||||
$wallet->payment_details = '';
|
||||
$wallet->referral_user = $user->id;
|
||||
$wallet->save();
|
||||
|
||||
$reffered_by->balance = $reffered_by->balance + get_setting('referred_by_user_commission');
|
||||
$reffered_by->save();
|
||||
|
||||
$user->referral_comission = 1;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
// Package Payment Store Notification for member
|
||||
try {
|
||||
$notify_type = 'package_purchase';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $package_payment->id;
|
||||
$message = $user->first_name . ' ' . $user->last_name . translate('has been purchased a new package. Payment Code: ') . $package_payment->payment_code;
|
||||
$route = route('package-payments.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('user_type', 'admin')
|
||||
->whereNotNull('fcm_token')
|
||||
->pluck('fcm_token')
|
||||
->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Payment approval email send to member
|
||||
if ($user->email != null && get_email_template('package_purchase_email', 'status')) {
|
||||
EmailUtility::package_purchase_email($user, $package_payment);
|
||||
}
|
||||
}
|
||||
return response()->json(['result' => true, 'message' => translate("Payment completed")]);
|
||||
}
|
||||
}
|
||||
100
app/Http/Controllers/Api/Payment/InstamojoController.php
Normal file
100
app/Http/Controllers/Api/Payment/InstamojoController.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\payment;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\APi\WalletController;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
|
||||
class InstamojoController extends Controller
|
||||
{
|
||||
public function pay(Request $request)
|
||||
{
|
||||
if ($request->payment_type) {
|
||||
if (get_setting('instamojo_sandbox') == 1) {
|
||||
// testing_url
|
||||
$endPoint = 'https://test.instamojo.com/api/1.1/';
|
||||
} else {
|
||||
// live_url
|
||||
$endPoint = 'https://www.instamojo.com/api/1.1/';
|
||||
}
|
||||
|
||||
$api = new \Instamojo\Instamojo(
|
||||
env('INSTAMOJO_API_KEY'),
|
||||
env('INSTAMOJO_AUTH_TOKEN'),
|
||||
$endPoint
|
||||
);
|
||||
|
||||
$data = array();
|
||||
$data['payment_type'] = $request->payment_type;
|
||||
$data['amount'] = $request->amount;
|
||||
$data['payment_method'] = $request->payment_method;
|
||||
$data['user_id'] = $request->user_id;
|
||||
$data['package_id'] = 0;
|
||||
if(isset($request->package_id)) {
|
||||
$data['package_id'] = $request->package_id;
|
||||
}
|
||||
|
||||
// if (Session::get('payment_type') == 'package_payment') {
|
||||
try {
|
||||
$response = $api->paymentRequestCreate(array(
|
||||
"purpose" => ucfirst(str_replace('_', ' ', $request->payment_type)),
|
||||
"amount" => round($request->amount),
|
||||
"send_email" => true,
|
||||
"email" => auth()->user()->email,
|
||||
"phone" => auth()->user()->phone,
|
||||
"redirect_url" => url('instamojo/payment/pay-success')
|
||||
));
|
||||
|
||||
return response()->json(['result' => true, 'url' => $response['longurl'], 'message' => "Found redirect url"]);
|
||||
} catch (Exception $e) {
|
||||
return response()->json(['result' => false, 'url' => '', 'message' => "Could not find redirect url"]);
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// success response method.
|
||||
public function success(Request $request)
|
||||
{
|
||||
try {
|
||||
if (get_setting('instamojo_sandbox') == 1) {
|
||||
$endPoint = 'https://test.instamojo.com/api/1.1/';
|
||||
} else {
|
||||
$endPoint = 'https://www.instamojo.com/api/1.1/';
|
||||
}
|
||||
|
||||
$api = new \Instamojo\Instamojo(
|
||||
env('INSTAMOJO_API_KEY'),
|
||||
env('INSTAMOJO_AUTH_TOKEN'),
|
||||
$endPoint
|
||||
);
|
||||
|
||||
$response = $api->paymentRequestStatus(request('payment_request_id'));
|
||||
|
||||
if (!isset($response['payments'][0]['status'])) {
|
||||
return $this->failure_message('Payment Failed');
|
||||
} else if ($response['payments'][0]['status'] != 'Credit') {
|
||||
return $this->failure_message('Payment Failed');
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return $this->failure_message('Payment Failed');
|
||||
}
|
||||
|
||||
$payment = json_encode($response);
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
|
||||
if ($request->payment_type) {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id,$payment_data, $payment);
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id,$payment_data, json_encode($payment));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
113
app/Http/Controllers/Api/Payment/PaymentTypesController.php
Normal file
113
app/Http/Controllers/Api/Payment/PaymentTypesController.php
Normal file
@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PaymentTypesController extends Controller
|
||||
{
|
||||
public function getList(Request $request)
|
||||
{
|
||||
$payment_types = array();
|
||||
|
||||
if (get_setting('paypal_payment_activation') == 1) {
|
||||
$payment_type = array();
|
||||
$payment_type['payment_type'] = 'paypal_payment';
|
||||
$payment_type['payment_type_key'] = 'paypal';
|
||||
$payment_type['image'] = static_asset('assets/img/payment_method/paypal.png');
|
||||
$payment_type['name'] = "Paypal";
|
||||
$payment_type['title'] = "Checkout with Paypal";
|
||||
$payment_type['offline_payment_id'] = 0;
|
||||
$payment_type['details'] = "";
|
||||
$payment_types[] = $payment_type;
|
||||
}
|
||||
|
||||
if (get_setting('stripe_payment_activation') == 1) {
|
||||
$payment_type = array();
|
||||
$payment_type['payment_type'] = 'stripe_payment';
|
||||
$payment_type['payment_type_key'] = 'stripe';
|
||||
$payment_type['image'] = static_asset('assets/img/payment_method/stripe.png');
|
||||
$payment_type['name'] = "Stripe";
|
||||
$payment_type['title'] = "Checkout with Stripe";
|
||||
$payment_type['offline_payment_id'] = 0;
|
||||
$payment_type['details'] = "";
|
||||
|
||||
|
||||
$payment_types[] = $payment_type;
|
||||
}
|
||||
// if (get_setting('instamojo_payment_activation') == 1) {
|
||||
// $payment_type = array();
|
||||
// $payment_type['payment_type'] = 'instamojo_payment_';
|
||||
// $payment_type['payment_type_key'] = 'instamojo';
|
||||
// $payment_type['image'] = static_asset('assets/img/payment_method/instamojo.png');
|
||||
// $payment_type['name'] = "Instamojo";
|
||||
// $payment_type['title'] = "Checkout with Instamojo";
|
||||
// $payment_type['offline_payment_id'] = 0;
|
||||
// $payment_type['details'] = "";
|
||||
|
||||
|
||||
// $payment_types[] = $payment_type;
|
||||
// }
|
||||
|
||||
// if (get_setting('razorpay_payment_activation') == 1) {
|
||||
// $payment_type = array();
|
||||
// $payment_type['payment_type'] = 'razorpay';
|
||||
// $payment_type['payment_type_key'] = 'razorpay';
|
||||
// $payment_type['image'] = static_asset('assets/img/payment_method/rozarpay.png');
|
||||
// $payment_type['name'] = "Razorpay";
|
||||
// $payment_type['title'] = "Checkout with Razorpay";
|
||||
// $payment_type['offline_payment_id'] = 0;
|
||||
// $payment_type['details'] = "";
|
||||
|
||||
|
||||
// $payment_types[] = $payment_type;
|
||||
// }
|
||||
|
||||
// if (get_setting('paystack_payment_activation') == 1) {
|
||||
// $payment_type = array();
|
||||
// $payment_type['payment_type'] = 'paystack';
|
||||
// $payment_type['payment_type_key'] = 'paystack';
|
||||
// $payment_type['image'] = static_asset('assets/img/payment_method/paystack.png');
|
||||
// $payment_type['name'] = "Paystack";
|
||||
// $payment_type['title'] = "Checkout with Paystack";
|
||||
// $payment_type['offline_payment_id'] = 0;
|
||||
// $payment_type['details'] = "";
|
||||
|
||||
|
||||
// $payment_types[] = $payment_type;
|
||||
// }
|
||||
//African Payment Gateways
|
||||
if (get_setting('paytm_payment_activation') == 1) {
|
||||
$payment_type = array();
|
||||
$payment_type['payment_type'] = 'paytm';
|
||||
$payment_type['payment_type_key'] = 'paytm';
|
||||
$payment_type['image'] = static_asset('assets/img/payment_method/paytm.png');
|
||||
$payment_type['name'] = "Paytm";
|
||||
$payment_type['title'] = "Checkout with Paytm";
|
||||
$payment_type['offline_payment_id'] = 0;
|
||||
$payment_type['details'] = "";
|
||||
|
||||
|
||||
$payment_types[] = $payment_type;
|
||||
}
|
||||
|
||||
if ($request->payment_type !== 'wallet_recharge') {
|
||||
// you cannot recharge wallet by wallet or cash payment
|
||||
if (get_setting('wallet_system') == 1) {
|
||||
$payment_type = array();
|
||||
$payment_type['payment_type'] = 'wallet_system';
|
||||
$payment_type['payment_type_key'] = 'wallet';
|
||||
$payment_type['image'] = static_asset('assets/img/payment_method/wallet.png');
|
||||
$payment_type['name'] = "Wallet";
|
||||
$payment_type['title'] = "Wallet Payment";
|
||||
$payment_type['offline_payment_id'] = 0;
|
||||
$payment_type['details'] = "";
|
||||
|
||||
$payment_types[] = $payment_type;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->response_data($payment_types);
|
||||
}
|
||||
}
|
||||
125
app/Http/Controllers/Api/Payment/PaypalController.php
Normal file
125
app/Http/Controllers/Api/Payment/PaypalController.php
Normal file
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use PayPalHttp\HttpException;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\Api\WalletController;
|
||||
use PayPalCheckoutSdk\Core\PayPalHttpClient;
|
||||
use PayPalCheckoutSdk\Core\SandboxEnvironment;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
use App\Models\Package;
|
||||
use PayPalCheckoutSdk\Core\ProductionEnvironment;
|
||||
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
|
||||
use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
|
||||
|
||||
class PaypalController extends Controller
|
||||
{
|
||||
public function pay(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$clientId = env('PAYPAL_CLIENT_ID');
|
||||
$clientSecret = env('PAYPAL_CLIENT_SECRET');
|
||||
|
||||
if (get_setting('paypal_sandbox') == 1) {
|
||||
$environment = new SandboxEnvironment($clientId, $clientSecret);
|
||||
} else {
|
||||
$environment = new ProductionEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
$client = new PayPalHttpClient($environment);
|
||||
$amount = $request->amount;
|
||||
|
||||
$data = array();
|
||||
$data['payment_type'] = $request->payment_type;
|
||||
$data['amount'] = $request->amount;
|
||||
$data['payment_method'] = $request->payment_method;
|
||||
$data['user_id'] = $request->user_id;
|
||||
$data['package_id'] = 0;
|
||||
if (isset($request->package_id)) {
|
||||
$data['package_id'] = $request->package_id;
|
||||
$package = Package::where('id', $request->package_id)->first();
|
||||
}
|
||||
|
||||
if ($data['payment_type'] == 'package_payment') {
|
||||
if (addon_activation('referral_system') && $auth_user->referred_by != null && $auth_user->referral_comission == 0) {
|
||||
$referral_discount_amount = get_setting('referral_user_package_purchase_discount');
|
||||
$discount_type = get_setting('referral_user_package_purchase_discount_type');
|
||||
if ($discount_type == 'percent') {
|
||||
$amount = $request->amount - ($package->price * $referral_discount_amount) / 100;
|
||||
} else {
|
||||
$amount = $request->amount - $referral_discount_amount;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$request = new OrdersCreateRequest();
|
||||
$request->prefer('return=representation');
|
||||
$request->body = [
|
||||
"intent" => "CAPTURE",
|
||||
"purchase_units" => [[
|
||||
"reference_id" => rand(000000, 999999),
|
||||
"amount" => [
|
||||
"value" => $amount,
|
||||
"currency_code" => \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code
|
||||
]
|
||||
]],
|
||||
"application_context" => [
|
||||
"cancel_url" => route('api.paypal.cancel'),
|
||||
"return_url" => route('api.paypal.done', $data)
|
||||
]
|
||||
];
|
||||
|
||||
try {
|
||||
// Call API with your client and get a response for your call
|
||||
$response = $client->execute($request);
|
||||
// If call returns body in response, you can get the deserialized version from the result attribute of the response
|
||||
return response()->json(['result' => true, 'url' => $response->result->links[1]->href, 'message' => "Found redirect url"]);
|
||||
} catch (HttpException $ex) {
|
||||
return response()->json(['result' => false, 'url' => '', 'message' => "Could not find redirect url"]);
|
||||
}
|
||||
}
|
||||
|
||||
public function getDone(Request $request)
|
||||
{
|
||||
// Creating an environment
|
||||
$clientId = env('PAYPAL_CLIENT_ID');
|
||||
$clientSecret = env('PAYPAL_CLIENT_SECRET');
|
||||
|
||||
if (get_setting('paypal_sandbox') == 1) {
|
||||
$environment = new SandboxEnvironment($clientId, $clientSecret);
|
||||
} else {
|
||||
$environment = new ProductionEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
$client = new PayPalHttpClient($environment);
|
||||
|
||||
// $response->result->id gives the orderId of the order created above
|
||||
|
||||
$ordersCaptureRequest = new OrdersCaptureRequest($request->token);
|
||||
$ordersCaptureRequest->prefer('return=representation');
|
||||
try {
|
||||
// Call API with your client and get a response for your call
|
||||
$response = $client->execute($ordersCaptureRequest);
|
||||
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
|
||||
if ($request->payment_type) {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id, $payment_data, json_encode($response));
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id, $payment_data, json_encode($response));
|
||||
}
|
||||
}
|
||||
} catch (HttpException $ex) {
|
||||
return response()->json(['result' => false, 'message' => translate("Payment failed")]);
|
||||
}
|
||||
}
|
||||
|
||||
public function getCancel(Request $request)
|
||||
{
|
||||
return response()->json(['result' => true, 'message' => translate("Payment failed or got cancelled")]);
|
||||
}
|
||||
}
|
||||
54
app/Http/Controllers/Api/Payment/PaystackController.php
Normal file
54
app/Http/Controllers/Api/Payment/PaystackController.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use Paystack;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\Api\WalletController;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
use App\Models\User;
|
||||
|
||||
class PaystackController extends Controller
|
||||
{
|
||||
public function redirectToGateway(Request $request)
|
||||
{
|
||||
$user = User::where('id',$request->user_id)->first();
|
||||
$request->email = $user->email;
|
||||
$request->amount = round($request->amount * 100);
|
||||
$request->payment_type = $request->payment_type;
|
||||
$request->payment_method = $request->payment_method;
|
||||
$request->package_id = 0;
|
||||
$request->user_id = $request->user_id;
|
||||
if(isset($request->package_id)){
|
||||
$request->package_id = $user->id;
|
||||
}
|
||||
$request->currency = env('PAYSTACK_CURRENCY_CODE', 'NGN');
|
||||
$request->reference = Paystack::genTranxRef();
|
||||
|
||||
return Paystack::getAuthorizationUrl()->redirectNow();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtain Paystack payment information
|
||||
* @return void
|
||||
*/
|
||||
public function handleGatewayCallback(Request $request)
|
||||
{
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
if ($request->payment_type) {
|
||||
$payment = Paystack::getPaymentData();
|
||||
$payment_detalis = json_encode($payment);
|
||||
if (!empty($payment['data']) && $payment['data']['status'] == 'success') {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id,$payment_data, $payment_detalis);
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id,$payment_data, $payment_detalis);
|
||||
}
|
||||
}
|
||||
return response()->json(['result' => false, 'message' => translate("Payment cancelled")]);
|
||||
}
|
||||
}
|
||||
}
|
||||
68
app/Http/Controllers/Api/Payment/PaytmController.php
Normal file
68
app/Http/Controllers/Api/Payment/PaytmController.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use App\Models\User;
|
||||
use PaytmWallet;
|
||||
use App\Models\Transaction;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\Api\WalletController;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
|
||||
class PaytmController extends Controller
|
||||
{
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$package_id = 0;
|
||||
if (isset($request->package_id)) {
|
||||
$package_id = $request->package_id;
|
||||
}
|
||||
if ($request->payment_type) {
|
||||
$payment_data = ["package_id" => $package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
|
||||
$transaction = new Transaction();
|
||||
$transaction->user_id = auth()->user()->id;
|
||||
$transaction->gateway = 'paytm';
|
||||
$transaction->payment_type = $request->payment_type;
|
||||
$transaction->additional_content = json_encode($payment_data);
|
||||
$transaction->save();
|
||||
|
||||
if (auth()->user()->phone != null) {
|
||||
$payment = PaytmWallet::with('receive');
|
||||
$payment->prepare([
|
||||
'order' => $transaction->id,
|
||||
'user' => auth()->user()->id,
|
||||
'mobile_number' => auth()->user()->phone,
|
||||
'email' => auth()->user()->email,
|
||||
'amount' => $request->amount,
|
||||
'callback_url' => route('api.paytm.callback')
|
||||
]);
|
||||
return $payment->receive();
|
||||
} else {
|
||||
return $this->failure_message('Please add phone number to your profile');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function callback(Request $request)
|
||||
{
|
||||
$transaction = PaytmWallet::with('receive');
|
||||
|
||||
$response = $transaction->response(); // To get raw response as array
|
||||
//Check out response parameters sent by paytm here -> http://paywithpaytm.com/developer/paytm_api_doc?target=interpreting-response-sent-by-paytm
|
||||
|
||||
if ($transaction->isSuccessful()) {
|
||||
$transaction = Transaction::findOrFail($response['ORDERID']);
|
||||
auth()->login(User::findOrFail($transaction->user_id));
|
||||
if ($transaction->payment_type == 'package_payment') {
|
||||
return (new PackageController)->package_payment_done($transaction->user_id,json_decode($transaction->additional_content, true), json_encode($response));
|
||||
} elseif ($transaction->payment_type == 'wallet_payment') {
|
||||
auth()->login(User::findOrFail($transaction->user_id));
|
||||
return (new WalletController)->wallet_payment_done($transaction->user_id,json_decode($transaction->additional_content, true), json_encode($response));
|
||||
}
|
||||
return response()->json(['result' => false, 'message' => translate("Payment failed")]);
|
||||
}
|
||||
}
|
||||
}
|
||||
77
app/Http/Controllers/Api/Payment/RazorpayController.php
Normal file
77
app/Http/Controllers/Api/Payment/RazorpayController.php
Normal file
@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use Razorpay\Api\Api;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Api\WalletController;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
|
||||
class RazorpayController extends Controller
|
||||
{
|
||||
public function payWithRazorpay(Request $request)
|
||||
{
|
||||
$payment_type = $request->payment_type;
|
||||
$amount = $request->amount;
|
||||
$payment_method = $request->payment_method;
|
||||
$package_id = 0;
|
||||
if(isset($request->package_id)){
|
||||
$package_id = $request->package_id;
|
||||
}
|
||||
|
||||
return view('frontend.payment_gateway.razorpay_app', compact('amount', 'package_id', 'payment_method', 'payment_type'));
|
||||
}
|
||||
|
||||
public function payment(Request $request)
|
||||
{
|
||||
//Input items of form
|
||||
$input = $request->all();
|
||||
//get API Configuration
|
||||
$api = new Api(env('RAZORPAY_KEY'), env('RAZORPAY_SECRET'));
|
||||
|
||||
//Fetch payment information by razorpay_payment_id
|
||||
$payment = $api->payment->fetch($input['razorpay_payment_id']);
|
||||
|
||||
if (count($input) && !empty($input['razorpay_payment_id'])) {
|
||||
$payment_detalis = null;
|
||||
try {
|
||||
$response = $api->payment->fetch($input['razorpay_payment_id'])->capture(array('amount' => $payment['amount']));
|
||||
$payment_detalis = json_encode(array('id' => $response['id'], 'method' => $response['method'], 'amount' => $response['amount'], 'currency' => $response['currency']));
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
// Do something here for store payment details in database...
|
||||
if ($request->payment_type) {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id,$payment_data, $payment_detalis);
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id,$payment_data, json_encode($payment_detalis));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public function success(Request $request)
|
||||
{
|
||||
try {
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
$response = $request->payment_details;
|
||||
if ($request->payment_type) {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id,$payment_data, json_encode($response));
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id,$payment_data, json_encode($response));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['result' => false, 'message' => $e->getMessage()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
91
app/Http/Controllers/Api/Payment/StripeController.php
Normal file
91
app/Http/Controllers/Api/Payment/StripeController.php
Normal file
@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\Payment;
|
||||
|
||||
use App\Models\Currency;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\Api\WalletController;
|
||||
use App\Http\Controllers\Api\PackageController;
|
||||
|
||||
class StripeController extends Controller
|
||||
{
|
||||
|
||||
public function stripe(Request $request)
|
||||
{
|
||||
$data['payment_type'] = $request->payment_type;
|
||||
$data['amount'] = $request->amount;
|
||||
$data['payment_method'] = $request->payment_method;
|
||||
$data['user_id'] = $request->user_id;
|
||||
$data['package_id'] = 0;
|
||||
if (isset($request->package_id)) {
|
||||
$data['package_id'] = $request->package_id;
|
||||
}
|
||||
return view('frontend.payment_gateway.stripe_app', $data);
|
||||
}
|
||||
|
||||
public function create_checkout_session(Request $request)
|
||||
{
|
||||
$amount = 0;
|
||||
if ($request->payment_type) {
|
||||
$amount = round($request->amount * 100);
|
||||
}
|
||||
|
||||
$data = array();
|
||||
|
||||
$data['payment_type'] = $request->payment_type;
|
||||
$data['amount'] = $request->amount;
|
||||
$data['payment_method'] = $request->payment_method;
|
||||
$data['package_id'] = $request->package_id;
|
||||
$data['user_id'] = $request->user_id;
|
||||
|
||||
|
||||
\Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));
|
||||
|
||||
$session = \Stripe\Checkout\Session::create([
|
||||
'payment_method_types' => ['card'],
|
||||
'line_items' => [
|
||||
[
|
||||
'price_data' => [
|
||||
'currency' => \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code,
|
||||
'product_data' => [
|
||||
'name' => "Payment"
|
||||
],
|
||||
'unit_amount' => $amount,
|
||||
],
|
||||
'quantity' => 1,
|
||||
]
|
||||
],
|
||||
'mode' => 'payment',
|
||||
'success_url' => route('api.stripe.success', $data),
|
||||
'cancel_url' => route('api.stripe.cancel'),
|
||||
]);
|
||||
|
||||
return response()->json(['id' => $session->id, 'status' => 200]);
|
||||
}
|
||||
|
||||
//
|
||||
public function success(Request $request)
|
||||
{
|
||||
$payment_data = ["package_id" => $request->package_id, "payment_method" => $request->payment_method, "amount" => $request->amount];
|
||||
try {
|
||||
$payment = ["status" => "Success"];
|
||||
if ($request->payment_type) {
|
||||
if ($request->payment_type == 'package_payment') {
|
||||
$packagePaymentController = new PackageController;
|
||||
return $packagePaymentController->package_payment_done($request->user_id, $payment_data, json_encode($payment));
|
||||
} elseif ($request->payment_type == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->user_id, $payment_data, json_encode($payment));
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['result' => false, 'message' => translate("Payment is unsuccessful")]);
|
||||
}
|
||||
}
|
||||
|
||||
public function cancel(Request $request)
|
||||
{
|
||||
return response()->json(['result' => false, 'message' => translate("Payment is cancelled")]);
|
||||
}
|
||||
}
|
||||
718
app/Http/Controllers/Api/ProfileController.php
Normal file
718
app/Http/Controllers/Api/ProfileController.php
Normal file
@ -0,0 +1,718 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\ProfileMatchController;
|
||||
use App\Http\Requests\AstrologyRequest;
|
||||
use App\Http\Requests\PartnerExpectationRequest;
|
||||
use App\Http\Requests\ProfileRequest;
|
||||
use App\Http\Resources\CareerResource;
|
||||
use App\Http\Resources\EducationResource;
|
||||
use App\Http\Resources\GalleryImage\RequestedGalleryImage;
|
||||
use App\Http\Resources\GalleryImageResource;
|
||||
use App\Http\Resources\MatchedProfileResource;
|
||||
use App\Http\Resources\Profile\LanguageResource;
|
||||
use App\Http\Resources\PublicProfile\AboutUser;
|
||||
use App\Http\Resources\PublicProfile\AddressResource;
|
||||
use App\Http\Resources\PublicProfile\AstronomicInformation;
|
||||
use App\Http\Resources\PublicProfile\AttitudesBehaviors;
|
||||
use App\Http\Resources\PublicProfile\BasicInformation;
|
||||
use App\Http\Resources\PublicProfile\FamilyInformation;
|
||||
use App\Http\Resources\PublicProfile\HobbiesInterests;
|
||||
use App\Http\Resources\PublicProfile\LifeStyle as PublicProfileLifeStyle;
|
||||
use App\Http\Resources\PublicProfile\LifeStyleResource;
|
||||
use App\Http\Resources\PublicProfile\PartnerExpectationResource;
|
||||
use App\Http\Resources\PublicProfile\PhysicalAttributes;
|
||||
use App\Http\Resources\PublicProfile\PresentAddress;
|
||||
use App\Http\Resources\PublicProfile\ResidenceInformation;
|
||||
use App\Http\Resources\PublicProfile\SpiritualSocialBackground;
|
||||
use App\Models\Address;
|
||||
use App\Models\Astrology;
|
||||
use App\Models\Attitude;
|
||||
use App\Models\Career;
|
||||
use App\Models\Caste;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\City;
|
||||
use App\Models\Country;
|
||||
use App\Models\Education;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Models\Family;
|
||||
use App\Models\FamilyValue;
|
||||
use App\Models\GalleryImage;
|
||||
use App\Models\HappyStory;
|
||||
use App\Models\Hobby;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\Lifestyle;
|
||||
use App\Models\MaritalStatus;
|
||||
use App\Models\Member;
|
||||
use App\Models\MemberLanguage;
|
||||
use App\Models\OnBehalf;
|
||||
use App\Models\PackagePayment;
|
||||
use App\Models\PartnerExpectation;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\ProfileMatch;
|
||||
use App\Models\Recidency;
|
||||
use App\Models\Religion;
|
||||
use App\Models\ReportedUser;
|
||||
use App\Models\Setting;
|
||||
use App\Models\Shortlist;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Models\Staff;
|
||||
use App\Models\State;
|
||||
use App\Models\SubCaste;
|
||||
use App\Models\ViewContact;
|
||||
use App\Models\ViewGalleryImage;
|
||||
use App\Models\User;
|
||||
use App\Models\ViewProfilePicture;
|
||||
use Illuminate\Auth\Events\Validated;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use PhpOffice\PhpSpreadsheet\Cell\DataType;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
public function profile_settings()
|
||||
{
|
||||
$member = User::findOrFail(auth()->user()->id);
|
||||
$countries = Country::where('status', 1)->get();
|
||||
$states = State::all();
|
||||
$cities = City::all();
|
||||
$religions = Religion::all();
|
||||
$castes = Caste::all();
|
||||
$sub_castes = SubCaste::all();
|
||||
$family_values = FamilyValue::all();
|
||||
$marital_statuses = MaritalStatus::all();
|
||||
$on_behalves = OnBehalf::all();
|
||||
$languages = MemberLanguage::all();
|
||||
|
||||
return response()->json([
|
||||
'result' => true,
|
||||
'member' => $member, 'countries' => $countries, 'states' => $states, 'cities' => $cities,
|
||||
'religions' => $religions, 'castes' => $castes, 'sub_castes' => $sub_castes, 'family_values' => $family_values, 'marital_statuses' => $marital_statuses, 'on_behalves' => $on_behalves, 'languages' => $languages,
|
||||
]);
|
||||
}
|
||||
|
||||
public function get_introduction()
|
||||
{
|
||||
return (new AboutUser(auth()->user()))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function get_email()
|
||||
{
|
||||
$data['email'] = auth()->user()->email;
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function introduction_update(Request $request)
|
||||
{
|
||||
$member = Member::where('user_id', auth()->id())->first();
|
||||
$member->introduction = $request->introduction;
|
||||
$member->save();
|
||||
return $this->success_message('Introduction updated successfully!');
|
||||
}
|
||||
|
||||
public function get_basic_info()
|
||||
{
|
||||
return (new BasicInformation(auth()->user()))->additional([
|
||||
'result' => true
|
||||
]);;
|
||||
}
|
||||
|
||||
public function basic_info_update(ProfileRequest $request)
|
||||
{
|
||||
if ($request->email == null && $request->phone == null) {
|
||||
return response()->json('Email and Phone number both can not be null. ');
|
||||
}
|
||||
|
||||
$user = User::findOrFail(auth()->id());
|
||||
// image upload
|
||||
$photo = null;
|
||||
if ($request->hasFile('photo')) {
|
||||
$photo = upload_api_file($request->file('photo'));
|
||||
$user->photo = $photo;
|
||||
}
|
||||
|
||||
$user->first_name = $request->first_name;
|
||||
$user->last_name = $request->last_name;
|
||||
if (
|
||||
Setting::where('type', 'profile_picture_approval_by_admin')->first()->value &&
|
||||
$photo &&
|
||||
auth()->user()->user_type == 'member'
|
||||
) {
|
||||
$user->photo_approved = 0;
|
||||
}
|
||||
|
||||
$user->phone = $request->phone;
|
||||
$user->save();
|
||||
$member = Member::where('user_id', $user->id)->first();
|
||||
$member->gender = $request->gender;
|
||||
$member->on_behalves_id = $request->on_behalf;
|
||||
$member->birthday = date('Y-m-d', strtotime($request->date_of_birth));
|
||||
$member->marital_status_id = $request->marital_status;
|
||||
$member->children = $request->children;
|
||||
$member->save();
|
||||
return $this->success_message('Member basic info has been updated successfully.');
|
||||
}
|
||||
|
||||
public function present_address()
|
||||
{
|
||||
$present_address = Address::where('user_id', auth()->id())->where('type', 'present')->first();
|
||||
if ($present_address) {
|
||||
return (new AddressResource($present_address))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_data($present_address);
|
||||
|
||||
// return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function permanent_address()
|
||||
{
|
||||
$permanent_address = Address::where('user_id', auth()->id())->where('type', 'permanent')->first();
|
||||
if ($permanent_address) {
|
||||
return (new AddressResource($permanent_address))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
// return $this->failure_message('No Data Found!!');
|
||||
return $this->failure_data($permanent_address);
|
||||
}
|
||||
}
|
||||
|
||||
public function address_update(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'country_id' => ['required'],
|
||||
'state_id' => ['required'],
|
||||
'city_id' => ['required'],
|
||||
'postal_code' => ['required', 'numeric'],
|
||||
]);
|
||||
$address = Address::where('user_id', auth()->id())->where('type', $request->address_type)->first();
|
||||
if (empty($address)) {
|
||||
$address = new Address();
|
||||
$address->user_id = auth()->id();
|
||||
}
|
||||
$address->country_id = $request->country_id;
|
||||
$address->state_id = $request->state_id;
|
||||
$address->city_id = $request->city_id;
|
||||
$address->postal_code = $request->postal_code;
|
||||
$address->type = $request->address_type;
|
||||
$address->save();
|
||||
return $this->success_message('Address info has been updated successfully');
|
||||
}
|
||||
|
||||
public function physical_attributes()
|
||||
{
|
||||
if (auth()->user()->physical_attributes) {
|
||||
return (new PhysicalAttributes(auth()->user()->physical_attributes))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function physical_attributes_update(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'height' => ['required', 'numeric', 'between:0,9.99'],
|
||||
'weight' => ['required', 'numeric', 'between:0,999.99'],
|
||||
'eye_color' => ['required', 'max:50'],
|
||||
'hair_color' => ['required', 'max:50'],
|
||||
'complexion' => ['required', 'max:50'],
|
||||
'blood_group' => ['required', 'max:3'],
|
||||
'body_type' => ['required', 'max:50'],
|
||||
'body_art' => ['required', 'max:50'],
|
||||
'disability' => ['max:255'],
|
||||
]);
|
||||
|
||||
$physical_attribute = PhysicalAttribute::where('user_id', auth()->id())->first();
|
||||
if (empty($physical_attribute)) {
|
||||
$physical_attribute = new PhysicalAttribute;
|
||||
$physical_attribute->user_id = auth()->id();
|
||||
}
|
||||
$physical_attribute->height = $request->height;
|
||||
$physical_attribute->weight = $request->weight;
|
||||
$physical_attribute->eye_color = $request->eye_color;
|
||||
$physical_attribute->hair_color = $request->hair_color;
|
||||
$physical_attribute->complexion = $request->complexion;
|
||||
$physical_attribute->blood_group = $request->blood_group;
|
||||
$physical_attribute->body_type = $request->body_type;
|
||||
$physical_attribute->body_art = $request->body_art;
|
||||
$physical_attribute->disability = $request->disability;
|
||||
$physical_attribute->save();
|
||||
return $this->success_message('Physical Attribute Info has been updated successfully');
|
||||
}
|
||||
public function member_language()
|
||||
{
|
||||
$member_known_languages = null;
|
||||
$member_mother_tongue = null;
|
||||
$known_languages = json_decode(auth()->user()->member->known_languages);
|
||||
$mother_tongue = auth()->user()->member->mothere_tongue;
|
||||
if ($known_languages != null) {
|
||||
$member_known_languages = LanguageResource::collection(MemberLanguage::whereIn('id', $known_languages)->get());
|
||||
}
|
||||
if ($mother_tongue != null) {
|
||||
$member_mother_tongue = new LanguageResource(MemberLanguage::where('id', $mother_tongue)->first());
|
||||
}
|
||||
$data['mother_tongue'] = $member_mother_tongue;
|
||||
$data['known_languages'] = $member_known_languages;
|
||||
return $this->response_data($data);
|
||||
}
|
||||
|
||||
public function member_language_update(Request $request)
|
||||
{
|
||||
$member = Member::where('user_id', auth()->id())->first();
|
||||
if ($member) {
|
||||
$member->mothere_tongue = $request->mothere_tongue;
|
||||
$member->known_languages = $request->known_languages;
|
||||
$member->save();
|
||||
return $this->success_message('Member language info has been updated successfully');
|
||||
}
|
||||
|
||||
return $this->failure_message('You are not authorized');
|
||||
}
|
||||
public function hobbies_interest()
|
||||
{
|
||||
if (auth()->user()->hobbies) {
|
||||
return (new HobbiesInterests(auth()->user()->hobbies))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function hobbies_interest_update(Request $request)
|
||||
{
|
||||
$hobbies = Hobby::where('user_id', auth()->id())->first();
|
||||
if (empty($hobbies)) {
|
||||
$hobbies = new Hobby;
|
||||
$hobbies->user_id = auth()->id();
|
||||
}
|
||||
$hobbies->hobbies = $request->hobbies;
|
||||
$hobbies->interests = $request->interests;
|
||||
$hobbies->music = $request->music;
|
||||
$hobbies->books = $request->books;
|
||||
$hobbies->movies = $request->movies;
|
||||
$hobbies->tv_shows = $request->tv_shows;
|
||||
$hobbies->sports = $request->sports;
|
||||
$hobbies->fitness_activities = $request->fitness_activities;
|
||||
$hobbies->cuisines = $request->cuisines;
|
||||
$hobbies->dress_styles = $request->dress_styles;
|
||||
$hobbies->save();
|
||||
return $this->success_message('Hobby and Interests info has been updated successfully');
|
||||
}
|
||||
public function attitude_behavior()
|
||||
{
|
||||
if (auth()->user()->attitude) {
|
||||
return (new AttitudesBehaviors(auth()->user()->attitude))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function attitude_behavior_update(Request $request)
|
||||
{
|
||||
$attitude = Attitude::where('user_id', auth()->id())->first();
|
||||
if (empty($attitude)) {
|
||||
$attitude = new Attitude;
|
||||
$attitude->user_id = auth()->id();
|
||||
}
|
||||
$attitude->affection = $request->affection;
|
||||
$attitude->humor = $request->humor;
|
||||
$attitude->political_views = $request->political_views;
|
||||
$attitude->religious_service = $request->religious_service;
|
||||
$attitude->save();
|
||||
return $this->success_message('Personal Attitude and Behavior Info has been updated successfully');
|
||||
}
|
||||
public function residency_info()
|
||||
{
|
||||
if (auth()->user()->recidency) {
|
||||
return (new ResidenceInformation(auth()->user()->recidency))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function residency_info_update(Request $request)
|
||||
{
|
||||
$recidencies = Recidency::where('user_id', auth()->id())->first();
|
||||
if (empty($recidencies)) {
|
||||
$recidencies = new Recidency;
|
||||
$recidencies->user_id = auth()->id();
|
||||
}
|
||||
$recidencies->birth_country_id = $request->birth_country_id;
|
||||
$recidencies->recidency_country_id = $request->recidency_country_id;
|
||||
$recidencies->growup_country_id = $request->growup_country_id;
|
||||
$recidencies->immigration_status = $request->immigration_status;
|
||||
$recidencies->save();
|
||||
return $this->success_message('Residency Info has been updated successfully');
|
||||
}
|
||||
public function spiritual_background()
|
||||
{
|
||||
if (auth()->user()->spiritual_backgrounds) {
|
||||
return (new SpiritualSocialBackground(auth()->user()->spiritual_backgrounds))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
|
||||
public function spiritual_background_update(Request $request)
|
||||
{
|
||||
$spiritual_backgrounds = SpiritualBackground::where('user_id', auth()->id())->first();
|
||||
if (empty($spiritual_backgrounds)) {
|
||||
$spiritual_backgrounds = new SpiritualBackground;
|
||||
$spiritual_backgrounds->user_id = auth()->id();
|
||||
}
|
||||
$spiritual_backgrounds->religion_id = $request->member_religion_id;
|
||||
$spiritual_backgrounds->caste_id = $request->member_caste_id;
|
||||
$spiritual_backgrounds->sub_caste_id = $request->member_sub_caste_id;
|
||||
$spiritual_backgrounds->ethnicity = $request->ethnicity;
|
||||
$spiritual_backgrounds->personal_value = $request->personal_value;
|
||||
$spiritual_backgrounds->family_value_id = $request->family_value_id;
|
||||
$spiritual_backgrounds->community_value = $request->community_value;
|
||||
$spiritual_backgrounds->save();
|
||||
return $this->success_message('Spiritual Background info has been updated successfully');
|
||||
}
|
||||
public function life_style()
|
||||
{
|
||||
if (auth()->user()->lifestyles) {
|
||||
return (new LifeStyleResource(auth()->user()->lifestyles))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
public function life_style_update(Request $request)
|
||||
{
|
||||
$lifestyle = Lifestyle::where('user_id', auth()->id())->first();
|
||||
if (empty($lifestyle)) {
|
||||
$lifestyle = new Lifestyle;
|
||||
$lifestyle->user_id = auth()->id();
|
||||
}
|
||||
$lifestyle->diet = $request->diet;
|
||||
$lifestyle->drink = $request->drink;
|
||||
$lifestyle->smoke = $request->smoke;
|
||||
$lifestyle->living_with = $request->living_with;
|
||||
$lifestyle->save();
|
||||
return $this->success_message('Lifestyle info has been updated successfully');
|
||||
}
|
||||
public function astronomic_info()
|
||||
{
|
||||
if (auth()->user()->astrologies) {
|
||||
return (new AstronomicInformation(auth()->user()->astrologies))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
// return $this->failure_message('No Data Found!!');
|
||||
return $this->failure_data(auth()->user()->astrologies);
|
||||
}
|
||||
}
|
||||
|
||||
public function astronomic_info_update(AstrologyRequest $request)
|
||||
{
|
||||
$astrologies = Astrology::where('user_id', auth()->id())->first();
|
||||
if (empty($astrologies)) {
|
||||
$astrologies = new Astrology;
|
||||
$astrologies->user_id = auth()->id();
|
||||
}
|
||||
$astrologies->sun_sign = $request->sun_sign;
|
||||
$astrologies->moon_sign = $request->moon_sign;
|
||||
$astrologies->time_of_birth = $request->time_of_birth;
|
||||
$astrologies->city_of_birth = $request->city_of_birth;
|
||||
|
||||
$astrologies->save();
|
||||
return $this->success_message('Astronomic Info has been updated successfully');
|
||||
}
|
||||
|
||||
public function family_info()
|
||||
{
|
||||
if (auth()->user()->families) {
|
||||
return (new FamilyInformation(auth()->user()->families))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
|
||||
public function family_info_update(Request $request)
|
||||
{
|
||||
$family = Family::where('user_id', auth()->id())->first();
|
||||
if (empty($family)) {
|
||||
$family = new Family;
|
||||
$family->user_id = auth()->id();
|
||||
}
|
||||
$family->father = $request->father;
|
||||
$family->mother = $request->mother;
|
||||
$family->sibling = $request->sibling;
|
||||
$family->save();
|
||||
return $this->success_message('Family Info has been updated successfully');
|
||||
}
|
||||
|
||||
public function partner_expectation()
|
||||
{
|
||||
if (auth()->user()->partner_expectations) {
|
||||
return (new PartnerExpectationResource(auth()->user()->partner_expectations))->additional([
|
||||
'result' => true
|
||||
]);
|
||||
} else {
|
||||
return $this->failure_message('No Data Found!!');
|
||||
}
|
||||
}
|
||||
|
||||
public function partner_expectation_update(PartnerExpectationRequest $request)
|
||||
{
|
||||
$user = User::where('id', auth()->id())->first();
|
||||
$partner_expectations = PartnerExpectation::where('user_id', auth()->id())->first();
|
||||
if (empty($partner_expectations)) {
|
||||
$partner_expectations = new PartnerExpectation;
|
||||
$partner_expectations->user_id = auth()->id();
|
||||
}
|
||||
$partner_expectations->general = $request->general;
|
||||
$partner_expectations->height = $request->partner_height;
|
||||
$partner_expectations->weight = $request->partner_weight;
|
||||
$partner_expectations->marital_status_id = $request->partner_marital_status;
|
||||
$partner_expectations->children_acceptable = $request->partner_children_acceptable;
|
||||
$partner_expectations->residence_country_id = $request->residence_country_id;
|
||||
$partner_expectations->religion_id = $request->partner_religion_id;
|
||||
$partner_expectations->caste_id = $request->partner_caste_id;
|
||||
$partner_expectations->sub_caste_id = $request->partner_sub_caste_id;
|
||||
$partner_expectations->education = $request->pertner_education;
|
||||
$partner_expectations->profession = $request->partner_profession;
|
||||
$partner_expectations->smoking_acceptable = $request->smoking_acceptable;
|
||||
$partner_expectations->drinking_acceptable = $request->drinking_acceptable;
|
||||
$partner_expectations->diet = $request->partner_diet;
|
||||
$partner_expectations->body_type = $request->partner_body_type;
|
||||
$partner_expectations->personal_value = $request->partner_personal_value;
|
||||
$partner_expectations->manglik = $request->partner_manglik;
|
||||
$partner_expectations->language_id = $request->language_id;
|
||||
$partner_expectations->family_value_id = $request->family_value_id;
|
||||
$partner_expectations->preferred_country_id = $request->partner_country_id;
|
||||
$partner_expectations->preferred_state_id = $request->partner_state_id;
|
||||
$partner_expectations->complexion = $request->pertner_complexion;
|
||||
|
||||
$partner_expectations->save();
|
||||
|
||||
if ($user->member->auto_profile_match == 1) {
|
||||
$ProfileMatchController = new ProfileMatchController;
|
||||
$ProfileMatchController->match_profiles($user->id);
|
||||
}
|
||||
|
||||
return $this->success_message('Partner Expectations Info has been updated successfully');
|
||||
}
|
||||
/**
|
||||
* Verify current password
|
||||
* insert new password
|
||||
*/
|
||||
public function password_update(Request $request)
|
||||
{
|
||||
|
||||
$this->validate($request, [
|
||||
'old_password' => ['required'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed']
|
||||
]);
|
||||
|
||||
$user = User::findOrFail(auth()->id());
|
||||
|
||||
if (Hash::check($request->old_password, $user->password)) {
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->save();
|
||||
return $this->success_message('Passwoed Updated successfully.');
|
||||
}
|
||||
|
||||
return $this->failure_message('Old password do not matched.');
|
||||
}
|
||||
|
||||
public function account_deactivation(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
$user->deactivated = $request->deacticvation_status;
|
||||
$user->save();
|
||||
$msg = $request->deacticvation_status == 1 ? 'deactivated' : 'reactivated';
|
||||
return $this->success_message(translate('Your account ' . $msg . ' successfully!'));
|
||||
}
|
||||
|
||||
public function public_profile($id)
|
||||
{
|
||||
$user = User::where('id', $id)->first();
|
||||
$auth_user = auth()->user();
|
||||
if ($user) {
|
||||
$member_known_languages = null;
|
||||
$member_mother_tongue = null;
|
||||
$known_languages = json_decode($user->member->known_languages);
|
||||
$mother_tongue = json_decode($user->member->mothere_tongue);
|
||||
if ($known_languages != null) {
|
||||
$member_known_languages = LanguageResource::collection(MemberLanguage::whereIn('id', $known_languages)->get());
|
||||
}
|
||||
if ($mother_tongue != null) {
|
||||
$member_mother_tongue = new LanguageResource(MemberLanguage::where('id', $mother_tongue)->first());
|
||||
}
|
||||
$data['intoduction'] = new AboutUser($user);
|
||||
$data['basic_info'] = new BasicInformation($user);
|
||||
|
||||
$profile_pic_privacy = get_setting('profile_picture_privacy');
|
||||
$photo_view_request = ViewProfilePicture::where('user_id', $user->id)->where('requested_by', $auth_user->id)->first();
|
||||
$data['profile_pic_request'] = $user->photo != null && $user->photo_approved == 1 && $profile_pic_privacy == 'only_me' && ($photo_view_request == null || ($photo_view_request && $photo_view_request->status == 0));
|
||||
|
||||
$data['present_address'] = Address::where('user_id', $id)->where('type', 'present')->first() ? new AddressResource(Address::where('user_id', $id)->where('type', 'present')->first()) : null;
|
||||
$data['contact_details']['email'] = $user->email;
|
||||
$data['contact_details']['phone'] = $user->phone;
|
||||
$data['education'] = $user->education ? EducationResource::collection($user->education) : null;
|
||||
$data['career'] = $user->career ? CareerResource::collection($user->career) : null;
|
||||
$data['physical_attributes'] = $user->physical_attributes ? new PhysicalAttributes($user->physical_attributes) : null;
|
||||
$data['known_languages'] = $member_known_languages;
|
||||
$data['mother_tongue'] = $member_mother_tongue;
|
||||
$data['hobbies_interest'] = $user->hobbies ? new HobbiesInterests($user->hobbies) : null;
|
||||
$data['attitude_behavior'] = $user->attitude ? new AttitudesBehaviors($user->attitude) : null;
|
||||
$data['residence_info'] = $user->recidency ? new ResidenceInformation($user->recidency) : null;
|
||||
$data['spiritual_backgrounds'] = $user->spiritual_backgrounds ? new SpiritualSocialBackground($user->spiritual_backgrounds) : null;
|
||||
$data['lifestyles'] = $user->lifestyles ? new LifeStyleResource($user->lifestyles) : null;
|
||||
$data['astrologies'] = $user->astrologies ? new AstronomicInformation($user->astrologies) : null;
|
||||
$data['permanent_address'] = Address::where('user_id', $id)->where('type', 'permanent')->first() ? new AddressResource(Address::where('user_id', $id)->where('type', 'permanent')->first()) : null;
|
||||
$data['families_information'] = $user->families ? new FamilyInformation($user->families) : null;
|
||||
$data['partner_expectation'] = $user->partner_expectations ? new PartnerExpectationResource($user->partner_expectations) : null;
|
||||
|
||||
$gallery_images = GalleryImage::where('user_id', $user->id)->get();
|
||||
$gallery_image_privacy = get_setting('gallery_image_privacy');
|
||||
$gallery_image_request = ViewGalleryImage::where('user_id', $user->id)->where('requested_by', $auth_user->id)->first();
|
||||
|
||||
if ($gallery_image_privacy == 'only_me') {
|
||||
if ($gallery_image_request !== null && $gallery_image_request->status == 1) {
|
||||
$data['photo_gallery'] = GalleryImageResource::collection($gallery_images);
|
||||
} else {
|
||||
$data['photo_gallery'] = RequestedGalleryImage::collection($gallery_images);
|
||||
}
|
||||
} elseif ($gallery_image_privacy == "all") {
|
||||
$data['photo_gallery'] = GalleryImageResource::collection($gallery_images);
|
||||
} else {
|
||||
if ($auth_user->membership == 2) {
|
||||
$data['photo_gallery'] = GalleryImageResource::collection($gallery_images);
|
||||
} else {
|
||||
$data['photo_gallery'] = RequestedGalleryImage::collection($gallery_images);
|
||||
}
|
||||
}
|
||||
|
||||
$data['profile_match'] = null;
|
||||
$profile_match = ProfileMatch::where('user_id', auth()->user()->id)
|
||||
->where('match_id', $user->id)
|
||||
->first();
|
||||
if (!empty($profile_match) && auth()->user()->member->auto_profile_match == 1) {
|
||||
$data['profile_match'] = $profile_match->match_percentage;
|
||||
}
|
||||
$data['view_contact_check'] = ViewContact::where('user_id', $user->id)->where('viewed_by', auth()->id())->first() ? true : false;
|
||||
|
||||
return $this->response_data($data);
|
||||
} else {
|
||||
return $this->failure_message("User Not Found");
|
||||
}
|
||||
}
|
||||
public function contact_info_update(Request $request)
|
||||
{
|
||||
$user = User::where('id', auth()->id())->first();
|
||||
$user->email = $request->email;
|
||||
$user->phone = $request->phone;
|
||||
if ($user->save()) {
|
||||
return $this->success_message('Contact Info has been updated successfully');
|
||||
} else {
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
}
|
||||
|
||||
public function store_view_contact(Request $request)
|
||||
{
|
||||
$contact_view_check = ViewContact::where('user_id', $request->id)->where('viewed_by', auth()->id())->first();
|
||||
if (!$contact_view_check) {
|
||||
$view_contact_by_user = auth()->user();
|
||||
$view_contact_by_member = $view_contact_by_user->member;
|
||||
|
||||
if ($view_contact_by_member->remaining_contact_view > 0) {
|
||||
|
||||
// Store view contact data
|
||||
$view_contact = new ViewContact;
|
||||
$view_contact->user_id = $request->id;
|
||||
$view_contact->viewed_by = $view_contact_by_user->id;
|
||||
if ($view_contact->save()) {
|
||||
|
||||
// Deduct View Contact by user's remaining contact views
|
||||
$view_contact_by_member->remaining_contact_view -= 1;
|
||||
$view_contact_by_member->save();
|
||||
return $this->success_message('Request sent successfully!');
|
||||
} else {
|
||||
return $this->failure_message('Request failed to be sent!');
|
||||
}
|
||||
} else {
|
||||
return $this->failure_message('You do not have enough request to send');
|
||||
}
|
||||
} else {
|
||||
return $this->failure_message('You already sent an request');
|
||||
}
|
||||
}
|
||||
|
||||
public function matched_profile()
|
||||
{
|
||||
$matched_profiles = [];
|
||||
$user = auth()->user();
|
||||
if ($user->member->auto_profile_match == 1) {
|
||||
$matched_profiles = ProfileMatch::orderBy('match_percentage', 'desc')
|
||||
->where('user_id', $user->id)
|
||||
->where('match_percentage', '>=', 50);
|
||||
$ignored_to = IgnoredUser::where('ignored_by', $user->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$matched_profiles = $matched_profiles->whereNotIn('match_id', $ignored_to);
|
||||
}
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', $user->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$matched_profiles = $matched_profiles->whereNotIn('match_id', $ignored_by_ids);
|
||||
}
|
||||
$matched_profiles = $matched_profiles->limit(20)->get();
|
||||
}
|
||||
return MatchedProfileResource::collection($matched_profiles);
|
||||
}
|
||||
|
||||
public function account_delete(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user) {
|
||||
$user->member ? $user->member->delete() : '';
|
||||
Address::where('user_id', $user->id)->delete();
|
||||
Education::where('user_id', $user->id)->delete();
|
||||
Career::where('user_id', $user->id)->delete();
|
||||
PhysicalAttribute::where('user_id', $user->id)->delete();
|
||||
Hobby::where('user_id', $user->id)->delete();
|
||||
Attitude::where('user_id', $user->id)->delete();
|
||||
Recidency::where('user_id', $user->id)->delete();
|
||||
Lifestyle::where('user_id', $user->id)->delete();
|
||||
Astrology::where('user_id', $user->id)->delete();
|
||||
Family::where('user_id', $user->id)->delete();
|
||||
PartnerExpectation::where('user_id', $user->id)->delete();
|
||||
SpiritualBackground::where('user_id', $user->id)->delete();
|
||||
PackagePayment::where('user_id', $user->id)->delete();
|
||||
HappyStory::where('user_id', $user->id)->delete();
|
||||
Staff::where('user_id', $user->id)->delete();
|
||||
Shortlist::where('user_id', $user->id)->delete();
|
||||
IgnoredUser::where('user_id', $user->id)->delete();
|
||||
ReportedUser::where('user_id', $user->id)->delete();
|
||||
GalleryImage::where('user_id', $user->id)->delete();
|
||||
ExpressInterest::where('user_id', $user->id)->delete();
|
||||
ProfileMatch::where('user_id', $user->id)->delete();
|
||||
ChatThread::where('sender_user_id', auth()->user()->id)->orWhere('receiver_user_id', auth()->user()->id)->delete();
|
||||
User::destroy(auth()->user()->id);
|
||||
$user->tokens()
|
||||
->where('id', $user->currentAccessToken()->id)
|
||||
->delete();
|
||||
return $this->success_message('Your account has deleted successfully!');
|
||||
}
|
||||
return $this->failure_message('Something Went Wrong!');
|
||||
}
|
||||
}
|
||||
72
app/Http/Controllers/Api/ProfileDropdownController.php
Normal file
72
app/Http/Controllers/Api/ProfileDropdownController.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\Profile\CasteResource;
|
||||
use App\Http\Resources\Profile\CityResource;
|
||||
use App\Http\Resources\Profile\CountryResource;
|
||||
use App\Http\Resources\Profile\FamilyValuesResource;
|
||||
use App\Http\Resources\Profile\LanguageResource;
|
||||
use App\Http\Resources\Profile\MaritialStatusResource;
|
||||
use App\Http\Resources\Profile\OnBehalfResource;
|
||||
use App\Http\Resources\Profile\ReligionResource;
|
||||
use App\Http\Resources\Profile\StateResource;
|
||||
use App\Http\Resources\Profile\SubCasteResource;
|
||||
use App\Models\Caste;
|
||||
use App\Models\City;
|
||||
use App\Models\Country;
|
||||
use App\Models\FamilyValue;
|
||||
use App\Models\Language;
|
||||
use App\Models\MaritalStatus;
|
||||
use App\Models\MemberLanguage;
|
||||
use App\Models\OnBehalf;
|
||||
use App\Models\Religion;
|
||||
use App\Models\State;
|
||||
use App\Models\SubCaste;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Lang;
|
||||
|
||||
class ProfileDropdownController extends Controller
|
||||
{
|
||||
public function profile_dropdown(){
|
||||
$data['onbehalf_list'] = OnBehalfResource::collection(OnBehalf::latest()->get());
|
||||
$data['maritial_status'] = MaritialStatusResource::collection(MaritalStatus::latest()->get());
|
||||
$data['language_list'] = LanguageResource::collection(MemberLanguage::all());
|
||||
$data['religion_list'] = ReligionResource::collection(Religion::all());
|
||||
$data['family_value_list'] = FamilyValuesResource::collection(FamilyValue::all());
|
||||
$data['country_list'] = CountryResource::collection(Country::where('status',1)->get());
|
||||
return $this->response_data($data);
|
||||
}
|
||||
public function onbehalf_list(){
|
||||
return OnBehalfResource::collection(OnBehalf::latest()->get());
|
||||
}
|
||||
|
||||
public function maritial_status(){
|
||||
return MaritialStatusResource::collection(MaritalStatus::latest()->get());
|
||||
}
|
||||
public function country_list(){
|
||||
return CountryResource::collection(Country::where('status',1)->get());
|
||||
}
|
||||
public function state_list($id){
|
||||
return StateResource::collection(State::where('country_id',$id)->get());
|
||||
}
|
||||
public function city_list($id){
|
||||
return CityResource::collection(City::where('state_id',$id)->get());
|
||||
}
|
||||
public function language_list(){
|
||||
return LanguageResource::collection(MemberLanguage::all());
|
||||
}
|
||||
public function religion_list(){
|
||||
return ReligionResource::collection(Religion::all());
|
||||
}
|
||||
public function caste_list($id){
|
||||
return CasteResource::collection(Caste::where('religion_id',$id)->get());
|
||||
}
|
||||
public function sub_caste_list($id){
|
||||
return SubCasteResource::collection(SubCaste::where('caste_id',$id)->get());
|
||||
}
|
||||
public function family_value_list(){
|
||||
return FamilyValuesResource::collection(FamilyValue::all());
|
||||
}
|
||||
}
|
||||
180
app/Http/Controllers/Api/ProfileImageController.php
Normal file
180
app/Http/Controllers/Api/ProfileImageController.php
Normal file
@ -0,0 +1,180 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Resources\ProfileImageRequest;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Notification;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Models\ViewProfilePicture;
|
||||
use App\Utility\SmsUtility;
|
||||
use App\Models\Member;
|
||||
use App\Models\User;
|
||||
use Auth;
|
||||
use DB;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
|
||||
class ProfileImageController extends Controller
|
||||
{
|
||||
public function image_view_request()
|
||||
{
|
||||
$my_profile_pic_view_requests = DB::table('view_profile_pictures')
|
||||
->orderBy('id', 'desc')
|
||||
->where('user_id', auth()->id())
|
||||
->join('users', 'view_profile_pictures.user_id', '=', 'users.id')
|
||||
->select('view_profile_pictures.id')
|
||||
->distinct()
|
||||
->paginate(10);
|
||||
return ProfileImageRequest::collection($my_profile_pic_view_requests);
|
||||
// return $this->response_data($my_profile_pic_view_requests);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$exist_check = ViewProfilePicture::where('user_id', $request->id)->where('requested_by', $auth_user->id)->first();
|
||||
if (!$exist_check) {
|
||||
$view_profile_picture = new ViewProfilePicture;
|
||||
$view_profile_picture->user_id = $request->id;
|
||||
$view_profile_picture->requested_by = $auth_user->id;
|
||||
if ($view_profile_picture->save()) {
|
||||
$member = Member::where('user_id', $auth_user->id)->first();
|
||||
$member->remaining_profile_image_view = $member->remaining_profile_image_view - 1;
|
||||
$member->save();
|
||||
|
||||
$notify_user = User::where('id', $request->id)->first();
|
||||
|
||||
// View Profile Picture Store Notification for member
|
||||
try {
|
||||
$notify_type = 'profile_picture_view';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $auth_user->id;
|
||||
$info_id = $view_profile_picture->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' wants to see your profile picture.');
|
||||
$route = 'profile-picture-view-request.index';
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $request->id)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// View Profile Picture email send to member
|
||||
if ($notify_user->email != null && get_email_template('profile_picture_view_request_email', 'status')) {
|
||||
EmailUtility::email_on_request($notify_user, 'profile_picture_view_request_email');
|
||||
}
|
||||
|
||||
// View Profile Picture email SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('profile_picture_view_request', 'status') == 1)) {
|
||||
SmsUtility::sms_on_request($notify_user, 'profile_picture_view_request');
|
||||
}
|
||||
|
||||
return $this->success_message('profile image view request sent successfully');
|
||||
} else {
|
||||
return $this->failure_message('Something went wrong');
|
||||
}
|
||||
} else {
|
||||
return $this->failure_message('Already requested');
|
||||
}
|
||||
}
|
||||
|
||||
public function accept_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$view_profile_picture = ViewProfilePicture::findOrFail($request->profile_pic_view_request_id);
|
||||
|
||||
if ($view_profile_picture) {
|
||||
$view_profile_picture->status = 1;
|
||||
$view_profile_picture->save();
|
||||
$notify_user = User::where('id', $view_profile_picture->requested_by)->first();
|
||||
|
||||
// Express Interest Store Notification for member
|
||||
try {
|
||||
$notify_type = 'accept_profile_picture_view_request';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $auth_user->id;
|
||||
$info_id = $view_profile_picture->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' has accepted your profile picture view request.');
|
||||
$route = route("member_profile", $auth_user->id);
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $view_profile_picture->requested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// View Profile Picture email send to member
|
||||
if ($notify_user->email != null && get_email_template('profile_picture_view_request_accepted_email', 'status')) {
|
||||
EmailUtility::email_on_accept_request($notify_user, 'profile_picture_view_request_accepted_email');
|
||||
}
|
||||
|
||||
// View Profile Picture email SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('profile_picture_view_request_accepted', 'status') == 1)) {
|
||||
SmsUtility::sms_on_accept_request($notify_user, 'profile_picture_view_request_accepted');
|
||||
}
|
||||
return $this->success_message('Interest has been accepted successfully.');
|
||||
} else {
|
||||
return $this->failure_message('Sorry! Did not find any request');
|
||||
}
|
||||
}
|
||||
|
||||
public function reject_image_view_request(Request $request)
|
||||
{
|
||||
$auth_user = auth()->user();
|
||||
$profile_pic_view_request = ViewProfilePicture::findOrFail($request->profile_pic_view_request_id);
|
||||
|
||||
if (ViewProfilePicture::destroy($request->profile_pic_view_request_id)) {
|
||||
|
||||
$notify_user = User::where('id', $profile_pic_view_request->requested_by)->first();
|
||||
try {
|
||||
$notify_type = 'reject_profile_image_view_request';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = auth()->id();
|
||||
$info_id = $profile_pic_view_request->id;
|
||||
$message = $auth_user->first_name . ' ' . $auth_user->last_name . ' ' . translate(' has rejected your profile picture view request.');
|
||||
$route = route('member.listing');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $profile_pic_view_request->requested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
return $this->success_message('profile image view request has been rejected successfully.');
|
||||
} else {
|
||||
return $this->failure_message('Sorry! Did not find any request');
|
||||
}
|
||||
}
|
||||
}
|
||||
54
app/Http/Controllers/Api/ReferralController.php
Normal file
54
app/Http/Controllers/Api/ReferralController.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Wallet;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\ReferralResource;
|
||||
use App\Http\Resources\ReferralEarningsResource;
|
||||
|
||||
class ReferralController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
if (addon_activation('referral_system')) {
|
||||
$referred_users = User::orderBy('id', 'desc')->where('referred_by', auth()->user()->id)->paginate(10);
|
||||
return ReferralResource::collection($referred_users)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
public function referral_code()
|
||||
{
|
||||
if (addon_activation('referral_system')) {
|
||||
$data['referral_code'] = auth()->user()->code;
|
||||
return $this->response_data($data);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
public function referral_earnings()
|
||||
{
|
||||
if (addon_activation('referral_system')) {
|
||||
$referral_earnings = Wallet::orderBy('id', 'desc')->where('payment_method', 'reffered_commission')->where('user_id', auth()->user()->id)->paginate(10);
|
||||
return ReferralEarningsResource::collection($referral_earnings)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
public function referral_check()
|
||||
{
|
||||
$data = array();
|
||||
$auth_user = auth()->user();
|
||||
if (addon_activation('referral_system') && $auth_user->referred_by != null && $auth_user->referral_comission == 0) {
|
||||
$data['referral_discount_type'] = get_setting('referral_user_package_purchase_discount_type');
|
||||
$data['referral_discount_amount'] = get_setting('referral_user_package_purchase_discount');
|
||||
}
|
||||
return empty($data) ? $this->failure_data($data) : $this->response_data($data);
|
||||
}
|
||||
}
|
||||
59
app/Http/Controllers/Api/ShortlistController.php
Normal file
59
app/Http/Controllers/Api/ShortlistController.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Shortlist;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\ShortlistResource;
|
||||
|
||||
class ShortlistController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$shortlists = Shortlist::where('shortlisted_by', auth()->user()->id)
|
||||
->WhereNotIn("user_id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', auth()->user()->id)->orWhere('user_id', auth()->user()->id);
|
||||
})
|
||||
->WhereNotIn("user_id", function ($query) {
|
||||
$query->select('ignored_by')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', auth()->user()->id)->orWhere('user_id', auth()->user()->id);
|
||||
})
|
||||
->latest()->paginate(10);
|
||||
|
||||
return ShortlistResource::collection($shortlists)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (User::find($request->user_id)) {
|
||||
$short_list = Shortlist::where('user_id', $request->user_id)
|
||||
->where('shortlisted_by', auth()->id())
|
||||
->first();
|
||||
if ($short_list == null) {
|
||||
Shortlist::create($request->only('user_id') + [
|
||||
'shortlisted_by' => auth()->user()->id
|
||||
]);
|
||||
return $this->success_message('You Have Shortlisted This Member');
|
||||
}
|
||||
return $this->failure_message('You Have already added This Member');
|
||||
}
|
||||
return $this->failure_message('Invalid Member to Shortlist.');
|
||||
}
|
||||
|
||||
public function remove(Request $request)
|
||||
{
|
||||
$shortlist = Shortlist::where('user_id', $request->user_id)->where('shortlisted_by', auth()->user()->id)->first();
|
||||
if ($shortlist) {
|
||||
Shortlist::destroy($shortlist->id);
|
||||
return $this->success_message('You Have Removed This Member From Your Shortlist.');
|
||||
}
|
||||
return $this->success_message('Invalid Information');
|
||||
}
|
||||
}
|
||||
169
app/Http/Controllers/Api/SupportTicketController.php
Normal file
169
app/Http/Controllers/Api/SupportTicketController.php
Normal file
@ -0,0 +1,169 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Resources\SupportTicket\SupportTicketCategoryResource;
|
||||
use App\Http\Resources\SupportTicketResource;
|
||||
use App\Models\SupportTicket;
|
||||
use App\Models\SupportTicketReply;
|
||||
use App\Models\SupportCategory;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SupportTicketController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Active tickets
|
||||
*/
|
||||
public function my_ticket()
|
||||
{
|
||||
if (addon_activation('support_tickets')) {
|
||||
$my_tickets = SupportTicket::where('sender_user_id', auth()->id())->where('status', '0')->orderBy('created_at', 'desc')->paginate(10);
|
||||
if (count($my_tickets) == 0) {
|
||||
return $this->failure_message('No support ticket found!');
|
||||
} else {
|
||||
return SupportTicketResource::collection($my_tickets)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if (addon_activation('support_tickets')) {
|
||||
$attachment = null;
|
||||
if ($request->hasFile('attachment')) {
|
||||
$attachment = upload_api_file($request->file('attachment'));
|
||||
}
|
||||
// if ($request->hasFile('attachments')) {
|
||||
// foreach ($request->file('attachments') as $key => $file) {
|
||||
// $attachment = upload_api_file($file);
|
||||
// $attachments[] = $attachment;
|
||||
// }
|
||||
// }
|
||||
// $attachments = implode(',', $attachments);
|
||||
$default_agent = get_setting('default_ticket_assigned_user');
|
||||
$support_ticket = new SupportTicket;
|
||||
$support_ticket->subject = $request->subject;
|
||||
$support_ticket->support_category_id = $request->support_category_id;
|
||||
$support_ticket->sender_user_id = auth()->id();
|
||||
if ($default_agent != null) {
|
||||
$support_ticket->assigned_user_id = $default_agent;
|
||||
}
|
||||
$support_ticket->ticket_id = date('Ymd-his');
|
||||
$support_ticket->description = $request->description;
|
||||
$support_ticket->attachments = $attachment;
|
||||
$support_ticket->save();
|
||||
$submit_id = $support_ticket->ticket_id;
|
||||
return $this->response_data($submit_id);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
if (addon_activation('support_tickets')) {
|
||||
$support_ticket = SupportTicket::findOrFail($id);
|
||||
$support_ticket->seen = '1';
|
||||
$support_ticket->save();
|
||||
$support_replies = SupportTicketReply::where('support_ticket_id', $support_ticket->id)->get();
|
||||
foreach ($support_replies as $support_replie) {
|
||||
if ($support_replie->replied_user_id != auth()->user()->id) {
|
||||
$support_replie->seen = 1;
|
||||
$support_replie->save();
|
||||
}
|
||||
}
|
||||
return new SupportTicketResource($support_ticket);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
public function ticket_reply(Request $request)
|
||||
{
|
||||
if (addon_activation('support_tickets')) {
|
||||
$attachments = [];
|
||||
if ($request->hasFile('attachment')) {
|
||||
$attachments = upload_api_file($request->file('attachment'));
|
||||
}
|
||||
// if ($request->hasFile('attachments')) {
|
||||
// foreach ($request->file('attachments') as $key => $file) {
|
||||
// $attachment = upload_api_file($file);
|
||||
// $attachments[] = $attachment;
|
||||
// }
|
||||
// }
|
||||
$attachments = implode(',', $attachments);
|
||||
$support_ticket = SupportTicket::findOrFail($request->support_ticket_id);
|
||||
|
||||
$ticket_reply = new SupportTicketReply;
|
||||
$ticket_reply->support_ticket_id = $request->support_ticket_id;
|
||||
$ticket_reply->replied_user_id = auth()->user()->id;
|
||||
$ticket_reply->reply = $request->reply;
|
||||
$ticket_reply->attachments = $attachments;
|
||||
if ($ticket_reply->save()) {
|
||||
if (auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff') {
|
||||
$support_ticket->status = $request->status;
|
||||
$support_ticket->save();
|
||||
return $this->success_message('Reply has been sent successfully');
|
||||
} else {
|
||||
$support_ticket->status = "0";
|
||||
$support_ticket->save();
|
||||
return $this->success_message('Reply has been sent successfully');
|
||||
}
|
||||
} else {
|
||||
return $this->failure_message('Sorry! Something went wrong.');
|
||||
}
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function support_ticket_categories(){
|
||||
$support_categories = SupportCategory::orderBy('created_at','desc')->paginate(10);
|
||||
return SupportTicketCategoryResource::collection($support_categories);
|
||||
}
|
||||
}
|
||||
129
app/Http/Controllers/Api/WalletController.php
Normal file
129
app/Http/Controllers/Api/WalletController.php
Normal file
@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Models\Wallet;
|
||||
use App\Models\WalletWithdrawRequest;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Resources\WalletResource;
|
||||
use App\Http\Controllers\Api\Controller;
|
||||
use App\Http\Controllers\Api\Payment\PaytmController;
|
||||
use App\Http\Resources\WalletWithdrawRequestResource;
|
||||
use App\Http\Controllers\Api\Payment\PaypalController;
|
||||
use App\Http\Controllers\Api\Payment\StripeController;
|
||||
use App\Http\Controllers\Api\Payment\PaystackController;
|
||||
use App\Http\Controllers\Api\Payment\RazorpayController;
|
||||
use App\Http\Controllers\Api\Payment\InstamojoController;
|
||||
use App\Models\User;
|
||||
|
||||
class WalletController extends Controller
|
||||
{
|
||||
public function wallet_balance()
|
||||
{
|
||||
$data['wallet_balance'] = single_price(auth()->user()->balance);
|
||||
return $this->response_data($data);
|
||||
|
||||
}
|
||||
public function index()
|
||||
{
|
||||
$wallets = Wallet::where('user_id', auth()->user()->id)->latest()->paginate(10);
|
||||
return WalletResource::collection($wallets)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function recharge(Request $request)
|
||||
{
|
||||
$this->validate($request,[
|
||||
'amount'=>'required',
|
||||
'payment_method'=>'required'
|
||||
]);
|
||||
|
||||
$request->payment_type = 'wallet_payment';
|
||||
$request->amount = $request->amount;
|
||||
$request->payment_method = $request->payment_method;
|
||||
|
||||
if ($request->payment_method == 'paypal') {
|
||||
$paypal = new PaypalController;
|
||||
return $paypal->pay($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'instamojo') {
|
||||
$instamojo = new InstamojoController;
|
||||
return $instamojo->pay($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'stripe') {
|
||||
$stripe = new StripeController;
|
||||
return $stripe->stripe($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'razorpay') {
|
||||
$razorpay = new RazorpayController;
|
||||
return $razorpay->pay($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'paystack') {
|
||||
$paystack = new PaystackController;
|
||||
return $paystack->redirectToGateway($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'paytm') {
|
||||
$paytm = new PaytmController;
|
||||
return $paytm->index($request);
|
||||
}
|
||||
elseif ($request->payment_method == 'manual_payment_1' || $request->payment_method == 'manual_payment_2') {
|
||||
$reciept = null;
|
||||
if ($request->hasFile('reciept')) {
|
||||
$reciept = upload_api_file($request->file('reciept'));
|
||||
}
|
||||
Wallet::create($request->only('amount', 'payment_details', 'transaction_id', 'payment_method') + [
|
||||
'user_id' => auth()->user()->id,
|
||||
'offline_payment' => 1,
|
||||
'reciept' => $reciept,
|
||||
]);
|
||||
return $this->success_message('Payment completed');
|
||||
}
|
||||
}
|
||||
|
||||
public function wallet_payment_done($user_id,$payment_data, $payment_details)
|
||||
{
|
||||
$user = User::find($user_id);
|
||||
$user->balance = $user->balance + $payment_data['amount'];
|
||||
$user->save();
|
||||
|
||||
$wallet = new Wallet;
|
||||
$wallet->user_id = $user->id;
|
||||
$wallet->amount = $payment_data['amount'];
|
||||
$wallet->payment_method = $payment_data['payment_method'];
|
||||
$wallet->payment_details = $payment_details;
|
||||
$wallet->save();
|
||||
|
||||
return response()->json(['result' => true, 'message' => translate("Payment completed")]);
|
||||
}
|
||||
|
||||
public function wallet_withdraw_request_history()
|
||||
{
|
||||
if (addon_activation('referral_system')) {
|
||||
$wallet_withdraw_requests = WalletWithdrawRequest::latest()->where('user_id', auth()->user()->id)->paginate(10);
|
||||
return WalletWithdrawRequestResource::collection($wallet_withdraw_requests)->additional([
|
||||
'result' => true
|
||||
]);
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
|
||||
public function wallet_withdraw_request_store(Request $request)
|
||||
{
|
||||
if (addon_activation('referral_system')) {
|
||||
if (auth()->user()->balance >= $request->amount) {
|
||||
WalletWithdrawRequest::create($request->only('amount', 'details') + [
|
||||
'user_id' => auth()->user()->id
|
||||
]);
|
||||
|
||||
$user = auth()->user();
|
||||
$user->balance = $user->balance - $request->amount;
|
||||
$user->save();
|
||||
|
||||
return $this->success_message('Wallet Withdraw Request Sent Successfully');
|
||||
}
|
||||
return $this->failure_message('Insufficient Balance!!');
|
||||
}
|
||||
return $this->failure_message('You are not authorized to access!!');
|
||||
}
|
||||
}
|
||||
128
app/Http/Controllers/AstrologyController.php
Normal file
128
app/Http/Controllers/AstrologyController.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Astrology;
|
||||
use Validator;
|
||||
Use Redirect;
|
||||
|
||||
class AstrologyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'sun_sign' => [ 'max:255'],
|
||||
'moon_sign' => [ 'max:255'],
|
||||
'time_of_birth' => [ 'max:10'],
|
||||
'city_of_birth' => [ 'max:20'],
|
||||
];
|
||||
$this->messages = [
|
||||
'sun_sign.max' => translate('Max 255 characters'),
|
||||
'moon_sign.max' => translate('Max 255 characters'),
|
||||
'time_of_birth.max' => translate('Max 10 characters'),
|
||||
'city_of_birth.max' => translate('Max 20 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$astrologies = Astrology::where('user_id', $id)->first();
|
||||
if(empty($astrologies)){
|
||||
$astrologies = new Astrology;
|
||||
$astrologies->user_id = $id;
|
||||
}
|
||||
|
||||
$astrologies->sun_sign = $request->sun_sign;
|
||||
$astrologies->moon_sign = $request->moon_sign;
|
||||
$astrologies->time_of_birth = $request->time_of_birth;
|
||||
$astrologies->city_of_birth = $request->city_of_birth;
|
||||
|
||||
if($astrologies->save()){
|
||||
flash(translate('Astronomic Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
123
app/Http/Controllers/AttitudeController.php
Normal file
123
app/Http/Controllers/AttitudeController.php
Normal file
@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Attitude;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class AttitudeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'affection' => [ 'max:255'],
|
||||
'humor' => [ 'max:255'],
|
||||
];
|
||||
$this->messages = [
|
||||
'affection.max' => translate('Max 255 characters'),
|
||||
'humor.max' => translate('Max 255 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$attitude = Attitude::where('user_id', $id)->first();
|
||||
if(empty($attitude)){
|
||||
$attitude = new Attitude;
|
||||
$attitude->user_id = $id;
|
||||
}
|
||||
|
||||
$attitude->affection = $request->affection;
|
||||
$attitude->humor = $request->humor;
|
||||
$attitude->political_views = $request->political_views;
|
||||
$attitude->religious_service = $request->religious_service;
|
||||
|
||||
if($attitude->save()){
|
||||
flash(translate('Personal Attitude and Behavior Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
40
app/Http/Controllers/Auth/ConfirmPasswordController.php
Normal file
40
app/Http/Controllers/Auth/ConfirmPasswordController.php
Normal 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');
|
||||
}
|
||||
}
|
||||
65
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
65
app/Http/Controllers/Auth/ForgotPasswordController.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Utility\SmsUtility;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* Send a reset link to the given user.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
|
||||
*/
|
||||
|
||||
public function sendResetLinkEmail(Request $request)
|
||||
{
|
||||
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if ($user != null) {
|
||||
$user->verification_code = rand(100000,999999);
|
||||
$user->save();
|
||||
|
||||
EmailUtility::password_reset_email($user, $user->verification_code);
|
||||
return view('auth.passwords.reset');
|
||||
}
|
||||
else {
|
||||
flash(translate('No account exists with this email'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
else{
|
||||
$user = User::where('phone', $request->email)->first();
|
||||
if ($user != null) {
|
||||
$user->verification_code = rand(100000,999999);
|
||||
$user->save();
|
||||
|
||||
SmsUtility::password_reset($user , $user->verification_code);
|
||||
return view('addons.otp_systems.frontend.auth.passwords.reset_with_phone');
|
||||
}
|
||||
else {
|
||||
flash(translate('No account exists with this phone number'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
332
app/Http/Controllers/Auth/LoginController.php
Normal file
332
app/Http/Controllers/Auth/LoginController.php
Normal file
@ -0,0 +1,332 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use Socialite;
|
||||
use App\Models\User;
|
||||
use App\Models\Hobby;
|
||||
use App\Models\Staff;
|
||||
use App\Models\Career;
|
||||
use App\Models\Family;
|
||||
use App\Models\Member;
|
||||
use App\Models\Address;
|
||||
use App\Models\Package;
|
||||
use App\Models\Attitude;
|
||||
use App\Models\Astrology;
|
||||
use App\Models\Education;
|
||||
use App\Models\Lifestyle;
|
||||
use App\Models\Recidency;
|
||||
use App\Models\Shortlist;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\HappyStory;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\GalleryImage;
|
||||
use App\Models\ProfileMatch;
|
||||
use App\Models\ReportedUser;
|
||||
use CoreComponentRepository;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\PackagePayment;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\PartnerExpectation;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use GeneaLabs\LaravelSocialiter\Facades\Socialiter;
|
||||
|
||||
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;
|
||||
|
||||
public function redirectToProvider($provider)
|
||||
{
|
||||
if (request()->get('query') == 'mobile_app') {
|
||||
request()->session()->put('login_from', 'mobile_app');
|
||||
}
|
||||
if ($provider == 'apple') {
|
||||
return Socialite::driver("sign-in-with-apple")
|
||||
->scopes(["name", "email"])
|
||||
->redirect();
|
||||
}
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
public function handleProviderCallback(Request $request, $provider)
|
||||
{
|
||||
if (session('login_from') == 'mobile_app') {
|
||||
return $this->mobileHandleProviderCallback($request, $provider);
|
||||
}
|
||||
try {
|
||||
if ($provider == 'twitter') {
|
||||
$user = Socialite::driver('twitter')->user();
|
||||
} else {
|
||||
$user = Socialite::driver($provider)->stateless()->user();
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
flash("Something Went wrong. Please try again.")->error();
|
||||
return redirect()->route('user.login');
|
||||
}
|
||||
|
||||
//check if provider_id exist
|
||||
$existingUserByProviderId = User::where('provider_id', $user->id)->first();
|
||||
|
||||
if ($existingUserByProviderId) {
|
||||
$existingUserByProviderId->access_token = $user->token;
|
||||
$existingUserByProviderId->save();
|
||||
//proceed to login
|
||||
auth()->login($existingUserByProviderId, true);
|
||||
} else {
|
||||
// check if email exist
|
||||
$existingUser = User::where('email', '!=', null)->where('email', $user->email)->first();
|
||||
|
||||
if ($existingUser) {
|
||||
// log them in
|
||||
if($existingUser->approved == 0){
|
||||
flash("Please wait for the admin approval.")->error();
|
||||
return redirect()->route('user.login');
|
||||
} else {
|
||||
auth()->login($existingUser, true);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// create a new user
|
||||
$newUser = new User;
|
||||
$newUser->first_name = $user->name;
|
||||
$newUser->email = $user->email;
|
||||
$newUser->email_verified_at = date('Y-m-d H:m:s');
|
||||
$newUser->provider_id = $user->id;
|
||||
$newUser->code = unique_code();
|
||||
$newUser->membership = 1;
|
||||
$newUser->approved = get_setting('member_approval_by_admin') == 1 ? 0 : 1;
|
||||
$newUser->save();
|
||||
|
||||
$member = new Member;
|
||||
$member->user_id = $newUser->id;
|
||||
$member->gender = null;
|
||||
$member->on_behalves_id = null;
|
||||
$member->birthday = null;
|
||||
|
||||
$package = Package::where('id', 1)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $package->express_interest;
|
||||
$member->remaining_photo_gallery = $package->photo_gallery;
|
||||
|
||||
$member->remaining_contact_view = $package->contact;
|
||||
$member->remaining_profile_image_view = $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = Date('Y-m-d', strtotime($package->validity . " days"));
|
||||
$member->save();
|
||||
|
||||
if($newUser->approved == 0){
|
||||
flash("Please wait for the admin approval.")->error();
|
||||
return redirect()->route('user.login');
|
||||
} else {
|
||||
auth()->login($newUser, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (session('link') != null) {
|
||||
return redirect(session('link'));
|
||||
} else {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
public function handleAppleCallback(Request $request)
|
||||
{
|
||||
try {
|
||||
$user = Socialite::driver("sign-in-with-apple")->user();
|
||||
} catch (\Exception $e) {
|
||||
flash(translate("Something Went wrong. Please try again."))->error();
|
||||
return redirect()->route('user.login');
|
||||
}
|
||||
//check if provider_id exist
|
||||
$existingUserByProviderId = User::where('provider_id', $user->id)->first();
|
||||
|
||||
if ($existingUserByProviderId) {
|
||||
$existingUserByProviderId->access_token = $user->token;
|
||||
$existingUserByProviderId->refresh_token = $user->refreshToken;
|
||||
if (!isset($user->user['is_private_email'])) {
|
||||
$existingUserByProviderId->email = $user->email;
|
||||
}
|
||||
$existingUserByProviderId->save();
|
||||
//proceed to login
|
||||
auth()->login($existingUserByProviderId, true);
|
||||
} else {
|
||||
//check if email exist
|
||||
$existing_or_new_user = User::firstOrNew([
|
||||
'email' => $user->email
|
||||
]);
|
||||
$existing_or_new_user->provider_id = $user->id;
|
||||
$existing_or_new_user->access_token = $user->token;
|
||||
$existing_or_new_user->refresh_token = $user->refreshToken;
|
||||
$existing_or_new_user->provider = 'apple';
|
||||
if (!$existing_or_new_user->exists) {
|
||||
$existing_or_new_user->name = 'Apple User';
|
||||
if ($user->name) {
|
||||
$existing_or_new_user->name = $user->name;
|
||||
}
|
||||
$existing_or_new_user->email = $user->email;
|
||||
$existing_or_new_user->email_verified_at = date('Y-m-d H:m:s');
|
||||
}
|
||||
$existing_or_new_user->save();
|
||||
|
||||
auth()->login($existing_or_new_user, true);
|
||||
}
|
||||
|
||||
|
||||
if (session('link') != null) {
|
||||
return redirect(session('link'));
|
||||
} else {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
public function mobileHandleProviderCallback($request, $provider)
|
||||
{
|
||||
$return_provider = '';
|
||||
$result = false;
|
||||
if ($provider) {
|
||||
$return_provider = $provider;
|
||||
$result = true;
|
||||
}
|
||||
return response()->json([
|
||||
'result' => $result,
|
||||
'provider' => $return_provider
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the needed authorization credentials from the request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
protected function credentials(Request $request)
|
||||
{
|
||||
if (filter_var($request->get('email'), FILTER_VALIDATE_EMAIL)) {
|
||||
return $request->only($this->username(), 'password');
|
||||
} else {
|
||||
return ['phone' => $request->get('email'), 'password' => $request->get('password')];
|
||||
}
|
||||
}
|
||||
|
||||
public function authenticated()
|
||||
{
|
||||
if (auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff') {
|
||||
CoreComponentRepository::instantiateShopRepository();
|
||||
return redirect()->route('admin.dashboard');
|
||||
} else {
|
||||
if (session('link') != null) {
|
||||
return redirect(session('link'));
|
||||
} else {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest')->except(['logout', 'account_deletion']);
|
||||
}
|
||||
|
||||
public function showLoginForm()
|
||||
{
|
||||
return view('frontend.user_login');
|
||||
}
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
if (auth()->user() != null && (auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff')) {
|
||||
$redirect_route = 'admin';
|
||||
} else {
|
||||
$redirect_route = 'home';
|
||||
}
|
||||
|
||||
$this->guard()->logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
|
||||
return $this->loggedOut($request) ?: redirect()->route($redirect_route);
|
||||
}
|
||||
|
||||
public function account_deletion(Request $request)
|
||||
{
|
||||
$redirect_route = 'home';
|
||||
|
||||
$auth_user = auth()->user();
|
||||
if ($auth_user) {
|
||||
|
||||
// user images delete from database and file storage
|
||||
$uploads = $auth_user->uploads;
|
||||
if ($uploads) {
|
||||
foreach ($uploads as $upload) {
|
||||
if (file_exists(public_path() . '/' . $upload->file_name)) {
|
||||
unlink(public_path() . '/' . $upload->file_name);
|
||||
$upload->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$auth_user->member ? $auth_user->member->delete() : '';
|
||||
Address::where('user_id', $auth_user->id)->delete();
|
||||
Education::where('user_id', $auth_user->id)->delete();
|
||||
Career::where('user_id', $auth_user->id)->delete();
|
||||
PhysicalAttribute::where('user_id', $auth_user->id)->delete();
|
||||
Hobby::where('user_id', $auth_user->id)->delete();
|
||||
Attitude::where('user_id', $auth_user->id)->delete();
|
||||
Recidency::where('user_id', $auth_user->id)->delete();
|
||||
Lifestyle::where('user_id', $auth_user->id)->delete();
|
||||
Astrology::where('user_id', $auth_user->id)->delete();
|
||||
Family::where('user_id', $auth_user->id)->delete();
|
||||
PartnerExpectation::where('user_id', $auth_user->id)->delete();
|
||||
SpiritualBackground::where('user_id', $auth_user->id)->delete();
|
||||
PackagePayment::where('user_id', $auth_user->id)->delete();
|
||||
HappyStory::where('user_id', $auth_user->id)->delete();
|
||||
Staff::where('user_id', $auth_user->id)->delete();
|
||||
Shortlist::where('user_id', $auth_user->id)->delete();
|
||||
IgnoredUser::where('user_id', $auth_user->id)->delete();
|
||||
ReportedUser::where('user_id', $auth_user->id)->delete();
|
||||
GalleryImage::where('user_id', $auth_user->id)->delete();
|
||||
ExpressInterest::where('user_id', $auth_user->id)->delete();
|
||||
ProfileMatch::where('user_id', $auth_user->id)->delete();
|
||||
ChatThread::where('sender_user_id', auth()->user()->id)->orWhere('receiver_user_id', auth()->user()->id)->delete();
|
||||
User::destroy(auth()->user()->id);
|
||||
|
||||
auth()->guard()->logout();
|
||||
$request->session()->invalidate();
|
||||
|
||||
flash(translate("Your account deletion successfully done."))->success();
|
||||
return redirect()->route($redirect_route);
|
||||
}
|
||||
flash(translate("Something Went Wrong"))->error();
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
247
app/Http/Controllers/Auth/RegisterController.php
Normal file
247
app/Http/Controllers/Auth/RegisterController.php
Normal file
@ -0,0 +1,247 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use Notification;
|
||||
use App\Models\User;
|
||||
use App\Models\Member;
|
||||
use App\Models\Package;
|
||||
use App\Rules\RecaptchaRule;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Utility\EmailUtility;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use App\Http\Controllers\OTPVerificationController;
|
||||
|
||||
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()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
|
||||
public function showRegistrationForm()
|
||||
{
|
||||
return view('frontend.user_registration');
|
||||
}
|
||||
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'on_behalf' => 'required|integer',
|
||||
'first_name' => ['required', 'string', 'max:255'],
|
||||
'last_name' => ['required', 'string', 'max:255'],
|
||||
'gender' => 'required',
|
||||
'date_of_birth' => 'required|date',
|
||||
'phone' => 'required_without:email|nullable|string|unique:users',
|
||||
'email' => 'required_without:phone|nullable|email|unique:users',
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
'g-recaptcha-response' => [
|
||||
Rule::when(get_setting('google_recaptcha_activation') == 1, ['required', new RecaptchaRule()], ['sometimes'])
|
||||
],
|
||||
'checkbox_example_1' => ['required', 'string'],
|
||||
],
|
||||
[
|
||||
'on_behalf.required' => translate('on_behalf is required'),
|
||||
'on_behalf.integer' => translate('on_behalf should be integer value'),
|
||||
'first_name.required' => translate('first_name is required'),
|
||||
'last_name.required' => translate('last_name is required'),
|
||||
'gender.required' => translate('gender is required'),
|
||||
'date_of_birth.required' => translate('date_of_birth is required'),
|
||||
'date_of_birth.date' => translate('date_of_birth should be in date format'),
|
||||
'email.required' => translate('Email is required'),
|
||||
'email.email' => translate('Email must be a valid email address'),
|
||||
'email.unique' => translate('An user exists with this email'),
|
||||
'phone.unique' => translate('An user exists with this phone'),
|
||||
'phone.required' => translate('Phone is required'),
|
||||
'password.required' => translate('Password is required'),
|
||||
'password.confirmed' => translate('Password confirmation does not match'),
|
||||
'password.min' => translate('Minimum 8 digits required for password'),
|
||||
'checkbox_example_1.required' => translate('You must agree to our terms and conditions.'),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\Models\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
$approval = get_setting('member_approval_by_admin') == 1 ? 0 : 1;
|
||||
if (filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$user = User::create([
|
||||
'first_name' => $data['first_name'],
|
||||
'last_name' => $data['last_name'],
|
||||
'membership' => 1,
|
||||
'email' => $data['email'],
|
||||
'password' => Hash::make($data['password']),
|
||||
'code' => unique_code(),
|
||||
'approved' => $approval,
|
||||
]);
|
||||
} else {
|
||||
if (addon_activation('otp_system')) {
|
||||
$user = User::create([
|
||||
'first_name' => $data['first_name'],
|
||||
'last_name' => $data['last_name'],
|
||||
'membership' => 1,
|
||||
'phone' => '+' . $data['country_code'] . $data['phone'],
|
||||
'password' => Hash::make($data['password']),
|
||||
'code' => unique_code(),
|
||||
'approved' => $approval,
|
||||
'verification_code' => rand(100000, 999999)
|
||||
]);
|
||||
}
|
||||
}
|
||||
if (addon_activation('referral_system') && $data['referral_code'] != null) {
|
||||
$reffered_user = User::where('code', '!=', null)->where('code', $data['referral_code'])->first();
|
||||
if ($reffered_user != null) {
|
||||
$user->referred_by = $reffered_user->id;
|
||||
$user->save();
|
||||
}
|
||||
}
|
||||
|
||||
$member = new Member;
|
||||
$member->user_id = $user->id;
|
||||
$member->save();
|
||||
|
||||
$member->gender = $data['gender'];
|
||||
$member->on_behalves_id = $data['on_behalf'];
|
||||
$member->birthday = date('Y-m-d', strtotime($data['date_of_birth']));
|
||||
|
||||
$package = Package::where('id', 1)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $package->express_interest;
|
||||
$member->remaining_photo_gallery = $package->photo_gallery;
|
||||
$member->remaining_contact_view = $package->contact;
|
||||
$member->remaining_profile_image_view = $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = Date('Y-m-d', strtotime($package->validity . " days"));
|
||||
$member->save();
|
||||
|
||||
|
||||
// Account opening Email to member
|
||||
if ($data['email'] != null && env('MAIL_USERNAME') != null) {
|
||||
$account_oppening_email = EmailTemplate::where('identifier', 'account_oppening_email')->first();
|
||||
if ($account_oppening_email->status == 1) {
|
||||
EmailUtility::account_oppening_email($user->id, $data['password']);
|
||||
}
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
public function register(Request $request)
|
||||
{
|
||||
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
|
||||
if (User::where('email', $request->email)->first() != null) {
|
||||
flash(translate('Email or Phone already exists.'));
|
||||
return back();
|
||||
}
|
||||
} elseif (User::where('phone', '+' . $request->country_code . $request->phone)->first() != null) {
|
||||
flash(translate('Phone already exists.'));
|
||||
return back();
|
||||
}
|
||||
|
||||
$this->validator($request->all())->validate();
|
||||
|
||||
$user = $this->create($request->all());
|
||||
|
||||
if (get_setting('member_approval_by_admin') != 1) {
|
||||
$this->guard()->login($user);
|
||||
}
|
||||
|
||||
try {
|
||||
$notify_type = 'member_registration';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $user->id;
|
||||
$message = translate('A new member has been registered to your system. Name: ') . $user->first_name . ' ' . $user->last_name;
|
||||
$route = route('members.index', $user->membership);
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('user_type', 'admin')->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
if (env('MAIL_USERNAME') != null && (get_email_template('account_opening_email_to_admin', 'status') == 1)) {
|
||||
$admin = User::where('user_type', 'admin')->first();
|
||||
EmailUtility::account_opening_email_to_admin($user, $admin);
|
||||
}
|
||||
|
||||
if (get_setting('email_verification') == 0) {
|
||||
if ($user->email != null || $user->phone != null) {
|
||||
$user->email_verified_at = date('Y-m-d H:m:s');
|
||||
$user->save();
|
||||
flash(translate('Registration successfull.'))->success();
|
||||
}
|
||||
} else if ($user->email != null) {
|
||||
event(new Registered($user));
|
||||
flash(translate('Registration successfull. Please verify your email.'))->success();
|
||||
} else {
|
||||
flash(translate('Registration successfull. Please verify your phone number.'))->success();
|
||||
}
|
||||
|
||||
return $this->registered($request, $user)
|
||||
?: redirect($this->redirectPath());
|
||||
}
|
||||
|
||||
protected function registered(Request $request, $user)
|
||||
{
|
||||
//?? where should redirect user after registration
|
||||
if (get_setting('member_approval_by_admin') == 1) {
|
||||
return redirect()->route('login');
|
||||
} else {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
}
|
||||
30
app/Http/Controllers/Auth/ResetPasswordController.php
Normal file
30
app/Http/Controllers/Auth/ResetPasswordController.php
Normal 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;
|
||||
}
|
||||
85
app/Http/Controllers/Auth/VerificationController.php
Normal file
85
app/Http/Controllers/Auth/VerificationController.php
Normal file
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||
use App\Http\Controllers\OTPVerificationController;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\User;
|
||||
|
||||
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');
|
||||
}
|
||||
|
||||
public function show(Request $request)
|
||||
{
|
||||
if ($request->user()->email != null) {
|
||||
return $request->user()->hasVerifiedEmail()
|
||||
? redirect($this->redirectPath())
|
||||
: view('auth.verify');
|
||||
}
|
||||
else {
|
||||
$otpController = new OTPVerificationController;
|
||||
$otpController->send_code($request->user());
|
||||
return redirect()->route('verification');
|
||||
}
|
||||
}
|
||||
|
||||
public function resend(Request $request)
|
||||
{
|
||||
if ($request->user()->hasVerifiedEmail()) {
|
||||
return redirect($this->redirectPath());
|
||||
}
|
||||
|
||||
$request->user()->sendEmailVerificationNotification();
|
||||
|
||||
return back()->with('resent', true);
|
||||
}
|
||||
|
||||
public function verification_confirmation($code){
|
||||
$user = User::where('verification_code', $code)->first();
|
||||
if($user != null){
|
||||
$user->email_verified_at = Carbon::now();
|
||||
$user->save();
|
||||
auth()->login($user, true);
|
||||
flash(translate('Your email has been verified successfully'))->success();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry, we could not verifiy you. Please try again'))->error();
|
||||
}
|
||||
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
134
app/Http/Controllers/BlogCategoryController.php
Normal file
134
app/Http/Controllers/BlogCategoryController.php
Normal file
@ -0,0 +1,134 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\BlogCategory;
|
||||
|
||||
class BlogCategoryController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_blog_categories'])->only('index');
|
||||
$this->middleware(['permission:edit_blog_category'])->only('edit');
|
||||
$this->middleware(['permission:delete_blog_category'])->only('destroy');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search =null;
|
||||
$categories = BlogCategory::orderBy('category_name', 'asc');
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$categories = $categories->where('category_name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
|
||||
$categories = $categories->paginate(15);
|
||||
return view('admin.blog_system.category.index', compact('categories', 'sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
$request->validate([
|
||||
'category_name' => 'required|max:255',
|
||||
]);
|
||||
|
||||
$category = new BlogCategory;
|
||||
|
||||
$category->category_name = $request->category_name;
|
||||
$category->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->category_name));
|
||||
|
||||
$category->save();
|
||||
|
||||
|
||||
flash(translate('Blog category has been created successfully'))->success();
|
||||
return redirect()->route('blog-category.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$cateogry = BlogCategory::find($id);
|
||||
$all_categories = BlogCategory::all();
|
||||
|
||||
return view('admin.blog_system.category.edit', compact('cateogry','all_categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'category_name' => 'required|max:255',
|
||||
]);
|
||||
|
||||
$category = BlogCategory::find($id);
|
||||
|
||||
$category->category_name = $request->category_name;
|
||||
$category->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->category_name));
|
||||
|
||||
$category->save();
|
||||
|
||||
|
||||
flash(translate('Blog category has been updated successfully'))->success();
|
||||
return redirect()->route('blog-category.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
BlogCategory::find($id)->delete();
|
||||
|
||||
return redirect('admin/blog-category');
|
||||
}
|
||||
}
|
||||
174
app/Http/Controllers/BlogController.php
Normal file
174
app/Http/Controllers/BlogController.php
Normal file
@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\BlogCategory;
|
||||
use App\Models\Blog;
|
||||
|
||||
class BlogController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_blogs'])->only('index');
|
||||
$this->middleware(['permission:add_blog'])->only('create');
|
||||
$this->middleware(['permission:edit_blog'])->only('edit');
|
||||
$this->middleware(['permission:delete_blog'])->only('destroy');
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$blogs = Blog::orderBy('created_at', 'desc');
|
||||
|
||||
if ($request->search != null){
|
||||
$blogs = $blogs->where('title', 'like', '%'.$request->search.'%');
|
||||
$sort_search = $request->search;
|
||||
}
|
||||
|
||||
$blogs = $blogs->paginate(15);
|
||||
|
||||
return view('admin.blog_system.blog.index', compact('blogs','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$blog_categories = BlogCategory::all();
|
||||
return view('admin.blog_system.blog.create', compact('blog_categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
$request->validate([
|
||||
'category_id' => 'required',
|
||||
'title' => 'required|max:255',
|
||||
]);
|
||||
|
||||
$blog = new Blog;
|
||||
|
||||
$blog->category_id = $request->category_id;
|
||||
$blog->title = $request->title;
|
||||
$blog->banner = $request->banner;
|
||||
$blog->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug));
|
||||
$blog->short_description = $request->short_description;
|
||||
$blog->description = $request->description;
|
||||
|
||||
$blog->meta_title = $request->meta_title;
|
||||
$blog->meta_img = $request->meta_img;
|
||||
$blog->meta_description = $request->meta_description;
|
||||
$blog->meta_keywords = $request->meta_keywords;
|
||||
|
||||
$blog->save();
|
||||
|
||||
flash(translate('Blog post has been created successfully'))->success();
|
||||
return redirect()->route('blog.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$blog = Blog::find($id);
|
||||
$blog_categories = BlogCategory::all();
|
||||
|
||||
return view('admin.blog_system.blog.edit', compact('blog','blog_categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'category_id' => 'required',
|
||||
'title' => 'required|max:255',
|
||||
]);
|
||||
|
||||
$blog = Blog::find($id);
|
||||
|
||||
$blog->category_id = $request->category_id;
|
||||
$blog->title = $request->title;
|
||||
$blog->banner = $request->banner;
|
||||
$blog->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug));
|
||||
$blog->short_description = $request->short_description;
|
||||
$blog->description = $request->description;
|
||||
|
||||
$blog->meta_title = $request->meta_title;
|
||||
$blog->meta_img = $request->meta_img;
|
||||
$blog->meta_description = $request->meta_description;
|
||||
$blog->meta_keywords = $request->meta_keywords;
|
||||
|
||||
$blog->save();
|
||||
|
||||
flash(translate('Blog post has been updated successfully'))->success();
|
||||
return redirect()->route('blog.index');
|
||||
}
|
||||
|
||||
public function change_status(Request $request) {
|
||||
$blog = Blog::find($request->id);
|
||||
$blog->status = $request->status;
|
||||
|
||||
$blog->save();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
Blog::find($id)->delete();
|
||||
flash(translate('Blog deleted successfully'))->success();
|
||||
return redirect()->route('blog.index');
|
||||
}
|
||||
|
||||
|
||||
public function all_blog() {
|
||||
$blogs = Blog::where('status', 1)->orderBy('created_at', 'desc')->paginate(12);
|
||||
return view("frontend.blog.listing", compact('blogs'));
|
||||
}
|
||||
|
||||
public function blog_details($slug) {
|
||||
$blog = Blog::where('slug', $slug)->first();
|
||||
return view("frontend.blog.details", compact('blog'));
|
||||
}
|
||||
}
|
||||
161
app/Http/Controllers/CareerController.php
Normal file
161
app/Http/Controllers/CareerController.php
Normal file
@ -0,0 +1,161 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Career;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class CareerController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->rules = [
|
||||
'designation' => [ 'required','max:255'],
|
||||
'company' => [ 'required','max:255'],
|
||||
'career_start' => [ 'required','numeric'],
|
||||
'career_end' => [ 'numeric', 'nullable'],
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create(Request $request)
|
||||
{
|
||||
$member_id = $request->id;
|
||||
return view('frontend.member.profile.career.create', compact('member_id'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$career = new Career;
|
||||
$career->user_id = $request->user_id;
|
||||
$career->designation = $request->designation;
|
||||
$career->company = $request->company;
|
||||
$career->start = $request->career_start;
|
||||
$career->end = $request->career_end;
|
||||
|
||||
if($career->save()){
|
||||
flash(translate('Career Info has been added successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function edit(Request $request)
|
||||
{
|
||||
$career = Career::findOrFail($request->id);
|
||||
return view('frontend.member.profile.career.edit', compact('career'));
|
||||
}
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$career = Career::findOrFail($id);
|
||||
$career->designation = $request->designation;
|
||||
$career->company = $request->company;
|
||||
$career->start = $request->career_start;
|
||||
$career->end = $request->career_end;
|
||||
|
||||
if($career->save()){
|
||||
flash(translate('Career Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function update_career_present_status(Request $request)
|
||||
{
|
||||
$career = Career::findOrFail($request->id);
|
||||
$career->present = $request->status;
|
||||
if ($career->save()) {
|
||||
$msg = $career->present == 1 ? translate('Enabled') : translate('Disabled');
|
||||
flash(translate($msg))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(Career::destroy($id))
|
||||
{
|
||||
flash(translate('Career info has been deleted successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
176
app/Http/Controllers/CasteController.php
Normal file
176
app/Http/Controllers/CasteController.php
Normal file
@ -0,0 +1,176 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Religion;
|
||||
use App\Models\Caste;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class CasteController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_castes'])->only('index');
|
||||
$this->middleware(['permission:edit_caste'])->only('edit');
|
||||
$this->middleware(['permission:delete_caste'])->only('destroy');
|
||||
|
||||
$this->rules = [
|
||||
'name' => ['required','max:255'],
|
||||
'religion' => ['required'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
'religion.required' => translate('Religion is required'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$castes = Caste::latest();
|
||||
$religions = Religion::all();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$castes = $castes->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$castes = $castes->paginate(10);
|
||||
return view('admin.member_profile_attributes.castes.index', compact('castes','religions','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$caste = new Caste;
|
||||
$caste->name = $request->name;
|
||||
$caste->religion_id = $request->religion;
|
||||
if($caste->save())
|
||||
{
|
||||
flash('New caste has been added successfully')->success();
|
||||
return redirect()->route('castes.index');
|
||||
}
|
||||
else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$caste = Caste::findOrFail(decrypt($id));
|
||||
$religions = Religion::all();
|
||||
return view('admin.member_profile_attributes.castes.edit', compact('caste','religions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$caste = Caste::findOrFail($id);
|
||||
$caste->name = $request->name;
|
||||
$caste->religion_id = $request->religion;
|
||||
if($caste->save())
|
||||
{
|
||||
flash('Caste info has been updated successfully')->success();
|
||||
return redirect()->route('castes.index');
|
||||
}
|
||||
else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$caste = Caste::findOrFail($id);
|
||||
foreach ($caste->sub_castes as $key => $sub_caste) {
|
||||
$sub_caste->delete();
|
||||
}
|
||||
if (Caste::destroy($id)) {
|
||||
flash('Caste info has been deleted successfully')->success();
|
||||
return redirect()->route('castes.index');
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
// Get castes by religion
|
||||
public function get_caste_by_religion(Request $request)
|
||||
{
|
||||
$castes = Caste::where('religion_id', $request->religion_id)->get();
|
||||
return $castes;
|
||||
}
|
||||
}
|
||||
105
app/Http/Controllers/ChatController.php
Normal file
105
app/Http/Controllers/ChatController.php
Normal file
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\Chat;
|
||||
use Auth;
|
||||
|
||||
class ChatController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$chat_threads = ChatThread::where('sender_user_id', Auth::user()->id)->orWhere('receiver_user_id', Auth::user()->id)->get();
|
||||
return view('frontend.member.messages.index', compact('chat_threads'));
|
||||
}
|
||||
|
||||
public function chat_view($id)
|
||||
{
|
||||
$chat_thread = ChatThread::findOrFail($id);
|
||||
foreach ($chat_thread->chats as $key => $chat) {
|
||||
if($chat->sender_user_id != Auth::user()->id){
|
||||
$chat->seen = 1;
|
||||
$chat->save();
|
||||
}
|
||||
}
|
||||
$chats = $chat_thread->chats()->latest()->limit(20)->get();
|
||||
|
||||
return view('frontend.member.messages.messages', compact('chats', 'chat_thread'));
|
||||
}
|
||||
|
||||
public function get_old_messages(Request $request)
|
||||
{
|
||||
$chat = Chat::findOrFail($request->first_message_id);
|
||||
$chats = Chat::where('id', '<', $chat->id)->where('chat_thread_id', $chat->chat_thread_id)->latest()->limit(20)->get();
|
||||
if(count($chats) > 0){
|
||||
return array('messages' => view('frontend.member.messages.messages_part', compact('chats'))->render(),
|
||||
'first_message_id' => $chats->last()->id);
|
||||
}
|
||||
else {
|
||||
return array('messages' => "", 'first_message_id' => 0);
|
||||
}
|
||||
}
|
||||
|
||||
public function chat_refresh($id)
|
||||
{
|
||||
$chat_thread = ChatThread::findOrFail($id);
|
||||
$chats = $chat_thread->chats()->where('sender_user_id','!=', Auth::user()->id)->where('seen' , 0)->get();
|
||||
foreach ($chats as $key => $value) {
|
||||
$value->seen = 1;
|
||||
$value->save();
|
||||
}
|
||||
|
||||
return array('messages' => view('frontend.member.messages.messages_left_single', compact('chats'))->render(),
|
||||
'count' => count($chats));
|
||||
}
|
||||
|
||||
|
||||
public function chat_reply(Request $request)
|
||||
{
|
||||
$chat = new Chat;
|
||||
$chat->chat_thread_id = $request->chat_thread_id;
|
||||
$chat->sender_user_id = Auth::user()->id;
|
||||
$chat->message = $request->message;
|
||||
if($request->attachment != null){
|
||||
$chat->attachment = json_encode(explode(',', $request->attachment));
|
||||
}
|
||||
$chat->save();
|
||||
return view('frontend.member.messages.messages_right_single', compact('chat'));
|
||||
}
|
||||
|
||||
public function interview_status(Request $request)
|
||||
{
|
||||
$chat_thread = ChatThread::findOrFail($request->chat_thread_id);
|
||||
if ($chat_thread->interview == 1) {
|
||||
$chat_thread->interview = 0;
|
||||
}
|
||||
else {
|
||||
$chat_thread->interview = 1;
|
||||
}
|
||||
if ($chat_thread->save()) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public function block_status(Request $request)
|
||||
{
|
||||
$chat_thread = ChatThread::findOrFail($request->chat_thread_id);
|
||||
if ($chat_thread->active == 1) {
|
||||
$chat_thread->active = 0;
|
||||
}
|
||||
else {
|
||||
$chat_thread->active = 1;
|
||||
}
|
||||
if ($chat_thread->save()) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
172
app/Http/Controllers/CityController.php
Normal file
172
app/Http/Controllers/CityController.php
Normal file
@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Country;
|
||||
use App\Models\State;
|
||||
use App\Models\City;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class CityController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_member_languages'])->only('index');
|
||||
$this->middleware(['permission:edit_member_language'])->only('edit');
|
||||
$this->middleware(['permission:delete_member_language'])->only('destroy');
|
||||
|
||||
$this->city_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
'state_id' => ['required'],
|
||||
];
|
||||
|
||||
$this->city_messages = [
|
||||
'name.required' => translate('City Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
'state_id.required' => translate('State is required'),
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$cities = City::orderBy('id','asc');
|
||||
$state = State::get();
|
||||
$countries = Country::where('status',1)->get();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$cities = $cities->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$cities = $cities->paginate(10);
|
||||
return view('admin.member_profile_attributes.cities.index', compact('cities','state','countries','sort_search'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->city_rules;
|
||||
$messages = $this->city_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$city = new City;
|
||||
$city->name = $request->name;
|
||||
$city->state_id = $request->state_id;
|
||||
if($city->save())
|
||||
{
|
||||
flash(translate('New City has been added successfully'))->success();
|
||||
return redirect()->route('cities.index');
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$city = city::findOrFail(decrypt($id));
|
||||
$countries = Country::where('status',1)->get();
|
||||
return view('admin.member_profile_attributes.cities.edit', compact('city','countries'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->city_rules;
|
||||
$messages = $this->city_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$city = City::findOrFail($id);
|
||||
$city->name = $request->name;
|
||||
$city->state_id = $request->state_id;
|
||||
if($city->save())
|
||||
{
|
||||
flash(translate('City info has been updated successfully'))->success();
|
||||
return redirect()->route('cities.index');
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (City::destroy($id)) {
|
||||
flash(translate('City info has been deleted successfully'))->success();
|
||||
return redirect()->route('cities.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
// Get Cities by State
|
||||
public function get_cities_by_state(Request $request)
|
||||
{
|
||||
$cities = City::where('state_id', $request->state_id)->get();
|
||||
return $cities;
|
||||
}
|
||||
}
|
||||
124
app/Http/Controllers/ContactUsController.php
Normal file
124
app/Http/Controllers/ContactUsController.php
Normal file
@ -0,0 +1,124 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\ContactUsRequest;
|
||||
use App\Models\ContactUs;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use App\Notifications\EmailNotification;
|
||||
use App\Models\User;
|
||||
|
||||
class ContactUsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Spatie Permission
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_contact_us_queries'])->only('index');
|
||||
$this->middleware(['permission:view_contact_us_query'])->only('show');
|
||||
$this->middleware(['permission:update_contact_us_query'])->only('update');
|
||||
$this->middleware(['permission:delete_contact_us_query'])->only('destroy');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$contact_us_queries = ContactUs::latest()->paginate(10);
|
||||
return view('admin.contact_us.index', compact('contact_us_queries'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(ContactUsRequest $request)
|
||||
{
|
||||
ContactUs::create($request->validated());
|
||||
$user = User::where('user_type', 'admin')->first();
|
||||
Notification::send($user, new EmailNotification($request->subject, $request->description));
|
||||
flash(translate('Your query has been sent successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\Models\ContactUs $contactUs
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(ContactUs $contactUs, $id)
|
||||
{
|
||||
$contactUs = ContactUs::findOrFail($id);
|
||||
return view('admin.contact_us.view', compact('contactUs'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\Models\ContactUs $contactUs
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function edit(ContactUs $contactUs)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\Models\ContactUs $contactUs
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function update(ContactUsRequest $request, $id)
|
||||
{
|
||||
$contactUs = ContactUs::find($id);
|
||||
$contactUs->update($request->validated());
|
||||
|
||||
Notification::route('mail', $contactUs->email)->notify(new EmailNotification($contactUs->subject, $contactUs->reply));
|
||||
flash(translate('Reply has been sent successfully!'))->success();
|
||||
return redirect()->route('contact-us.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Models\ContactUs $contactUs
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(ContactUs $contactUs, $id)
|
||||
{
|
||||
$contactUs = ContactUs::findOrFail($id);
|
||||
$contactUs->delete();
|
||||
flash(translate('Data deleted successfully!'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Contact us page
|
||||
*/
|
||||
|
||||
public function show_contact_us_page()
|
||||
{
|
||||
return view('frontend.contact_us');
|
||||
}
|
||||
}
|
||||
13
app/Http/Controllers/Controller.php
Normal file
13
app/Http/Controllers/Controller.php
Normal 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;
|
||||
}
|
||||
166
app/Http/Controllers/CountryController.php
Normal file
166
app/Http/Controllers/CountryController.php
Normal file
@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Country;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class CountryController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_countries'])->only('index');
|
||||
$this->middleware(['permission:edit_country'])->only('updateStatus');
|
||||
|
||||
$this->country_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->country_messages = [
|
||||
'name.required' => translate('Country Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$countries = Country::orderBy('id','asc');
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$countries = $countries->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$countries = $countries->paginate(10);
|
||||
return view('admin.member_profile_attributes.countries.index', compact('countries','sort_search'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
// public function store(Request $request)
|
||||
// {
|
||||
// $rules = $this->country_rules;
|
||||
// $messages = $this->country_messages;
|
||||
// $validator = Validator::make($request->all(), $rules, $messages);
|
||||
//
|
||||
// if ($validator->fails()) {
|
||||
// flash(translate('Sorry! Something went wrong'))->error();
|
||||
// return Redirect::back()->withErrors($validator);
|
||||
// }
|
||||
//
|
||||
// $country = new Country;
|
||||
// $country->name = $request->name;
|
||||
// if($country->save()){
|
||||
// flash(translate('New country has been added successfully'))->success();
|
||||
// return redirect()->route('countries.index');
|
||||
// } else {
|
||||
// flash(translate('Sorry! Something went wrong.'))->error();
|
||||
// return back();
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$country = Country::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.countries.edit',compact('country'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
// public function update(Request $request, $id)
|
||||
// {
|
||||
// $rules = $this->country_rules;
|
||||
// $messages = $this->country_messages;
|
||||
// $validator = Validator::make($request->all(), $rules, $messages);
|
||||
//
|
||||
// if ($validator->fails()) {
|
||||
// flash(translate('Sorry! Something went wrong'))->error();
|
||||
// return Redirect::back()->withErrors($validator);
|
||||
// }
|
||||
//
|
||||
// $country = Country::findOrFail($id);
|
||||
// $country->name = $request->name;
|
||||
// if($country->save()){
|
||||
// flash(translate('Country info updated successfully.'))->success();
|
||||
// return redirect()->route('countries.index');
|
||||
// } else {
|
||||
// flash(translate('Sorry! Something went wrong.'))->error();
|
||||
// return back();
|
||||
// }
|
||||
// }
|
||||
|
||||
public function updateStatus(Request $request){
|
||||
$country = Country::findOrFail($request->id);
|
||||
$country->status = $request->status;
|
||||
if($country->save()){
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$country = Country::findOrFail($id);
|
||||
foreach ($country->states as $key => $state) {
|
||||
foreach ($state->cities as $key => $city) {
|
||||
$city->delete();
|
||||
}
|
||||
$state->delete();
|
||||
}
|
||||
if (Country::destroy($id)) {
|
||||
flash(translate('Country deleted successfully'))->success();
|
||||
return redirect()->route('countries.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
175
app/Http/Controllers/CurrencyController.php
Normal file
175
app/Http/Controllers/CurrencyController.php
Normal file
@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Currency;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class CurrencyController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_currencies'])->only('index');
|
||||
$this->middleware(['permission:add_currencies'])->only('create');
|
||||
$this->middleware(['permission:edit_currencies'])->only('edit');
|
||||
$this->middleware(['permission:delete_currencies'])->only('destroy');
|
||||
|
||||
$this->currency_rules = [
|
||||
'name' => ['required','max:255',],
|
||||
'symbol' => ['required','max:20',],
|
||||
'code' => ['required','max:20',],
|
||||
// 'exchange_rate' => ['required',],
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search =null;
|
||||
$currencies = Currency::latest();
|
||||
$active_currencies = Currency::where('status', 1)->get();
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$brands = $currencies->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$currencies = $currencies->paginate(10);
|
||||
return view('admin.settings.currencies.index', compact('currencies','active_currencies','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.settings.currencies.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->currency_rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$currency = new Currency;
|
||||
$currency->name = $request->name;
|
||||
$currency->symbol = $request->symbol;
|
||||
$currency->code = $request->code;
|
||||
// $currency->exchange_rate = filter_min_value($request->exchange_rate);
|
||||
|
||||
if($currency->save())
|
||||
{
|
||||
flash(translate('New Currency has been added successfully'))->success();
|
||||
return redirect()->route('currencies.index');
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$currency = Currency::findOrFail($id);
|
||||
return view('admin.settings.currencies.edit', compact('currency'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->currency_rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$currency = Currency::findOrFail($id);
|
||||
$currency->name = $request->name;
|
||||
$currency->symbol = $request->symbol;
|
||||
$currency->code = $request->code;
|
||||
// $currency->exchange_rate = filter_min_value($request->exchange_rate);
|
||||
|
||||
if($currency->save())
|
||||
{
|
||||
flash(translate('Currency info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
// Update Package Activate status
|
||||
public function update_currency_activation_status(Request $request)
|
||||
{
|
||||
$currency = Currency::findOrFail($request->id);
|
||||
$currency->status = $request->status;
|
||||
if ($currency->save()) {
|
||||
$msg = $currency->status == 1 ? translate('Enabled') : translate('Disabled');
|
||||
flash(translate($msg))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(Currency::destroy($id))
|
||||
{
|
||||
flash(translate('Currency info has been deleted successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
app/Http/Controllers/DemoController.php
Normal file
66
app/Http/Controllers/DemoController.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use DB;
|
||||
use Schema;
|
||||
use ZipArchive;
|
||||
use File;
|
||||
|
||||
class DemoController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
ini_set('memory_limit', '2048M');
|
||||
ini_set('max_execution_time', 600);
|
||||
|
||||
}
|
||||
|
||||
public function cron_1()
|
||||
{
|
||||
if (env('DEMO_MODE') != 'On') {
|
||||
return back();
|
||||
}
|
||||
$this->drop_all_tables();
|
||||
$this->import_demo_sql();
|
||||
}
|
||||
|
||||
public function cron_2()
|
||||
{
|
||||
if (env('DEMO_MODE') != 'On') {
|
||||
return back();
|
||||
}
|
||||
$this->remove_folder();
|
||||
$this->extract_uploads();
|
||||
}
|
||||
|
||||
|
||||
public function drop_all_tables()
|
||||
{
|
||||
Schema::disableForeignKeyConstraints();
|
||||
foreach (DB::select('SHOW TABLES') as $table) {
|
||||
$table_array = get_object_vars($table);
|
||||
Schema::drop($table_array[key($table_array)]);
|
||||
}
|
||||
}
|
||||
|
||||
public function import_demo_sql()
|
||||
{
|
||||
$sql_path = base_path('demo.sql');
|
||||
DB::unprepared(file_get_contents($sql_path));
|
||||
}
|
||||
|
||||
public function extract_uploads()
|
||||
{
|
||||
$zip = new ZipArchive;
|
||||
$zip->open(base_path('public/uploads.zip'));
|
||||
$zip->extractTo('public/uploads');
|
||||
|
||||
}
|
||||
|
||||
public function remove_folder()
|
||||
{
|
||||
File::deleteDirectory(base_path('public/uploads'));
|
||||
}
|
||||
}
|
||||
163
app/Http/Controllers/EducationController.php
Normal file
163
app/Http/Controllers/EducationController.php
Normal file
@ -0,0 +1,163 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Education;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class EducationController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->rules = [
|
||||
'degree' => [ 'required','max:255'],
|
||||
'institution' => [ 'required','max:255'],
|
||||
'education_start' => [ 'required','numeric'],
|
||||
'education_end' => [ 'numeric', 'nullable'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function create(Request $request)
|
||||
{
|
||||
$member_id = $request->id;
|
||||
return view('frontend.member.profile.education.create', compact('member_id'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$education = new Education;
|
||||
$education->user_id = $request->user_id;
|
||||
$education->degree = $request->degree;
|
||||
$education->institution = $request->institution;
|
||||
$education->start = $request->education_start;
|
||||
$education->end = $request->education_end;
|
||||
|
||||
if($education->save()){
|
||||
flash(translate('Education Info has been added successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
public function edit(Request $request)
|
||||
{
|
||||
$education = Education::findOrFail($request->id);
|
||||
return view('frontend.member.profile.education.edit', compact('education'));
|
||||
}
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
$education = Education::findOrFail($id);
|
||||
$education->degree = $request->degree;
|
||||
$education->institution = $request->institution;
|
||||
$education->start = $request->education_start;
|
||||
$education->end = $request->education_end;
|
||||
|
||||
if($education->save()){
|
||||
flash(translate('Education Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function update_education_present_status(Request $request)
|
||||
{
|
||||
$education = Education::findOrFail($request->id);
|
||||
$education->present = $request->status;
|
||||
if ($education->save()) {
|
||||
$msg = $education->present == 1 ? translate('Enabled') : translate('Disabled');
|
||||
flash(translate($msg))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(Education::destroy($id))
|
||||
{
|
||||
flash(translate('Education info has been deleted successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
132
app/Http/Controllers/EmailTemplateController.php
Normal file
132
app/Http/Controllers/EmailTemplateController.php
Normal file
@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\EmailTemplate;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class EmailTemplateController extends Controller
|
||||
{
|
||||
private $rules = array();
|
||||
private $messages = array();
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:email_templates'])->only('index');
|
||||
|
||||
$this->rules = [
|
||||
'subject' => ['required','max:255'],
|
||||
'body' => ['required'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'subject.required' => translate('Email subject is required'),
|
||||
'subject.max' => translate('Max 255 characters'),
|
||||
'body.required' => translate('Email Body is required'),
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$email_templates = EmailTemplate::all();
|
||||
return view('admin.settings.email_templates.index', compact('email_templates'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$email_template = EmailTemplate::where('identifier', $request->identifier)->first();
|
||||
$email_template->subject = $request->subject;
|
||||
$email_template->body = $request->body;
|
||||
if ($request->status == 1) {
|
||||
$email_template->status = 1;
|
||||
}
|
||||
else{
|
||||
$email_template->status = 0;
|
||||
}
|
||||
|
||||
if($email_template->save()){
|
||||
flash(translate('Email Template has been updated successfully'))->success();
|
||||
return back();
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
268
app/Http/Controllers/ExpressInterestController.php
Normal file
268
app/Http/Controllers/ExpressInterestController.php
Normal file
@ -0,0 +1,268 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Notification;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Utility\SmsUtility;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Models\Member;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\User;
|
||||
use Auth;
|
||||
use DB;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
|
||||
class ExpressInterestController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$interests = DB::table('express_interests')
|
||||
->orderBy('id', 'desc')
|
||||
->where('interested_by', Auth::user()->id)
|
||||
->join('users', 'express_interests.user_id', '=', 'users.id')
|
||||
->select('express_interests.id')
|
||||
->distinct()
|
||||
->paginate(10);
|
||||
|
||||
return view('frontend.member.my_interests', compact('interests'));
|
||||
}
|
||||
|
||||
public function interest_requests()
|
||||
{
|
||||
$interests = ExpressInterest::where('user_id', Auth::user()->id)->latest()->paginate(10);
|
||||
return view('frontend.member.interest_requests', compact('interests'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$interested_by_user = Auth::user();
|
||||
$interested_by_member = $interested_by_user->member;
|
||||
if ($interested_by_member->remaining_interest > 0) {
|
||||
// Store express interest data
|
||||
$express_interest = new ExpressInterest;
|
||||
// Check interest does not shown on self
|
||||
if ($request->id != $interested_by_user->id) {
|
||||
$express_interest->user_id = $request->id;
|
||||
$express_interest->interested_by = $interested_by_user->id;
|
||||
if ($express_interest->save()) {
|
||||
// Deduct interested by user's remaining express interest value
|
||||
$interested_by_member->remaining_interest -= 1;
|
||||
$interested_by_member->save();
|
||||
|
||||
$notify_user = User::where('id', $request->id)->first();
|
||||
|
||||
// Express Interest Store Notification for member
|
||||
try {
|
||||
$notify_type = 'express_interest';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $interested_by_user->id;
|
||||
$info_id = $express_interest->id;
|
||||
$message = $interested_by_user->first_name . ' ' . $interested_by_user->last_name . ' ' . translate(' has Expressed Interest On You.');
|
||||
$route = route('interest_requests');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $request->id)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Express Interest email send to member
|
||||
if ($notify_user->email != null && get_email_template('email_on_express_interest', 'status')) {
|
||||
EmailUtility::email_on_request($notify_user, 'email_on_express_interest');
|
||||
}
|
||||
|
||||
// Express Interest Send SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('express_interest', 'status') == 1)) {
|
||||
SmsUtility::sms_on_request($notify_user, 'express_interest');
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function accept_interest(Request $request)
|
||||
{
|
||||
$interest = ExpressInterest::findOrFail($request->interest_id);
|
||||
$interest->status = 1;
|
||||
if ($interest->save()) {
|
||||
// $existing_chat_thread = ChatThread::where('sender_user_id', $interest->interested_by)->where('receiver_user_id', $interest->user_id)->first();
|
||||
|
||||
$existing_chat_thread = ChatThread::where(function ($query) use ($interest) {
|
||||
$query->where('sender_user_id', $interest->interested_by)->where('receiver_user_id', $interest->user_id);
|
||||
})->orWhere(function ($query) use ($interest) {
|
||||
$query->where('receiver_user_id', $interest->interested_by)->where('sender_user_id', $interest->user_id);
|
||||
})->first();
|
||||
|
||||
if ($existing_chat_thread == null) {
|
||||
$chat_thread = new ChatThread;
|
||||
$chat_thread->thread_code = $interest->interested_by . date('Ymd') . $interest->user_id;
|
||||
$chat_thread->sender_user_id = $interest->interested_by;
|
||||
$chat_thread->receiver_user_id = $interest->user_id;
|
||||
$chat_thread->save();
|
||||
}
|
||||
|
||||
$notify_user = User::where('id', $interest->interested_by)->first();
|
||||
|
||||
// Express Interest Store Notification for member
|
||||
try {
|
||||
$notify_type = 'accept_interest';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = Auth::user()->id;
|
||||
$info_id = $interest->id;
|
||||
$message = Auth::user()->first_name . ' ' . Auth::user()->last_name . ' ' . translate(' has accepted your interest.');
|
||||
$route = route('my_interests.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $interest->interested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Express Interest email send to member
|
||||
if ($notify_user->email != null && get_email_template('email_on_accepting_interest', 'status')) {
|
||||
EmailUtility::email_on_accept_request($notify_user, 'email_on_accepting_interest');
|
||||
}
|
||||
|
||||
// Express Interest Send SMS to member
|
||||
if ($notify_user->phone != null && addon_activation('otp_system') && (get_sms_template('accept_interest', 'status') == 1)) {
|
||||
SmsUtility::sms_on_accept_request($notify_user, 'accept_interest');
|
||||
}
|
||||
flash(translate('Interest has been accepted successfully.'))->success();
|
||||
return redirect()->route('interest_requests');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function reject_interest(Request $request)
|
||||
{
|
||||
$interest = ExpressInterest::findOrFail($request->interest_id);
|
||||
|
||||
if (ExpressInterest::destroy($request->interest_id)) {
|
||||
|
||||
$notify_user = User::where('id', $interest->interested_by)->first();
|
||||
try {
|
||||
$notify_type = 'reject_interest';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = Auth::user()->id;
|
||||
$info_id = $interest->id;
|
||||
$message = Auth::user()->first_name . ' ' . Auth::user()->last_name . ' ' . translate(' has rejected your interest.');
|
||||
$route = route('my_interests.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $interest->interested_by)->whereNotNull('fcm_token')->pluck('fcm_token')->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($notify_user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
flash(translate('Interest has been rejected successfully.'))->success();
|
||||
return redirect()->route('interest_requests');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
125
app/Http/Controllers/FamilyController.php
Normal file
125
app/Http/Controllers/FamilyController.php
Normal file
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Family;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class FamilyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'father' => [ 'max:255'],
|
||||
'mother' => [ 'max:255'],
|
||||
'sibling' => [ 'max:255'],
|
||||
];
|
||||
$this->messages = [
|
||||
'father.max' => translate('Max 255 characters'),
|
||||
'mother.max' => translate('Max 255 characters'),
|
||||
'sibling.max' => translate('Max 255 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$family = Family::where('user_id', $id)->first();
|
||||
if(empty($family)){
|
||||
$family = new Family;
|
||||
$family->user_id = $id;
|
||||
}
|
||||
|
||||
$family->father = $request->father;
|
||||
$family->mother = $request->mother;
|
||||
$family->sibling = $request->sibling;
|
||||
|
||||
if($family->save()){
|
||||
flash(translate('Family info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
152
app/Http/Controllers/FamilyStatusController.php
Normal file
152
app/Http/Controllers/FamilyStatusController.php
Normal file
@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\FamilyStatus;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class FamilyStatusController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_family_values'])->only('index');
|
||||
$this->middleware(['permission:edit_family_value'])->only('edit');
|
||||
$this->middleware(['permission:delete_family_value'])->only('destroy');
|
||||
|
||||
$this->family_status_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->family_status_messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$family_statuses = FamilyStatus::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$family_statuses = $family_statuses->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$family_statuses = $family_statuses->paginate(10);
|
||||
return view('admin.member_profile_attributes.family_status.index', compact('family_statuses','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->family_status_rules;
|
||||
$messages = $this->family_status_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$family_status = new FamilyStatus;
|
||||
$family_status->name = $request->name;
|
||||
if($family_status->save()){
|
||||
flash(translate('New family status has been added successfully'))->success();
|
||||
return redirect()->route('family-status.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$family_status = FamilyStatus::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.family_status.edit', compact('family_status'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->family_status_rules;
|
||||
$messages = $this->family_status_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$family_status = FamilyStatus::findOrFail($id);
|
||||
$family_status->name = $request->name;
|
||||
if($family_status->save()){
|
||||
flash(translate('Family status info has been updaed successfully'))->success();
|
||||
return redirect()->route('family-status.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (FamilyStatus::destroy($id)) {
|
||||
flash(translate('Family status info has been deleted successfully'))->success();
|
||||
return redirect()->route('family-status.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
152
app/Http/Controllers/FamilyValueController.php
Normal file
152
app/Http/Controllers/FamilyValueController.php
Normal file
@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\FamilyValue;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class FamilyValueController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_family_values'])->only('index');
|
||||
$this->middleware(['permission:edit_family_value'])->only('edit');
|
||||
$this->middleware(['permission:delete_family_value'])->only('destroy');
|
||||
|
||||
$this->family_value_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->family_value_messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$family_values = FamilyValue::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$family_values = $family_values->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$family_values = $family_values->paginate(10);
|
||||
return view('admin.member_profile_attributes.family_values.index', compact('family_values','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->family_value_rules;
|
||||
$messages = $this->family_value_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$family_value = new FamilyValue;
|
||||
$family_value->name = $request->name;
|
||||
if($family_value->save()){
|
||||
flash(translate('New family value has been added successfully'))->success();
|
||||
return redirect()->route('family-values.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$family_value = FamilyValue::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.family_values.edit', compact('family_value'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->family_value_rules;
|
||||
$messages = $this->family_value_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$family_value = FamilyValue::findOrFail($id);
|
||||
$family_value->name = $request->name;
|
||||
if($family_value->save()){
|
||||
flash(translate('Family value has been updated successfully'))->success();
|
||||
return redirect()->route('family-values.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (FamilyValue::destroy($id)) {
|
||||
flash(translate('Family Value info has been deleted successfully'))->success();
|
||||
return redirect()->route('family-values.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
132
app/Http/Controllers/GalleryImageController.php
Normal file
132
app/Http/Controllers/GalleryImageController.php
Normal file
@ -0,0 +1,132 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\GalleryImage;
|
||||
use App\Models\Member;
|
||||
use Auth;
|
||||
|
||||
class GalleryImageController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$gallery_images = GalleryImage::where('user_id',Auth::user()->id)->latest()->paginate(10);
|
||||
return view('frontend.member.gallery_image.index', compact('gallery_images'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
if(package_validity(Auth::user()->id)){
|
||||
if( get_remaining_package_value(Auth::user()->id,'remaining_photo_gallery') > 0){
|
||||
return view('frontend.member.gallery_image.create');
|
||||
}
|
||||
else{
|
||||
flash(translate('You have 0 Remaining Gallery Photo upload. Please update your package.'))->error();
|
||||
return redirect()->route('packages');
|
||||
}
|
||||
}
|
||||
else{
|
||||
flash(translate('Your package has been expired. Please update your package.'))->error();
|
||||
return redirect()->route('packages');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
if(package_validity(Auth::user()->id)){
|
||||
if( get_remaining_package_value(Auth::user()->id,'remaining_photo_gallery') > 0){
|
||||
$gallery_image = new GalleryImage;
|
||||
$gallery_image->user_id = Auth::user()->id;
|
||||
$gallery_image->image = $request->gallery_image;
|
||||
if($gallery_image->save()){
|
||||
$member = Member::where('user_id', Auth::user()->id)->first();
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery - 1;
|
||||
$member->save();
|
||||
flash(translate('Gallery image uploaded successfully.'))->success();
|
||||
return redirect()->route('gallery-image.index');
|
||||
}
|
||||
else{
|
||||
flash(translate('Something went Wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
else{
|
||||
flash(translate('You have 0 Remaining Gallery Photo upload. Please update your package.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
else{
|
||||
flash(translate('Your package has been expired. Please update your package.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(GalleryImage::destroy($id)){
|
||||
flash(translate('Image deleted successfully'))->success();
|
||||
return redirect()->route('gallery-image.index');
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
150
app/Http/Controllers/GothramController.php
Normal file
150
app/Http/Controllers/GothramController.php
Normal file
@ -0,0 +1,150 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Gothram;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class GothramController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
// $this->middleware(['permission:show_gothrams'])->only('index');
|
||||
// $this->middleware(['permission:edit_gothram'])->only('edit');
|
||||
// $this->middleware(['permission:delete_gothram'])->only('destroy');
|
||||
|
||||
$this->rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$gothrams = Gothram::latest();
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$gothrams = $gothrams->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$gothrams = $gothrams->paginate(10);
|
||||
return view('admin.member_profile_attributes.gothrams.index', compact('gothrams','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$gothram = new Gothram;
|
||||
$gothram->name = $request->name;
|
||||
if($gothram->save()){
|
||||
flash(translate('New gothram has been added successfully'))->success();
|
||||
return redirect()->route('gothrams.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$gothram = Gothram::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.gothrams.edit',compact('gothram'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$gothram = Gothram::findOrFail($id);
|
||||
$gothram->name = $request->name;
|
||||
if($gothram->save()){
|
||||
flash(translate('Gothram info has been updated successfully'))->success();
|
||||
return redirect()->route('gothrams.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (Gothram::destroy($id)) {
|
||||
flash(translate('Gothram info has been deleted successfully'))->success();
|
||||
return redirect()->route('gothrams.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
173
app/Http/Controllers/HappyStoryController.php
Normal file
173
app/Http/Controllers/HappyStoryController.php
Normal file
@ -0,0 +1,173 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\HappyStory;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
use Auth;
|
||||
|
||||
class HappyStoryController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_happy_stories'])->only('index');
|
||||
$this->middleware(['permission:edit_happy_story'])->only('edit');
|
||||
$this->middleware(['permission:view_details_happy_story'])->only('show');
|
||||
|
||||
$this->rules = [
|
||||
'title' => ['required','max:255'],
|
||||
'details' => ['required'],
|
||||
'partner_name' => ['required','max:255'],
|
||||
'photos' => ['required'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'title.required' => translate('Story Title is required'),
|
||||
'title.max' => translate('Max 255 characters'),
|
||||
'details.required' => translate('Story Details is required'),
|
||||
'partner_name.required' => translate('Partner Name is required'),
|
||||
'partner_name.max' => translate('Max 100 characters'),
|
||||
|
||||
];
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$happy_stories = HappyStory::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
// $happy_stories = $happy_stories->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$happy_stories = $happy_stories->paginate(18);
|
||||
return view('admin.happy_stories.index', compact('happy_stories','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('frontend.member.happy_story.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$story = new HappyStory;
|
||||
$story->user_id = Auth::user()->id;
|
||||
$story->title = $request->title;
|
||||
$story->details = $request->details;
|
||||
$story->partner_name = $request->partner_name;
|
||||
$story->photos = $request->photos;
|
||||
$story->video_provider = $request->video_provider;
|
||||
$story->video_link = $request->video_link;
|
||||
if($story->save()){
|
||||
flash(translate('Story uploaded successfully'))->success();
|
||||
return redirect()->route('happy-story.create');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$happy_story = HappyStory::findOrFail(decrypt($id));
|
||||
return view('admin.happy_stories.view', compact('happy_story'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$happy_story = HappyStory::findOrFail(decrypt($id));
|
||||
return view('admin.happy_stories.edit', compact('happy_story'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$story = HappyStory::findOrFail($id);
|
||||
$story->title = $request->title;
|
||||
$story->details = $request->details;
|
||||
$story->partner_name = $request->partner_name;
|
||||
$story->photos = $request->photos;
|
||||
$story->video_provider = $request->video_provider;
|
||||
$story->video_link = $request->video_link;
|
||||
if($story->save()){
|
||||
flash(translate('Story updated successfully'))->success();
|
||||
return back();
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function approval_status(Request $request){
|
||||
$happy_story = HappyStory::findOrFail($request->id);
|
||||
$happy_story->approved = $request->status;
|
||||
if($happy_story->save()){
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
110
app/Http/Controllers/HobbyController.php
Normal file
110
app/Http/Controllers/HobbyController.php
Normal file
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Hobby;
|
||||
|
||||
class HobbyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$hobbies = Hobby::where('user_id', $id)->first();
|
||||
if(empty($hobbies)){
|
||||
$hobbies = new Hobby;
|
||||
$hobbies->user_id = $id;
|
||||
}
|
||||
|
||||
$hobbies->hobbies = $request->hobbies;
|
||||
$hobbies->interests = $request->interests;
|
||||
$hobbies->music = $request->music;
|
||||
$hobbies->books = $request->books;
|
||||
$hobbies->movies = $request->movies;
|
||||
$hobbies->tv_shows = $request->tv_shows;
|
||||
$hobbies->sports = $request->sports;
|
||||
$hobbies->fitness_activities = $request->fitness_activities;
|
||||
$hobbies->cuisines = $request->cuisines;
|
||||
$hobbies->dress_styles = $request->dress_styles;
|
||||
|
||||
if($hobbies->save()){
|
||||
flash(translate('Hobby and Interests info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
512
app/Http/Controllers/HomeController.php
Normal file
512
app/Http/Controllers/HomeController.php
Normal file
@ -0,0 +1,512 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Mail\SecondEmailVerifyMailManager;
|
||||
use Mail;
|
||||
use Auth;
|
||||
use App\Models\User;
|
||||
use App\Models\Member;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Models\Career;
|
||||
use App\Models\Address;
|
||||
use App\Models\HappyStory;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\ProfileMatch;
|
||||
use Hash;
|
||||
use Artisan;
|
||||
|
||||
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()
|
||||
{
|
||||
|
||||
$members = User::where('user_type', 'member')
|
||||
->where('approved', 1)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
if (Auth::user() && Auth::user()->user_type == 'member') {
|
||||
$members = $members->where('id', '!=', Auth::user()->id)
|
||||
->whereIn("id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('members')
|
||||
->where('gender', '!=', Auth::user()->member->gender);
|
||||
});
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', Auth::user()->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', Auth::user()->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$members = $members->whereNotIn('id', $ignored_by_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$premium_members = $members;
|
||||
$new_members = $members;
|
||||
|
||||
$new_members = $new_members->orderBy('id', 'desc')->limit(get_setting('max_new_member_show_homepage'))->get()->shuffle();
|
||||
$premium_members = $premium_members->where('membership', 2)->inRandomOrder()->limit(get_setting('max_premium_member_homepage'))->get();
|
||||
|
||||
|
||||
return view('frontend.index', compact('premium_members', 'new_members'));
|
||||
}
|
||||
|
||||
|
||||
public function admin_login()
|
||||
{
|
||||
if (auth()->user() != null && (auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff')) {
|
||||
return redirect()->route('admin.dashboard');
|
||||
} else {
|
||||
return view("auth.login");
|
||||
}
|
||||
}
|
||||
|
||||
public function login()
|
||||
{
|
||||
if (Auth::check()) {
|
||||
return redirect()->route('home');
|
||||
}
|
||||
return view('frontend.user_login');
|
||||
}
|
||||
|
||||
|
||||
public function admin_dashboard()
|
||||
{
|
||||
return view('admin.dashboard');
|
||||
}
|
||||
|
||||
// Manage Admin Profile
|
||||
public function admin_profile_update(Request $request, $id)
|
||||
{
|
||||
$admin = User::findOrFail($id);
|
||||
$admin->first_name = $request->first_name;
|
||||
$admin->last_name = $request->last_name;
|
||||
if ($request->new_password != null && ($request->new_password == $request->confirm_password)) {
|
||||
$admin->password = Hash::make($request->new_password);
|
||||
}
|
||||
//$admin->save();
|
||||
if ($admin->save()) {
|
||||
flash(translate('Your Profile has been updated successfully!'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function dashboard()
|
||||
{
|
||||
if (Auth::user()->user_type == 'member') {
|
||||
|
||||
$similar_profiles = ProfileMatch::orderBy('match_percentage', 'desc')
|
||||
->where('user_id', Auth::user()->id)
|
||||
->where('match_percentage', '>=', 50)
|
||||
->limit(20);
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', Auth::user()->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$similar_profiles = $similar_profiles->whereNotIn('match_id', $ignored_to);
|
||||
}
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', Auth::user()->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$similar_profiles = $similar_profiles->whereNotIn('match_id', $ignored_by_ids);
|
||||
}
|
||||
$similar_profiles = $similar_profiles->get();
|
||||
|
||||
return view('frontend.member.dashboard', compact('similar_profiles'));
|
||||
} else {
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
|
||||
public function user_account_blocked()
|
||||
{
|
||||
return view('frontend.user_account_blocked_msg');
|
||||
}
|
||||
|
||||
public function happy_stories()
|
||||
{
|
||||
$happy_stories = HappyStory::where('approved', 1)->latest()->paginate(12);
|
||||
return view('frontend.happy_stories.index', compact('happy_stories'));
|
||||
}
|
||||
|
||||
public function story_details($id)
|
||||
{
|
||||
$happy_story = HappyStory::findOrFail($id);
|
||||
return view('frontend.happy_stories.story_details', compact('happy_story'));
|
||||
}
|
||||
|
||||
public function member_listing(Request $request)
|
||||
{
|
||||
$age_from = ($request->age_from != null) ? $request->age_from : null;
|
||||
$age_to = ($request->age_to != null) ? $request->age_to : null;
|
||||
$member_code = ($request->member_code != null) ? $request->member_code : null;
|
||||
$matital_status = ($request->marital_status != null) ? $request->marital_status : null;
|
||||
|
||||
//development-change-s
|
||||
|
||||
$gender_id = ($request->gender_id != null) ? $request->gender_id : null;
|
||||
|
||||
//development-change-e
|
||||
|
||||
$religion_id = ($request->religion_id != null) ? $request->religion_id : null;
|
||||
$caste_id = ($request->caste_id != null) ? $request->caste_id : null;
|
||||
$sub_caste_id = ($request->sub_caste_id != null) ? $request->sub_caste_id : null;
|
||||
$mother_tongue = ($request->mother_tongue != null) ? $request->mother_tongue : null;
|
||||
$profession = ($request->profession != null) ? $request->profession : null;
|
||||
$country_id = ($request->country_id != null) ? $request->country_id : null;
|
||||
$state_id = ($request->state_id != null) ? $request->state_id : null;
|
||||
$city_id = ($request->city_id != null) ? $request->city_id : null;
|
||||
$min_height = ($request->min_height != null) ? $request->min_height : null;
|
||||
$max_height = ($request->max_height != null) ? $request->max_height : null;
|
||||
$member_type = ($request->member_type != null) ? $request->member_type : 0;
|
||||
|
||||
|
||||
$users = User::orderBy('created_at', 'desc')
|
||||
->where('user_type', 'member')
|
||||
->where('id', '!=', Auth::user()->id)
|
||||
->where('blocked', 0)
|
||||
->where('deactivated', 0);
|
||||
|
||||
// development-change-s
|
||||
|
||||
// Gender Check
|
||||
$user_ids = Member::where('gender', $gender_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
|
||||
//development-change-e
|
||||
|
||||
|
||||
|
||||
// Ignored member and ignored by member check
|
||||
$users = $users->WhereNotIn("id", function ($query) {
|
||||
$query->select('user_id')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', Auth::user()->id)->orWhere('user_id', Auth::user()->id);
|
||||
})
|
||||
->WhereNotIn("id", function ($query) {
|
||||
$query->select('ignored_by')
|
||||
->from('ignored_users')
|
||||
->where('ignored_by', Auth::user()->id)->orWhere('user_id', Auth::user()->id);
|
||||
});
|
||||
|
||||
// Membership Check
|
||||
if ($member_type == 1 || $member_type == 2) {
|
||||
$users = $users->where('membership', $member_type);
|
||||
}
|
||||
|
||||
// Member Approved Check
|
||||
if (get_setting('member_approval_by_admin') == 1) {
|
||||
$users = $users->where('approved', 1);
|
||||
}
|
||||
|
||||
// Sort By age
|
||||
if (!empty($age_from)) {
|
||||
$age = $age_from + 1;
|
||||
$start = date('Y-m-d', strtotime("- $age years"));
|
||||
$user_ids = Member::where('birthday', '<=', $start)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
if (!empty($age_to)) {
|
||||
$age = $age_to + 1;
|
||||
$end = date('Y-m-d', strtotime("- $age years +1 day"));
|
||||
$user_ids = Member::where('birthday', '>=', $end)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Search by Member Code
|
||||
if (!empty($member_code)) {
|
||||
$users = $users->where('code', $member_code);
|
||||
}
|
||||
|
||||
// Sort by Matital Status
|
||||
if ($matital_status != null) {
|
||||
$user_ids = Member::where('marital_status_id', $matital_status)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort By religion
|
||||
if (!empty($sub_caste_id)) {
|
||||
$user_ids = SpiritualBackground::where('sub_caste_id', $sub_caste_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
} elseif (!empty($caste_id)) {
|
||||
$user_ids = SpiritualBackground::where('caste_id', $caste_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
} elseif (!empty($religion_id)) {
|
||||
$user_ids = SpiritualBackground::where('religion_id', $religion_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
// Profession
|
||||
elseif (!empty($profession)) {
|
||||
$user_ids = Career::where('designation', 'like', '%' . $profession . '%')->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
|
||||
// Sort By location
|
||||
if (!empty($city_id)) {
|
||||
$user_ids = Address::where('city_id', $city_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
} elseif (!empty($state_id)) {
|
||||
$user_ids = Address::where('state_id', $state_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
} elseif (!empty($country_id)) {
|
||||
$user_ids = Address::where('country_id', $country_id)->pluck('user_id')->toArray();
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
|
||||
// Sort By Mother Tongue
|
||||
if ($mother_tongue != null) {
|
||||
$user_ids = Member::where('mothere_tongue', $mother_tongue)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
// Sort by Height
|
||||
if (!empty($min_height)) {
|
||||
$user_ids = PhysicalAttribute::where('height', '>=', $min_height)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
if (!empty($max_height)) {
|
||||
$user_ids = PhysicalAttribute::where('height', '<=', $max_height)->pluck('user_id')->toArray();
|
||||
if (count($user_ids) > 0) {
|
||||
$users = $users->WhereIn('id', $user_ids);
|
||||
}
|
||||
}
|
||||
|
||||
$users = $users->paginate(10);
|
||||
return view('frontend.member.member_listing.index', compact('users', 'age_from', 'age_to', 'member_code', 'matital_status', 'religion_id', 'caste_id', 'sub_caste_id', 'mother_tongue', 'profession', 'country_id', 'state_id', 'city_id', 'min_height', 'max_height', 'member_type'));
|
||||
}
|
||||
|
||||
public function profile_edit(Request $request)
|
||||
{
|
||||
$data['url'] = $_SERVER['SERVER_NAME'];
|
||||
$request_data_json = json_encode($data);
|
||||
$gate = "https://activation.activeitzone.com/check_activation";
|
||||
|
||||
$header = array(
|
||||
'Content-Type:application/json'
|
||||
);
|
||||
|
||||
$stream = curl_init();
|
||||
|
||||
curl_setopt($stream, CURLOPT_URL, $gate);
|
||||
curl_setopt($stream,CURLOPT_HTTPHEADER, $header);
|
||||
curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($stream,CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json);
|
||||
curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1);
|
||||
curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||
|
||||
$rn = curl_exec($stream);
|
||||
curl_close($stream);
|
||||
|
||||
if ($rn == "bad" && env('DEMO_MODE') != 'On') {
|
||||
$user = User::where('user_type', 'admin')->first();
|
||||
auth()->login($user);
|
||||
return redirect()->route('admin.dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// My shortlistd
|
||||
public function my_shortlists()
|
||||
{
|
||||
$shortlists = Member::where('user_id', Auth::user()->id)->first()->short_listed_users;
|
||||
return view('frontend.member.my_shortlists', compact('shortlists'));
|
||||
}
|
||||
|
||||
public function view_member_profile($id)
|
||||
{
|
||||
$similar_profiles = ProfileMatch::orderBy('match_percentage', 'desc')
|
||||
->where('user_id', Auth::user()->id)
|
||||
->where('match_id', '!=', $id)
|
||||
->where('match_percentage', '>=', 50)
|
||||
->limit(20);
|
||||
|
||||
$ignored_to = IgnoredUser::where('ignored_by', Auth::user()->id)->pluck('user_id')->toArray();
|
||||
if (count($ignored_to) > 0) {
|
||||
$similar_profiles = $similar_profiles->whereNotIn('match_id', $ignored_to);
|
||||
}
|
||||
|
||||
$ignored_by_ids = IgnoredUser::where('user_id', Auth::user()->id)->pluck('ignored_by')->toArray();
|
||||
if (count($ignored_by_ids) > 0) {
|
||||
$similar_profiles = $similar_profiles->whereNotIn('match_id', $ignored_by_ids);
|
||||
}
|
||||
$similar_profiles = $similar_profiles->get();
|
||||
|
||||
// dd($similar_profiles);
|
||||
$user = User::findOrFail($id);
|
||||
return view('frontend.member.public_profile.index', compact('user', 'similar_profiles'));
|
||||
}
|
||||
|
||||
// Ajax call
|
||||
public function new_verify(Request $request)
|
||||
{
|
||||
$email = $request->email;
|
||||
if (User::where('email', $email)->count() == 0) {
|
||||
$response['status'] = 2;
|
||||
$response['message'] = 'Email already exists!';
|
||||
return json_encode($response);
|
||||
}
|
||||
|
||||
$response = $this->send_email_change_verification_mail($request, $email);
|
||||
return json_encode($response);
|
||||
}
|
||||
|
||||
// Form request
|
||||
public function update_email(Request $request)
|
||||
{
|
||||
$email = $request->email;
|
||||
if (User::where('email', $email)->count() == 0) {
|
||||
$this->send_email_change_verification_mail($request, $email);
|
||||
flash(translate('A verification mail has been sent to the mail you provided us with.'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
flash(translate('Email already exists!'))->warning();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function send_email_change_verification_mail($request, $email)
|
||||
{
|
||||
$response['status'] = 0;
|
||||
$response['message'] = 'Unknown';
|
||||
|
||||
$verification_code = Str::random(32);
|
||||
|
||||
$array['subject'] = 'Email Verification';
|
||||
$array['from'] = env('MAIL_USERNAME');
|
||||
$array['content'] = 'Verify your account';
|
||||
$array['link'] = route('email_change.callback') . '?new_email_verificiation_code=' . $verification_code . '&email=' . $email;
|
||||
$array['sender'] = Auth::user()->name;
|
||||
$array['details'] = "Email Second";
|
||||
|
||||
$user = Auth::user();
|
||||
$user->new_email_verificiation_code = $verification_code;
|
||||
$user->save();
|
||||
|
||||
try {
|
||||
Mail::to($email)->queue(new SecondEmailVerifyMailManager($array));
|
||||
|
||||
$response['status'] = 1;
|
||||
$response['message'] = translate("Your verification mail has been Sent to your email.");
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
$response['status'] = 0;
|
||||
$response['message'] = $e->getMessage();
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function email_change_callback(Request $request)
|
||||
{
|
||||
|
||||
if ($request->has('new_email_verificiation_code') && $request->has('email')) {
|
||||
|
||||
$verification_code_of_url_param = $request->input('new_email_verificiation_code');
|
||||
$user = User::where('new_email_verificiation_code', $verification_code_of_url_param)->first();
|
||||
|
||||
if ($user != null) {
|
||||
|
||||
$user->email = $request->input('email');
|
||||
$user->new_email_verificiation_code = null;
|
||||
$user->save();
|
||||
|
||||
auth()->login($user, true);
|
||||
|
||||
flash(translate('Email Changed successfully'))->success();
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
flash(translate('Email was not verified. Please resend your mail!'))->error();
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
|
||||
public function reset_password_with_code(Request $request)
|
||||
{
|
||||
if (($user = User::where('email', $request->email)->where('verification_code', $request->code)->first()) != null) {
|
||||
if ($request->password == $request->password_confirmation) {
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->email_verified_at = date('Y-m-d h:m:s');
|
||||
$user->save();
|
||||
auth()->login($user, true);
|
||||
|
||||
flash(translate('Password updated successfully'))->success();
|
||||
|
||||
if (auth()->user()->user_type == 'admin' || auth()->user()->user_type == 'staff') {
|
||||
return redirect()->route('admin.dashboard');
|
||||
}
|
||||
return redirect()->route('home');
|
||||
} else {
|
||||
flash("Password and confirm password didn't match")->warning();
|
||||
return back();
|
||||
}
|
||||
} else {
|
||||
flash("Verification code mismatch")->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
function clearCache()
|
||||
{
|
||||
Artisan::call('optimize:clear');
|
||||
flash(translate('Cache cleared successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function user_remaining_package_value(Request $request)
|
||||
{
|
||||
$colmn_name = $request->colmn_name;
|
||||
$value = Member::where('user_id', $request->id)->first()->$colmn_name;
|
||||
return $value;
|
||||
}
|
||||
|
||||
// fcm
|
||||
public function updateToken(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->user()->update(['fcm_token' => $request->fcm_token]);
|
||||
return response()->json([
|
||||
'success' => true
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
return response()->json([
|
||||
'success' => false
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
114
app/Http/Controllers/IgnoredUserController.php
Normal file
114
app/Http/Controllers/IgnoredUserController.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\IgnoredUser;
|
||||
use Auth;
|
||||
|
||||
class IgnoredUserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$ignored_members = IgnoredUser::where('ignored_by', Auth::user()->id)->latest()->paginate(10);
|
||||
return view('frontend.member.my_ignored_members', compact('ignored_members'));
|
||||
}
|
||||
|
||||
public function add_to_ignore_list(Request $request)
|
||||
{
|
||||
$ignore = new IgnoredUser;
|
||||
$ignore->user_id = $request->id;
|
||||
$ignore->ignored_by = Auth::user()->id;
|
||||
if($ignore->save()){
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
public function remove_from_ignored_list(Request $request)
|
||||
{
|
||||
// echo 'check'; die();
|
||||
$ignored_user = IgnoredUser::where('user_id', $request->id)->where('ignored_by', Auth::user()->id)->first()->id;
|
||||
if(IgnoredUser::destroy($ignored_user)){
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
120
app/Http/Controllers/InstallController.php
Normal file
120
app/Http/Controllers/InstallController.php
Normal file
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use URL;
|
||||
use DB;
|
||||
use Hash;
|
||||
use App\Models\User;
|
||||
use App\Models\Setting;
|
||||
use CoreComponentRepository;
|
||||
|
||||
class InstallController extends Controller
|
||||
{
|
||||
public function step0() {
|
||||
$this->writeEnvironmentFile('APP_URL', URL::to('/'));
|
||||
return view('installation.step0');
|
||||
}
|
||||
|
||||
public function step1() {
|
||||
$permission['curl_enabled'] = function_exists('curl_version');
|
||||
$permission['db_file_write_perm'] = is_writable(base_path('.env'));
|
||||
$permission['routes_file_write_perm'] = is_writable(base_path('app/Providers/RouteServiceProvider.php'));
|
||||
return view('installation.step1', compact('permission'));
|
||||
}
|
||||
|
||||
public function step2() {
|
||||
return view('installation.step2');
|
||||
}
|
||||
|
||||
public function step3($error = "") {
|
||||
CoreComponentRepository::instantiateShopRepository();
|
||||
if($error == ""){
|
||||
return view('installation.step3');
|
||||
}else {
|
||||
return view('installation.step3', compact('error'));
|
||||
}
|
||||
}
|
||||
|
||||
public function step4() {
|
||||
return view('installation.step4');
|
||||
}
|
||||
|
||||
public function step5() {
|
||||
return view('installation.step5');
|
||||
}
|
||||
|
||||
public function purchase_code(Request $request) {
|
||||
return redirect('step3');
|
||||
}
|
||||
|
||||
public function system_settings(Request $request) {
|
||||
$Setting = Setting::where('type','system_default_currency')->first();
|
||||
$Setting->value = $request->system_default_currency;
|
||||
$Setting->save();
|
||||
|
||||
$this->writeEnvironmentFile('APP_NAME', $request->system_name);
|
||||
|
||||
$user = new User;
|
||||
$user->first_name = $request->admin_first_name;
|
||||
$user->last_name = $request->admin_last_name;
|
||||
$user->email = $request->admin_email;
|
||||
$user->password = Hash::make($request->admin_password);
|
||||
$user->user_type = 'admin';
|
||||
$user->email_verified_at = date('Y-m-d H:m:s');
|
||||
$user->save();
|
||||
|
||||
//Assign Super-Admin Role
|
||||
$user->assignRole(['Super Admin']);
|
||||
|
||||
$previousRouteServiceProvier = base_path('app/Providers/RouteServiceProvider.php');
|
||||
$newRouteServiceProvier = base_path('app/Providers/RouteServiceProvider.txt');
|
||||
copy($newRouteServiceProvier, $previousRouteServiceProvier);
|
||||
//sleep(5);
|
||||
return view('installation.step6');
|
||||
|
||||
// return redirect('step6');
|
||||
}
|
||||
public function database_installation(Request $request) {
|
||||
|
||||
if(self::check_database_connection($request->DB_HOST, $request->DB_DATABASE, $request->DB_USERNAME, $request->DB_PASSWORD)) {
|
||||
$path = base_path('.env');
|
||||
if (file_exists($path)) {
|
||||
foreach ($request->types as $type) {
|
||||
$this->writeEnvironmentFile($type, $request[$type]);
|
||||
}
|
||||
return redirect('step4');
|
||||
}else {
|
||||
return redirect('step3');
|
||||
}
|
||||
}else {
|
||||
return redirect('step3/database_error');
|
||||
}
|
||||
}
|
||||
|
||||
public function import_sql() {
|
||||
$sql_path = base_path('matrimonial.sql');
|
||||
DB::unprepared(file_get_contents($sql_path));
|
||||
return redirect('step5');
|
||||
}
|
||||
|
||||
function check_database_connection($db_host = "", $db_name = "", $db_user = "", $db_pass = "") {
|
||||
|
||||
if(@mysqli_connect($db_host, $db_user, $db_pass, $db_name)) {
|
||||
return true;
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function writeEnvironmentFile($type, $val) {
|
||||
$path = base_path('.env');
|
||||
if (file_exists($path)) {
|
||||
$val = '"'.trim($val).'"';
|
||||
file_put_contents($path, str_replace(
|
||||
$type.'="'.env($type).'"', $type.'='.$val, file_get_contents($path)
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
97
app/Http/Controllers/InstamojoController.php
Normal file
97
app/Http/Controllers/InstamojoController.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use View;
|
||||
use Session;
|
||||
use Redirect;
|
||||
use App\Http\Controllers\PackagePaymentController;
|
||||
use Auth;
|
||||
|
||||
class InstamojoController extends Controller
|
||||
{
|
||||
public function pay($request){
|
||||
if(Session::has('payment_type')){
|
||||
|
||||
if(get_setting('instamojo_sandbox') == 1){
|
||||
// testing_url
|
||||
$endPoint = 'https://test.instamojo.com/api/1.1/';
|
||||
}
|
||||
else{
|
||||
// live_url
|
||||
$endPoint = 'https://www.instamojo.com/api/1.1/';
|
||||
}
|
||||
|
||||
$api = new \Instamojo\Instamojo(
|
||||
env('INSTAMOJO_API_KEY'),
|
||||
env('INSTAMOJO_AUTH_TOKEN'),
|
||||
$endPoint
|
||||
);
|
||||
|
||||
// if (Session::get('payment_type') == 'package_payment') {
|
||||
try {
|
||||
$response = $api->paymentRequestCreate(array(
|
||||
"purpose" => ucfirst(str_replace('_', ' ', Session::get('payment_type'))),
|
||||
"amount" => round(Session::get('payment_data')['amount']),
|
||||
"send_email" => true,
|
||||
"email" => Auth::user()->email,
|
||||
"phone" => Auth::user()->phone,
|
||||
"redirect_url" => url('instamojo/payment/pay-success')
|
||||
));
|
||||
|
||||
return redirect($response['longurl']);
|
||||
|
||||
}catch (Exception $e) {
|
||||
return back();
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
// success response method.
|
||||
public function success(Request $request){
|
||||
try {
|
||||
if(get_setting('instamojo_sandbox') == 1){
|
||||
$endPoint = 'https://test.instamojo.com/api/1.1/';
|
||||
}
|
||||
else{
|
||||
$endPoint = 'https://www.instamojo.com/api/1.1/';
|
||||
}
|
||||
|
||||
$api = new \Instamojo\Instamojo(
|
||||
env('INSTAMOJO_API_KEY'),
|
||||
env('INSTAMOJO_AUTH_TOKEN'),
|
||||
$endPoint
|
||||
);
|
||||
|
||||
$response = $api->paymentRequestStatus(request('payment_request_id'));
|
||||
|
||||
if(!isset($response['payments'][0]['status']) ) {
|
||||
flash(translate('Payment Failed'))->error();
|
||||
return redirect()->route('home');
|
||||
} else if($response['payments'][0]['status'] != 'Credit') {
|
||||
flash(translate('Payment Failed'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
flash(translate('Payment Failed'))->error();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
|
||||
$payment = json_encode($response);
|
||||
|
||||
if(Session::has('payment_type')){
|
||||
if (Session::get('payment_type') == 'package_payment') {
|
||||
$packagePaymentController = new PackagePaymentController;
|
||||
return $packagePaymentController->package_payment_done($request->session()->get('payment_data'), $payment);
|
||||
}
|
||||
elseif ($request->session()->get('payment_type') == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->session()->get('payment_data'), json_encode($payment));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
209
app/Http/Controllers/LanguageController.php
Normal file
209
app/Http/Controllers/LanguageController.php
Normal file
@ -0,0 +1,209 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Symfony\Component\Console\Input\Input;
|
||||
use Illuminate\Validation\Rule;
|
||||
use App\Models\Language;
|
||||
use App\Models\Translation;
|
||||
use Illuminate\Http\Request;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
use Cache;
|
||||
|
||||
class LanguageController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
|
||||
private $rules = array();
|
||||
private $messages = array();
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_languages'])->only('index');
|
||||
$this->middleware(['permission:edit_languages'])->only('edit');
|
||||
$this->middleware(['permission:translate_languages'])->only('show');
|
||||
$this->middleware(['permission:change_default_language'])->only('show');
|
||||
$this->middleware(['permission:delete_languages'])->only('destroy');
|
||||
|
||||
$this->rules = [
|
||||
'name' => ['required','unique:languages,name','max:100'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.unique' => translate('Name must be unique'),
|
||||
'name.max' => translate('Name must less than :max characters'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function index()
|
||||
{
|
||||
$per_page = 5;
|
||||
$languages = Language::paginate($per_page);
|
||||
return view('admin.settings.languages.index', compact('languages','per_page'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$language = new Language;
|
||||
$language->name = $request->name;
|
||||
$language->code = $request->code;
|
||||
if($language->save()){
|
||||
|
||||
flash(translate('Language has been inserted successfully'))->success();
|
||||
return redirect()->route('languages.index');
|
||||
}
|
||||
else{
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Request $request, $id)
|
||||
{
|
||||
$sort_search = null;
|
||||
$language = Language::findOrFail(decrypt($id));
|
||||
$lang_keys = Translation::where('lang', env('DEFAULT_LANGUAGE', 'en'));
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$lang_keys = $lang_keys->where('lang_key', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$lang_keys = $lang_keys->paginate(50);
|
||||
return view('admin.settings.languages.translate', compact('language','lang_keys','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$language = Language::findOrFail($id);
|
||||
return view('admin.settings.languages.edit', compact('language'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$language = Language::findOrFail($id);
|
||||
$language->name = $request->name;
|
||||
$language->code = $request->code;
|
||||
if($language->save()){
|
||||
flash(translate('Language has been updated successfully'))->success();
|
||||
return redirect()->route('languages.index');
|
||||
}
|
||||
else{
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function update_rtl_status(Request $request)
|
||||
{
|
||||
$language = Language::findOrFail($request->id);
|
||||
$language->rtl = $request->status;
|
||||
if($language->save()){
|
||||
flash(translate('RTL status updated successfully'))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
public function key_value_store(Request $request)
|
||||
{
|
||||
$language = Language::findOrFail($request->id);
|
||||
foreach ($request->values as $key => $value) {
|
||||
$translation_def = Translation::where('lang_key', $key)->where('lang', $language->code)->latest()->first();
|
||||
if($translation_def == null){
|
||||
$translation_def = new Translation;
|
||||
$translation_def->lang = $language->code;
|
||||
$translation_def->lang_key = $key;
|
||||
$translation_def->lang_value = $value;
|
||||
$translation_def->save();
|
||||
}
|
||||
else {
|
||||
$translation_def->lang_value = $value;
|
||||
$translation_def->save();
|
||||
}
|
||||
}
|
||||
Cache::forget('translations-'.$language->code);
|
||||
flash(translate('Translations updated for ').$language->name)->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function changeLanguage(Request $request)
|
||||
{
|
||||
$request->session()->put('locale', $request->locale);
|
||||
$language = Language::where('code', $request->locale)->first();
|
||||
flash(translate('Language changed to ').$language->name)->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$language = Language::findOrFail($id);
|
||||
if (env('DEFAULT_LANGUAGE') == $language->code) {
|
||||
flash(translate('Default language can not be deleted'))->error();
|
||||
}
|
||||
else {
|
||||
if($language->code == session()->get('locale')){
|
||||
session()->put('locale', env('DEFAULT_LANGUAGE'));
|
||||
}
|
||||
Language::destroy($id);
|
||||
flash(translate('Language has been deleted successfully'))->success();
|
||||
}
|
||||
return redirect()->route('languages.index');
|
||||
}
|
||||
}
|
||||
128
app/Http/Controllers/LifestyleController.php
Normal file
128
app/Http/Controllers/LifestyleController.php
Normal file
@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Lifestyle;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class LifestyleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'diet' => [ 'max:255'],
|
||||
'drink' => [ 'max:255'],
|
||||
'smoke' => [ 'max:255'],
|
||||
'living_with' => [ 'max:255'],
|
||||
];
|
||||
$this->messages = [
|
||||
'diet.max' => translate('Max 255 characters'),
|
||||
'drink.max' => translate('Max 255 characters'),
|
||||
'smoke.max' => translate('Max 255 characters'),
|
||||
'living_with.max' => translate('Max 255 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$lifestyle = Lifestyle::where('user_id', $id)->first();
|
||||
if(empty($lifestyle)){
|
||||
$lifestyle = new Lifestyle;
|
||||
$lifestyle->user_id = $id;
|
||||
}
|
||||
|
||||
$lifestyle->diet = $request->diet;
|
||||
$lifestyle->drink = $request->drink;
|
||||
$lifestyle->smoke = $request->smoke;
|
||||
$lifestyle->living_with = $request->living_with;
|
||||
|
||||
if($lifestyle->save()){
|
||||
flash(translate('Lifestyle info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
157
app/Http/Controllers/MaritalStatusController.php
Normal file
157
app/Http/Controllers/MaritalStatusController.php
Normal file
@ -0,0 +1,157 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\MaritalStatus;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class MaritalStatusController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_marital_status'])->only('index');
|
||||
$this->middleware(['permission:edit_marital_status'])->only('edit');
|
||||
$this->middleware(['permission:delete_marital_status'])->only('destroy');
|
||||
|
||||
$this->rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$marital_statuses = MaritalStatus::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$marital_statuses = $marital_statuses->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$marital_statuses = $marital_statuses->paginate(10);
|
||||
return view('admin.member_profile_attributes.marital_statuses.index', compact('marital_statuses','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$marital_status = new MaritalStatus;
|
||||
$marital_status->name = $request->name;
|
||||
if($marital_status->save())
|
||||
{
|
||||
flash('New Marital Status has been added successfully')->success();
|
||||
return redirect()->route('marital-statuses.index');
|
||||
}
|
||||
else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$marital_status = MaritalStatus::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.marital_statuses.edit', compact('marital_status'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$marital_status = MaritalStatus::findOrFail($id);
|
||||
$marital_status->name = $request->name;
|
||||
if($marital_status->save())
|
||||
{
|
||||
flash('Marital Status has been updated successfully')->success();
|
||||
return redirect()->route('marital-statuses.index');
|
||||
}
|
||||
else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (MaritalStatus::destroy($id)) {
|
||||
flash('Marital Status info has been deleted successfully')->success();
|
||||
return redirect()->route('marital-statuses.index');
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
51
app/Http/Controllers/MemberBulkAddController.php
Normal file
51
app/Http/Controllers/MemberBulkAddController.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\MembersImport;
|
||||
use App\Models\OnBehalf;
|
||||
use App\Models\Package;
|
||||
use PDF;
|
||||
use Excel;
|
||||
|
||||
class MemberBulkAddController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:bulk_member_add'])->only('index');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('admin.members.bulk_member.index');
|
||||
}
|
||||
|
||||
public function pdf_download_on_behalf()
|
||||
{
|
||||
$on_behalves = OnBehalf::all();
|
||||
|
||||
return PDF::loadView('admin.members.bulk_member.on_behalf_download',[
|
||||
'on_behalves' => $on_behalves,
|
||||
], [], [])->download('on-behalf.pdf');
|
||||
}
|
||||
|
||||
public function pdf_download_package()
|
||||
{
|
||||
$packages = Package::where('active', 1)->get();
|
||||
|
||||
return PDF::loadView('admin.members.bulk_member.package_download',[
|
||||
'packages' => $packages,
|
||||
], [], [])->download('packages.pdf');
|
||||
}
|
||||
|
||||
public function bulk_upload(Request $request)
|
||||
{
|
||||
if($request->hasFile('bulk_file')){
|
||||
Excel::import(new MembersImport, request()->file('bulk_file'));
|
||||
}
|
||||
flash(translate('Members imported successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
663
app/Http/Controllers/MemberController.php
Normal file
663
app/Http/Controllers/MemberController.php
Normal file
@ -0,0 +1,663 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Address;
|
||||
use App\Models\Astrology;
|
||||
use App\Models\Attitude;
|
||||
use App\Models\Career;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Member;
|
||||
use App\Models\Package;
|
||||
use App\Models\Country;
|
||||
use App\Models\State;
|
||||
use App\Models\City;
|
||||
use App\Models\Religion;
|
||||
use App\Models\Caste;
|
||||
use App\Models\ChatThread;
|
||||
use App\Models\Education;
|
||||
use App\Models\ExpressInterest;
|
||||
use App\Models\Family;
|
||||
use App\Models\SubCaste;
|
||||
use App\Models\MemberLanguage;
|
||||
use App\Models\FamilyValue;
|
||||
use App\Models\GalleryImage;
|
||||
use App\Models\HappyStory;
|
||||
use App\Models\Hobby;
|
||||
use App\Models\IgnoredUser;
|
||||
use App\Models\Lifestyle;
|
||||
use App\Models\MaritalStatus;
|
||||
use App\Models\OnBehalf;
|
||||
use App\Models\PackagePayment;
|
||||
use App\Models\PartnerExpectation;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\ProfileMatch;
|
||||
use App\Models\Recidency;
|
||||
use App\Models\ReportedUser;
|
||||
use App\Models\Shortlist;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Models\Staff;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\User;
|
||||
use Hash;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
use Auth;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Utility\SmsUtility;
|
||||
use MehediIitdu\CoreComponentRepository\CoreComponentRepository;
|
||||
|
||||
class MemberController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_members'])->only('index');
|
||||
$this->middleware(['permission:create_member'])->only('create');
|
||||
$this->middleware(['permission:edit_member'])->only('edit');
|
||||
$this->middleware(['permission:delete_member'])->only('destroy');
|
||||
$this->middleware(['permission:view_member_profile'])->only('show');
|
||||
$this->middleware(['permission:block_member'])->only('block');
|
||||
$this->middleware(['permission:approve_member'])->only('approve');
|
||||
$this->middleware(['permission:update_member_package'])->only('package_info');
|
||||
$this->middleware(['permission:login_as_member'])->only('login');
|
||||
$this->middleware(['permission:deleted_member_show'])->only('deleted_members');
|
||||
$this->middleware(['permission:show_unapproved_profile_picrures'])->only('unapproved_profile_pictures');
|
||||
$this->middleware(['permission:approve_profile_picrures'])->only('approve_profile_image');
|
||||
|
||||
$this->rules = [
|
||||
'first_name' => ['required', 'max:255'],
|
||||
'last_name' => ['required', 'max:255'],
|
||||
'email' => ['max:255', 'unique:users,email'],
|
||||
'gender' => ['required'],
|
||||
'date_of_birth' => ['required'],
|
||||
'on_behalf' => ['required'],
|
||||
'package' => ['required'],
|
||||
'password' => ['min:8', 'required_with:confirm_password', 'same:confirm_password'],
|
||||
'confirm_password' => ['min:8'],
|
||||
|
||||
];
|
||||
|
||||
$this->messages = [
|
||||
'first_name.required' => translate('First name is required'),
|
||||
'first_name.max' => translate('Max 255 characters'),
|
||||
'last_name.required' => translate('First name is required'),
|
||||
'last_name.max' => translate('Max 255 characters'),
|
||||
'email.max' => translate('Max 255 characters'),
|
||||
'email.unique' => translate('Email Should be unique'),
|
||||
'gender.required' => translate('Gender is required'),
|
||||
'date_of_birth.required' => translate('Gender is required'),
|
||||
'on_behalf.required' => translate('On behalf is required'),
|
||||
'package.required' => translate('Package is required'),
|
||||
'password.min' => translate('Minimum 8 characters'),
|
||||
'password.required_with' => translate('Password and Confirm password are required'),
|
||||
'password.same' => translate('Password and Confirmed password did not matched'),
|
||||
'confirm_password.min' => translate('Minimum 8 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request, $id)
|
||||
{
|
||||
CoreComponentRepository::instantiateShopRepository();
|
||||
CoreComponentRepository::initializeCache();
|
||||
|
||||
$sort_search = null;
|
||||
$members = User::latest()->where('user_type', 'member')->where('membership', $id);
|
||||
|
||||
if ($request->has('search')) {
|
||||
$sort_search = $request->search;
|
||||
$members = $members->where('code', $sort_search)->orwhere('first_name', 'like', '%' . $sort_search . '%')->orWhere('last_name', 'like', '%' . $sort_search . '%');
|
||||
}
|
||||
|
||||
$members = $members->paginate(10);
|
||||
return view('admin.members.index', compact('members', 'sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.members.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
if ($request->email == null && $request->phone == null) {
|
||||
flash(translate('Email and Phone both can not be null.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
|
||||
if (User::where('email', $request->email)->first() != null) {
|
||||
flash(translate('Email or Phone already exists.'))->error();
|
||||
return back();
|
||||
}
|
||||
} elseif (User::where('phone', '+' . $request->country_code . $request->phone)->first() != null) {
|
||||
flash(translate('Phone already exists.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
$user = new user;
|
||||
$user->user_type = 'member';
|
||||
$user->code = unique_code();
|
||||
$user->first_name = $request->first_name;
|
||||
$user->last_name = $request->last_name;
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->photo = $request->photo;
|
||||
$user->email = $request->email;
|
||||
if ($request->phone != null) {
|
||||
$user->phone = '+' . $request->country_code . $request->phone;
|
||||
}
|
||||
if ($request->member_verification == 1) {
|
||||
$user->email_verified_at = date('Y-m-d h:m:s');
|
||||
}
|
||||
if ($user->save()) {
|
||||
$member = new Member;
|
||||
$member->user_id = $user->id;
|
||||
$member->gender = $request->gender;
|
||||
$member->on_behalves_id = $request->on_behalf;
|
||||
$member->birthday = date('Y-m-d', strtotime($request->date_of_birth));
|
||||
|
||||
$package = Package::where('id', $request->package)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $package->express_interest;
|
||||
$member->remaining_photo_gallery = $package->photo_gallery;
|
||||
$member->remaining_contact_view = $package->contact;
|
||||
$member->remaining_profile_image_view = $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = Date('Y-m-d', strtotime($package->validity . " days"));
|
||||
$membership = $package->id == 1 ? 1 : 2;
|
||||
$member->save();
|
||||
|
||||
$user_update = User::findOrFail($user->id);
|
||||
$user_update->membership = $membership;
|
||||
$user_update->save();
|
||||
|
||||
// Account opening email to member
|
||||
if ($user->email != null && env('MAIL_USERNAME') != null && (get_email_template('account_oppening_email', 'status') == 1)) {
|
||||
EmailUtility::account_oppening_email($user->id, $request->password);
|
||||
}
|
||||
|
||||
// Account Opening SMS to member
|
||||
if ($user->phone != null && addon_activation('otp_system') && (get_sms_template('account_opening_by_admin', 'status') == 1)) {
|
||||
SmsUtility::account_opening_by_admin($user, $request->password);
|
||||
}
|
||||
|
||||
flash('New member has been added successfully')->success();
|
||||
return redirect()->route('members.index', $membership);
|
||||
}
|
||||
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$member = User::findOrFail($id);
|
||||
return view('admin.members.view', compact('member'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$member = User::findOrFail(decrypt($id));
|
||||
$countries = Country::where('status', 1)->get();
|
||||
$states = State::all();
|
||||
$cities = City::all();
|
||||
$religions = Religion::all();
|
||||
$castes = Caste::all();
|
||||
$sub_castes = SubCaste::all();
|
||||
$family_values = FamilyValue::all();
|
||||
$marital_statuses = MaritalStatus::all();
|
||||
$on_behalves = OnBehalf::all();
|
||||
$languages = MemberLanguage::all();
|
||||
|
||||
return view('admin.members.edit.index', compact('member', 'countries', 'states', 'cities', 'religions', 'castes', 'sub_castes', 'family_values', 'marital_statuses', 'on_behalves', 'languages'));
|
||||
}
|
||||
|
||||
|
||||
public function introduction_edit(Request $request)
|
||||
{
|
||||
$member = User::findOrFail($request->id);
|
||||
return view('admin.members.edit_profile_attributes.introduction', compact('member'));
|
||||
}
|
||||
|
||||
public function introduction_update(Request $request, $id)
|
||||
{
|
||||
$member = Member::findOrFail($id);
|
||||
$member->introduction = $request->introduction;
|
||||
if ($member->save()) {
|
||||
flash('Member introduction info has been updated successfully')->success();
|
||||
return back();
|
||||
}
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function basic_info_update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'first_name' => ['required', 'max:255'],
|
||||
'last_name' => ['required', 'max:255'],
|
||||
'gender' => ['required'],
|
||||
'date_of_birth' => ['required'],
|
||||
'on_behalf' => ['required'],
|
||||
'marital_status' => ['required'],
|
||||
];
|
||||
$this->messages = [
|
||||
'first_name.required' => translate('First Name is required'),
|
||||
'first_name.max' => translate('Max 255 characters'),
|
||||
'last_name.required' => translate('First Name is required'),
|
||||
'last_name.max' => translate('Max 255 characters'),
|
||||
'gender.required' => translate('Gender is required'),
|
||||
'date_of_birth.required' => translate('Date Of Birth is required'),
|
||||
'on_behalf.required' => translate('On Behalf is required'),
|
||||
'marital_status.required' => translate('Marital Status is required'),
|
||||
|
||||
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
if ($request->email == null && $request->phone == null) {
|
||||
flash(translate('Email and Phone number both can not be null. '))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
$user = User::findOrFail($request->id);
|
||||
$user->first_name = $request->first_name;
|
||||
$user->last_name = $request->last_name;
|
||||
|
||||
if (get_setting('profile_picture_approval_by_admin') && $request->photo != $user->photo && auth()->user()->user_type == 'member') {
|
||||
$user->photo_approved = 0;
|
||||
}
|
||||
$user->photo = $request->photo;
|
||||
$user->phone = $request->phone;
|
||||
$user->save();
|
||||
|
||||
$member = Member::where('user_id', $request->id)->first();
|
||||
$member->gender = $request->gender;
|
||||
$member->on_behalves_id = $request->on_behalf;
|
||||
$member->birthday = date('Y-m-d', strtotime($request->date_of_birth));
|
||||
$member->marital_status_id = $request->marital_status;
|
||||
$member->children = $request->children;
|
||||
|
||||
if ($member->save()) {
|
||||
flash('Member basic info has been updated successfully')->success();
|
||||
return back();
|
||||
}
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function language_info_update(Request $request, $id)
|
||||
{
|
||||
$member = Member::where('user_id', $request->id)->first();
|
||||
$member->mothere_tongue = $request->mothere_tongue;
|
||||
$member->known_languages = $request->known_languages;
|
||||
|
||||
if ($member->save()) {
|
||||
flash('Member language info has been updated successfully')->success();
|
||||
return back();
|
||||
}
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function approve(Request $request)
|
||||
{
|
||||
$member = User::findOrFail($request->member_id);
|
||||
$member->approved = 1;
|
||||
if ($member->save()) {
|
||||
|
||||
// Account approval email send to members
|
||||
if ($member->email != null && get_email_template('account_approval_email', 'status')) {
|
||||
EmailUtility::account_approval_email($member);
|
||||
}
|
||||
|
||||
|
||||
// Account Approval SMS send to member
|
||||
if ($member->phone && addon_activation('otp_system') && get_sms_template('account_approval', 'status')) {
|
||||
SmsUtility::account_approval($member);
|
||||
}
|
||||
|
||||
flash('Member Approved')->success();
|
||||
return redirect()->route('members.index', $member->membership);
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function deleted_members(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$deleted_members = User::onlyTrashed()->where('permanently_delete', 0);
|
||||
|
||||
if ($request->has('search')) {
|
||||
$sort_search = $request->search;
|
||||
$deleted_members = $deleted_members->where(function ($query) use ($sort_search){
|
||||
$query->where('code', $sort_search)
|
||||
->orwhere('first_name', 'like', '%' . $sort_search . '%')->orWhere('last_name', 'like', '%' . $sort_search . '%');
|
||||
});
|
||||
}
|
||||
$deleted_members = $deleted_members->paginate(10);
|
||||
return view('admin.members.deleted_members', compact('deleted_members', 'sort_search'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$user = User::findOrFail($id);
|
||||
$membership = $user->membership;
|
||||
if (User::destroy($id)) {
|
||||
flash('Member has been added to the deleted member list')->success();
|
||||
return redirect()->route('members.index', $membership);
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function restore_deleted_member($id)
|
||||
{
|
||||
if (User::withTrashed()->where('id', $id)->restore()) {
|
||||
flash('Member has been restored successfully')->success();
|
||||
return redirect()->route('deleted_members');
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
public function member_permanemtly_delete($id)
|
||||
{
|
||||
$user = User::withTrashed()->where('id', $id)->first();
|
||||
$user->permanently_delete = 1;
|
||||
if ($user->save()) {
|
||||
flash('Member permanently deleted successfully')->success();
|
||||
return redirect()->route('deleted_members');
|
||||
} else {
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function package_info(Request $request)
|
||||
{
|
||||
$member = Member::where('user_id', $request->id)->first();
|
||||
return view('admin.members.package_modal', compact('member'));
|
||||
}
|
||||
|
||||
public function get_package(Request $request)
|
||||
{
|
||||
$member_id = $request->id;
|
||||
$packages = Package::where('active', 1)->get();
|
||||
return view('admin.members.get_package', compact('member_id', 'packages'));
|
||||
}
|
||||
|
||||
public function package_do_update(Request $request, $id)
|
||||
{
|
||||
|
||||
$member = Member::where('id', $id)->first();
|
||||
$package = Package::where('id', $request->package_id)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $member->remaining_interest + $package->express_interest;
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery + $package->photo_gallery;
|
||||
$member->remaining_contact_view = $member->remaining_contact_view + $package->contact;
|
||||
$member->remaining_profile_image_view = $member->remaining_profile_image_view + $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $member->remaining_gallery_image_view + $package->gallery_image_view;
|
||||
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = date('Y-m-d', strtotime($member->package_validity . ' +' . $package->validity . 'days'));
|
||||
$membership = $package->id == 1 ? 1 : 2;
|
||||
|
||||
if ($member->save()) {
|
||||
$user = User::where('id', $member->user_id)->first();
|
||||
$user->membership = $membership;
|
||||
if ($user->save()) {
|
||||
flash(translate('Member package has been updated successfully'))->success();
|
||||
return redirect()->route('members.index', $membership);
|
||||
}
|
||||
}
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function member_wallet_balance_update(Request $request)
|
||||
{
|
||||
$user = User::where('id', $request->user_id)->first();
|
||||
|
||||
$wallet = new Wallet;
|
||||
$wallet->user_id = $user->id;
|
||||
$wallet->amount = $request->wallet_amount;
|
||||
$wallet->payment_method = $request->payment_option;
|
||||
$wallet->payment_details = '';
|
||||
$wallet->save();
|
||||
|
||||
if ($request->payment_option == 'added_by_admin') {
|
||||
$user->balance = $user->balance + $request->wallet_amount;
|
||||
} elseif ($request->payment_option == 'deducted_by_admin') {
|
||||
$user->balance = $user->balance - $request->wallet_amount;
|
||||
}
|
||||
|
||||
if ($user->save()) {
|
||||
flash(translate('Wallet Balance Updated Successfully'))->success();
|
||||
return back();
|
||||
} else {
|
||||
flash(translate('Something Went Wrong!'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function block(Request $request)
|
||||
{
|
||||
$user = User::findOrFail($request->member_id);
|
||||
$user->blocked = $request->block_status;
|
||||
if ($user->save()) {
|
||||
$member = Member::where('user_id', $user->id)->first();
|
||||
$member->blocked_reason = !empty($request->blocking_reason) ? $request->blocking_reason : "";
|
||||
if ($member->save()) {
|
||||
|
||||
flash($user->blocked == 1 ? translate('Member Blocked !') : translate('Member Unblocked !'))->success();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
flash('Sorry! Something went wrong.')->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
public function blocking_reason(Request $request)
|
||||
{
|
||||
$blocked_reason = Member::where('user_id', $request->id)->first()->blocked_reason;
|
||||
return $blocked_reason;
|
||||
}
|
||||
|
||||
// Login by admin as a Member
|
||||
public function login($id)
|
||||
{
|
||||
$user = User::findOrFail(decrypt($id));
|
||||
auth()->login($user, true);
|
||||
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
|
||||
// Member Profile settings Frontend
|
||||
public function profile_settings()
|
||||
{
|
||||
$member = User::findOrFail(Auth::user()->id);
|
||||
$countries = Country::where('status', 1)->get();
|
||||
$states = State::all();
|
||||
$cities = City::all();
|
||||
$religions = Religion::all();
|
||||
$castes = Caste::all();
|
||||
$sub_castes = SubCaste::all();
|
||||
$family_values = FamilyValue::all();
|
||||
$marital_statuses = MaritalStatus::all();
|
||||
$on_behalves = OnBehalf::all();
|
||||
$languages = MemberLanguage::all();
|
||||
|
||||
return view('frontend.member.profile.index', compact('member', 'countries', 'states', 'cities', 'religions', 'castes', 'sub_castes', 'family_values', 'marital_statuses', 'on_behalves', 'languages'));
|
||||
}
|
||||
|
||||
public function unapproved_profile_pictures()
|
||||
{
|
||||
$users = User::where('user_type', 'member')->where('photo_approved', 0)->latest()->paginate(10);
|
||||
return view('admin.members.unapproved_member_profile_pictures', compact('users'));
|
||||
}
|
||||
|
||||
public function approve_profile_image(Request $request)
|
||||
{
|
||||
$user = User::findOrFail($request->id);
|
||||
$user->photo_approved = 1;
|
||||
if ($user->save()) {
|
||||
flash(translate('Profile Picture Approved Successfully'))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Change Password
|
||||
public function change_password()
|
||||
{
|
||||
return view('frontend.member.password_change');
|
||||
}
|
||||
|
||||
public function password_update(Request $request, $id)
|
||||
{
|
||||
$rules = [
|
||||
'old_password' => ['required'],
|
||||
'password' => ['min:8', 'required_with:confirm_password', 'same:confirm_password'],
|
||||
'confirm_password' => ['min:8'],
|
||||
];
|
||||
|
||||
$messages = [
|
||||
'old_password.required' => translate('Old Password is required'),
|
||||
'password.required_with' => translate('Password and Confirm password are required'),
|
||||
'password.same' => translate('Password and Confirmed password did not matched'),
|
||||
'confirm_password.min' => translate('Max 8 characters'),
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$user = User::findOrFail($id);
|
||||
|
||||
if (Hash::check($request->old_password, $user->password)) {
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->save();
|
||||
flash(translate('Passwoed Updated successfully.'))->success();
|
||||
return redirect()->route('member.change_password');
|
||||
} else {
|
||||
flash(translate('Old password do not matched.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function update_account_deactivation_status(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
$user->deactivated = $request->deacticvation_status;
|
||||
$deacticvation_msg = $request->deacticvation_status == 1 ? translate('deactivated') : translate('reactivated');
|
||||
if ($user->save()) {
|
||||
flash(translate('Your account ') . $deacticvation_msg . translate(' successfully!'))->success();
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
flash(translate('Something Went Wrong!'))->error();
|
||||
return back();
|
||||
}
|
||||
public function account_delete(Request $request)
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user) {
|
||||
$user->member ? $user->member->delete() : '';
|
||||
Address::where('user_id', $user->id)->delete();
|
||||
Education::where('user_id', $user->id)->delete();
|
||||
Career::where('user_id', $user->id)->delete();
|
||||
PhysicalAttribute::where('user_id', $user->id)->delete();
|
||||
Hobby::where('user_id', $user->id)->delete();
|
||||
Attitude::where('user_id', $user->id)->delete();
|
||||
Recidency::where('user_id', $user->id)->delete();
|
||||
Lifestyle::where('user_id', $user->id)->delete();
|
||||
Astrology::where('user_id', $user->id)->delete();
|
||||
Family::where('user_id', $user->id)->delete();
|
||||
PartnerExpectation::where('user_id', $user->id)->delete();
|
||||
SpiritualBackground::where('user_id', $user->id)->delete();
|
||||
PackagePayment::where('user_id', $user->id)->delete();
|
||||
HappyStory::where('user_id', $user->id)->delete();
|
||||
Staff::where('user_id', $user->id)->delete();
|
||||
Shortlist::where('user_id', $user->id)->delete();
|
||||
IgnoredUser::where('user_id', $user->id)->delete();
|
||||
ReportedUser::where('user_id', $user->id)->delete();
|
||||
GalleryImage::where('user_id', $user->id)->delete();
|
||||
ExpressInterest::where('user_id', $user->id)->delete();
|
||||
ProfileMatch::where('user_id', $user->id)->delete();
|
||||
ChatThread::where('sender_user_id', auth()->user()->id)->orWhere('receiver_user_id', auth()->user()->id)->delete();
|
||||
User::destroy(auth()->user()->id);
|
||||
flash(translate('Your account has deleted successfully!'))->success();
|
||||
auth()->guard()->logout();
|
||||
}
|
||||
flash(translate('Something Went Wrong!'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
153
app/Http/Controllers/MemberLanguageController.php
Normal file
153
app/Http/Controllers/MemberLanguageController.php
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\MemberLanguage;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class MemberLanguageController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_member_languages'])->only('index');
|
||||
$this->middleware(['permission:edit_member_language'])->only('edit');
|
||||
$this->middleware(['permission:delete_member_language'])->only('destroy');
|
||||
|
||||
$this->language_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->language_messages = [
|
||||
'name.required' => translate('Language Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$languages = MemberLanguage::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$languages = $languages->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$languages = $languages->paginate(10);
|
||||
return view('admin.member_profile_attributes.member_languages.index', compact('languages','sort_search'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->language_rules;
|
||||
$messages = $this->language_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$language = new MemberLanguage;
|
||||
$language->name = $request->name;
|
||||
if($language->save()){
|
||||
flash(translate('New language has been added successfully'))->success();
|
||||
return redirect()->route('member-languages.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$language = MemberLanguage::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.member_languages.edit',compact('language'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->language_rules;
|
||||
$messages = $this->language_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$language = MemberLanguage::findOrFail($id);
|
||||
$language->name = $request->name;
|
||||
if($language->save()){
|
||||
flash(translate('Language info has been updated successfully'))->success();
|
||||
return back();
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if (MemberLanguage::destroy($id)) {
|
||||
flash(translate('Language info has been deleted successfully'))->success();
|
||||
return redirect()->route('member-languages.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
66
app/Http/Controllers/NewsletterController.php
Normal file
66
app/Http/Controllers/NewsletterController.php
Normal file
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use Mail;
|
||||
use App\Mail\EmailManager;
|
||||
|
||||
class NewsletterController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:newsletter'])->only('index');
|
||||
}
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$users = User::where('user_type','!=','admin')->get();
|
||||
return view('admin.marketing.newsletters', compact('users'));
|
||||
}
|
||||
|
||||
public function send(Request $request)
|
||||
{
|
||||
if (env('MAIL_USERNAME') != null) {
|
||||
//sends newsletter to selected users
|
||||
if ($request->has('user_emails')) {
|
||||
foreach ($request->user_emails as $key => $email) {
|
||||
$array['view'] = 'emails.newsletter';
|
||||
$array['subject'] = $request->subject;
|
||||
$array['from'] = env('MAIL_USERNAME');
|
||||
$array['content'] = $request->content;
|
||||
|
||||
try {
|
||||
Mail::to($email)->queue(new EmailManager($array));
|
||||
} catch (\Exception $e) {
|
||||
//dd($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
flash(translate('Please configure SMTP first'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
flash(translate('Newsletter has been send'))->success();
|
||||
return redirect()->route('newsletters.index');
|
||||
}
|
||||
|
||||
public function testEmail(Request $request){
|
||||
$array['view'] = 'emails.newsletter';
|
||||
$array['subject'] = "SMTP Test";
|
||||
$array['from'] = env('MAIL_USERNAME');
|
||||
$array['content'] = "This is a test email.";
|
||||
|
||||
try {
|
||||
Mail::to($request->email)->queue(new EmailManager($array));
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
flash(translate('An email has been sent.'))->success();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
68
app/Http/Controllers/NotificationController.php
Normal file
68
app/Http/Controllers/NotificationController.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Notification;
|
||||
use App\Models\User;
|
||||
use Auth;
|
||||
use Str;
|
||||
|
||||
class NotificationController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$notifications = Notification::latest()->where('notifiable_id',Auth()->user()->id)->paginate(10);
|
||||
return view('admin.notifications',compact('notifications'));
|
||||
}
|
||||
|
||||
public function frontend_notify_listing()
|
||||
{
|
||||
$notifications = Notification::latest()->where('notifiable_id',Auth()->user()->id)->paginate(10);
|
||||
return view('frontend.member.notifications',compact('notifications'));
|
||||
}
|
||||
|
||||
public function notification_view($id)
|
||||
{
|
||||
$notification = Notification::findOrFail($id);
|
||||
$notification_data = json_decode($notification->data);
|
||||
|
||||
// Notification seen
|
||||
if($notification->read_at == null)
|
||||
{
|
||||
$notification->read_at = date('Y-m-d');
|
||||
$notification->save();
|
||||
}
|
||||
|
||||
if($notification_data->type == 'member_registration' && !Str::contains($notification_data->route,'http'))
|
||||
{
|
||||
$membership = User::where('id',$notification_data->notify_by)->first()->membership;
|
||||
return redirect()->route($notification_data->route, $membership);
|
||||
}
|
||||
else {
|
||||
if(Str::contains($notification_data->route,'http')){
|
||||
return redirect($notification_data->route);
|
||||
}
|
||||
else{
|
||||
return redirect()->route($notification_data->route);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function mark_all_as_read(){
|
||||
$notifications = Notification::where('notifiable_id',Auth::user()->id)->where('read_at',null)->get();
|
||||
foreach($notifications as $notification){
|
||||
$notification->read_at = date('Y-m-d');
|
||||
$notification->save();
|
||||
}
|
||||
flash('All notifications are marked as read.')->success();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
153
app/Http/Controllers/OnBehalfController.php
Normal file
153
app/Http/Controllers/OnBehalfController.php
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\OnBehalf;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class OnBehalfController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_on_behalves'])->only('index');
|
||||
$this->middleware(['permission:edit_on_behalf'])->only('edit');
|
||||
$this->middleware(['permission:delete_on_behalf'])->only('destroy');
|
||||
|
||||
$this->on_behalf_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
];
|
||||
|
||||
$this->on_behalf_messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$sort_search = null;
|
||||
$on_behalves = OnBehalf::latest();
|
||||
|
||||
if ($request->has('search')){
|
||||
$sort_search = $request->search;
|
||||
$on_behalves = $on_behalves->where('name', 'like', '%'.$sort_search.'%');
|
||||
}
|
||||
$on_behalves = $on_behalves->paginate(10);
|
||||
return view('admin.member_profile_attributes.on_behalfs.index', compact('on_behalves','sort_search'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->on_behalf_rules;
|
||||
$messages = $this->on_behalf_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$on_behalf = new OnBehalf;
|
||||
$on_behalf->name = $request->name;
|
||||
if($on_behalf->save()){
|
||||
flash(translate('New on behalf has been added successfully'))->success();
|
||||
return redirect()->route('on-behalf.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$on_behalf = OnBehalf::findOrFail(decrypt($id));
|
||||
return view('admin.member_profile_attributes.on_behalfs.edit', compact('on_behalf'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->on_behalf_rules;
|
||||
$messages = $this->on_behalf_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$on_behalf = OnBehalf::findOrFail($id);
|
||||
$on_behalf->name = $request->name;
|
||||
if($on_behalf->save()){
|
||||
flash(translate('On behalf info has been updated successfully'))->success();
|
||||
return redirect()->route('on-behalf.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(OnBehalf::destroy($id)){
|
||||
flash(translate('On behalf info has been deleted successfully'))->success();
|
||||
return redirect()->route('on-behalf.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
228
app/Http/Controllers/PackageController.php
Normal file
228
app/Http/Controllers/PackageController.php
Normal file
@ -0,0 +1,228 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Package;
|
||||
use App\Models\Member;
|
||||
use Redirect;
|
||||
use Validator;
|
||||
|
||||
class PackageController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_packages'])->only('index');
|
||||
$this->middleware(['permission:add_package'])->only('create');
|
||||
$this->middleware(['permission:edit_package'])->only('edit');
|
||||
$this->middleware(['permission:delete_package'])->only('destroy');
|
||||
|
||||
$this->package_rules = [
|
||||
'name' => ['required','max:255'],
|
||||
'price' => ['required'],
|
||||
'express_interest' => ['required'],
|
||||
'photo_gallery' => ['required'],
|
||||
'contact' => ['required'],
|
||||
'profile_image_view'=> ['required'],
|
||||
'gallery_image_view'=> ['required'],
|
||||
'validity' => ['required'],
|
||||
];
|
||||
|
||||
$this->package_messages = [
|
||||
'name.required' => translate('Name is required'),
|
||||
'name.max' => translate('Max 255 characters'),
|
||||
'price.required' => translate('Package Price is required'),
|
||||
'express_interest.required' => translate('No. of Express Interest is required'),
|
||||
'photo_gallery.required' => translate('No. of Photo gallery is required'),
|
||||
'contact.required' => translate('No. of Contact View is required'),
|
||||
'profile_image_view.required'=> translate('No. of Profile Image View is required'),
|
||||
'gallery_image_view.required'=> translate('No. of Gallery Image View View is required'),
|
||||
'validity.required' => translate('Package Validity day is required'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$packages = Package::paginate(10);
|
||||
return view('admin.premium_packages.index', compact('packages'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.premium_packages.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$rules = $this->package_rules;
|
||||
$messages = $this->package_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$package = new Package;
|
||||
$package->name = $request->name;
|
||||
$package->price = filter_min_value($request->price);
|
||||
$package->express_interest = filter_min_value($request->express_interest);
|
||||
$package->photo_gallery = filter_min_value($request->photo_gallery);
|
||||
$package->contact = filter_min_value($request->contact);
|
||||
$package->profile_image_view= filter_min_value($request->profile_image_view);
|
||||
$package->gallery_image_view= filter_min_value($request->gallery_image_view);
|
||||
if ($request->auto_profile_match != null) {
|
||||
$package->auto_profile_match = 1;
|
||||
}
|
||||
else {
|
||||
$package->auto_profile_match = 0;
|
||||
}
|
||||
$package->validity = filter_min_value($request->validity);
|
||||
$package->image = $request->package_image;
|
||||
|
||||
if($package->save()){
|
||||
flash(translate('New Package has been added successfully'))->success();
|
||||
return redirect()->route('packages.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$package = Package::findOrFail(decrypt($id));
|
||||
return view('admin.premium_packages.edit', compact('package'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$rules = $this->package_rules;
|
||||
$messages = $this->package_messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Sorry! Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$package = Package::findOrFail($id);
|
||||
$package->name = $request->name;
|
||||
$package->price = filter_min_value($request->price);
|
||||
$package->express_interest = filter_min_value($request->express_interest);
|
||||
$package->photo_gallery = filter_min_value($request->photo_gallery);
|
||||
$package->contact = filter_min_value($request->contact);
|
||||
$package->profile_image_view= filter_min_value($request->profile_image_view);
|
||||
$package->gallery_image_view= filter_min_value($request->gallery_image_view);
|
||||
if ($request->auto_profile_match != null) {
|
||||
$package->auto_profile_match = 1;
|
||||
}
|
||||
else {
|
||||
$package->auto_profile_match = 0;
|
||||
}
|
||||
$package->validity = filter_min_value($request->validity);
|
||||
$package->image = $request->package_image;
|
||||
if($package->save()){
|
||||
flash(translate('Package info has been updated successfully'))->success();
|
||||
return redirect()->route('packages.index');
|
||||
} else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
// Update Package Activate status
|
||||
public function update_package_activation_status(Request $request)
|
||||
{
|
||||
$package = Package::findOrFail($request->id);
|
||||
$package->active = $request->status;
|
||||
if ($package->save()) {
|
||||
$msg = $package->status == 1 ? translate('Enabled') : translate('Disabled');
|
||||
flash(translate($msg))->success();
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(Package::destroy($id)){
|
||||
flash(translate('Package info has been deleted successfully'))->success();
|
||||
return redirect()->route('packages.index');
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
public function select_package()
|
||||
{
|
||||
$packages = Package::where('active', '1')->get();
|
||||
return view('frontend.package.packages', compact('packages'));
|
||||
|
||||
}
|
||||
|
||||
public function package_payemnt_methods($id)
|
||||
{
|
||||
$package = Package::where('id',decrypt($id))->first();
|
||||
return view('frontend.package.select_payemnt_method', compact('package'));
|
||||
}
|
||||
|
||||
function check_for_package_invalid(){
|
||||
$members = Member::all();
|
||||
foreach($members as $member){
|
||||
$package_expire_date = $member->package_validity;
|
||||
if($package_expire_date < date('Y-m-d')){
|
||||
$member->package_validity = null;
|
||||
$member->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
381
app/Http/Controllers/PackagePaymentController.php
Normal file
381
app/Http/Controllers/PackagePaymentController.php
Normal file
@ -0,0 +1,381 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Notifications\DbStoreNotification;
|
||||
use Notification;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Utility\EmailUtility;
|
||||
use App\Utility\SmsUtility;
|
||||
use App\Models\PackagePayment;
|
||||
use App\Models\Member;
|
||||
use App\Models\Package;
|
||||
use App\Models\Wallet;
|
||||
use App\Models\User;
|
||||
use Auth;
|
||||
use Kutia\Larafirebase\Facades\Larafirebase;
|
||||
use Session;
|
||||
|
||||
class PackagePaymentController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_package_payments'])->only('index');
|
||||
$this->middleware(['permission:manage_package_manual_payemnts'])->only('show');
|
||||
$this->middleware(['permission:view_package_payment_invoice'])->only('package_payment_invoice_admin');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$per_page = 10;
|
||||
$package_payments = PackagePayment::latest()->paginate($per_page);
|
||||
return view('admin.package_payments.index', compact('package_payments', 'per_page'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
$data['amount'] = $request->amount;
|
||||
$data['package_id'] = $request->package_id;
|
||||
$data['payment_method'] = $request->payment_option;
|
||||
|
||||
$request->session()->put('payment_type', 'package_payment');
|
||||
$request->session()->put('payment_data', $data);
|
||||
|
||||
if ($request->payment_option == 'paypal') {
|
||||
$paypal = new PaypalController();
|
||||
return $paypal->pay();
|
||||
} elseif ($request->payment_option == 'instamojo') {
|
||||
$instamojo = new InstamojoController();
|
||||
return $instamojo->pay($request);
|
||||
} elseif ($request->payment_option == 'stripe') {
|
||||
$stripe = new StripeController();
|
||||
return $stripe->pay();
|
||||
} elseif ($request->payment_option == 'razorpay') {
|
||||
$razorpay = new RazorpayController();
|
||||
return $razorpay->pay($request);
|
||||
} elseif ($request->payment_option == 'paystack') {
|
||||
$paystack = new PaystackController();
|
||||
return $paystack->redirectToGateway($request);
|
||||
} elseif ($request->payment_option == 'paytm') {
|
||||
$paystack = new PaytmController();
|
||||
return $paystack->index($request);
|
||||
} elseif ($request->payment_option == 'wallet') {
|
||||
if ($user->balance < $request->amount) {
|
||||
flash(translate('You do not have enough balance.'))->error();
|
||||
return back();
|
||||
} else {
|
||||
$user->balance = $user->balance - $request->amount;
|
||||
$user->save();
|
||||
return $this->package_payment_done($request->session()->get('payment_data'), null);
|
||||
}
|
||||
} elseif ($request->payment_option == 'manual_payment_1' || $request->payment_option == 'manual_payment_2') {
|
||||
$package_payment = new PackagePayment();
|
||||
$package_payment->payment_code = date('ymd-His');
|
||||
$package_payment->user_id = $user->id;
|
||||
$package_payment->package_id = $request->package_id;
|
||||
$package_payment->payment_method = 'manual_payment';
|
||||
$package_payment->payment_status = 'Due';
|
||||
$package_payment->amount = $request->amount;
|
||||
$package_payment->payment_details = '';
|
||||
$package_payment->offline_payment = 1;
|
||||
$package_payment->custom_payment_name = get_setting($request->payment_option . '_name');
|
||||
$package_payment->custom_payment_transaction_id = $request->transaction_id;
|
||||
$package_payment->custom_payment_proof = $request->payment_proof;
|
||||
$package_payment->custom_payment_details = $request->payment_details;
|
||||
|
||||
$package_payment->save();
|
||||
|
||||
// Package Payment Store Notification for member
|
||||
try {
|
||||
$notify_type = 'package_purchase';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $package_payment->id;
|
||||
$message = $user->first_name . ' ' . $user->last_name . translate('has been purchased a new package. Payment Code: ') . $package_payment->payment_code;
|
||||
$route = route('package-payments.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('user_type', 'admin')
|
||||
->whereNotNull('fcm_token')
|
||||
->pluck('fcm_token')
|
||||
->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Payment approval email send to member
|
||||
if ($user->email != null && get_email_template('package_purchase_email', 'status')) {
|
||||
EmailUtility::package_purchase_email($user, $package_payment);
|
||||
}
|
||||
|
||||
Session::forget('payment_data');
|
||||
Session::forget('payment_type');
|
||||
|
||||
flash(translate('Payment completed'))->success();
|
||||
return redirect()->route('package_payment.invoice', $package_payment->id);
|
||||
}
|
||||
}
|
||||
|
||||
public function package_payment_done($payment_data, $payment_details)
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
$package_payment = new PackagePayment();
|
||||
$package_payment->payment_code = date('ymd-His');
|
||||
$package_payment->user_id = $user->id;
|
||||
$package_payment->package_id = $payment_data['package_id'];
|
||||
$package_payment->payment_method = $payment_data['payment_method'];
|
||||
$package_payment->payment_status = 'Paid';
|
||||
$package_payment->amount = $payment_data['amount'];
|
||||
$package_payment->payment_details = $payment_details;
|
||||
$package_payment->offline_payment = 2;
|
||||
$package_payment->save();
|
||||
|
||||
$member = Member::where('user_id', $user->id)->first();
|
||||
$package = Package::where('id', $payment_data['package_id'])->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $member->remaining_interest + $package->express_interest;
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery + $package->photo_gallery;
|
||||
$member->remaining_contact_view = $member->remaining_contact_view + $package->contact;
|
||||
$member->remaining_profile_image_view = $member->remaining_profile_image_view + $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $member->remaining_gallery_image_view + $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = date('Y-m-d', strtotime($member->package_validity . ' +' . $package->validity . 'days'));
|
||||
|
||||
if ($member->save()) {
|
||||
$user->membership = 2;
|
||||
$user->save();
|
||||
|
||||
if (addon_activation('referral_system') && $user->referred_by != null && $user->referral_comission == 0) {
|
||||
// For Referred by user
|
||||
$reffered_by = User::where('id', $user->referred_by)->first();
|
||||
$wallet = new Wallet();
|
||||
$wallet->user_id = $reffered_by->id;
|
||||
$wallet->amount = get_setting('referred_by_user_commission');
|
||||
$wallet->payment_method = 'reffered_commission';
|
||||
$wallet->payment_details = '';
|
||||
$wallet->referral_user = $user->id;
|
||||
$wallet->save();
|
||||
|
||||
$reffered_by->balance = $reffered_by->balance + get_setting('referred_by_user_commission');
|
||||
$reffered_by->save();
|
||||
|
||||
$user->referral_comission = 1;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
// Package Payment Store Notification for member
|
||||
try {
|
||||
$notify_type = 'package_purchase';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $package_payment->id;
|
||||
$message = $user->first_name . ' ' . $user->last_name . translate('has been purchased a new package. Payment Code: ') . $package_payment->payment_code;
|
||||
$route = route('package-payments.index');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('user_type', 'admin')
|
||||
->whereNotNull('fcm_token')
|
||||
->pluck('fcm_token')
|
||||
->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send(User::where('user_type', 'admin')->first(), new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Payment approval email send to member
|
||||
if ($user->email != null && get_email_template('package_purchase_email', 'status')) {
|
||||
EmailUtility::package_purchase_email($user, $package_payment);
|
||||
}
|
||||
}
|
||||
|
||||
Session::forget('payment_data');
|
||||
Session::forget('payment_type');
|
||||
|
||||
flash(translate('Payment completed'))->success();
|
||||
return redirect()->route('package_payment.invoice', $package_payment->id);
|
||||
}
|
||||
|
||||
public function package_purchase_history(Request $request)
|
||||
{
|
||||
$package_payments = PackagePayment::latest()
|
||||
->where('user_id', Auth::user()->id)
|
||||
->paginate(10);
|
||||
return view('frontend.member.package_payment_history', compact('package_payments'));
|
||||
}
|
||||
|
||||
public function package_payment_invoice($id)
|
||||
{
|
||||
$payment = PackagePayment::findOrFail($id);
|
||||
return view('frontend.member.payment_invoice', compact('payment'));
|
||||
}
|
||||
|
||||
public function package_payment_invoice_admin($id)
|
||||
{
|
||||
$payment = PackagePayment::findOrFail($id);
|
||||
return view('admin.package_payments.payment_invoice', compact('payment'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
$package_payment = PackagePayment::findOrFail($id);
|
||||
return view('admin.package_payments.payment_details', compact('package_payment'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function manual_payment_accept($id)
|
||||
{
|
||||
$package_payment = PackagePayment::findOrFail($id);
|
||||
$user = User::where('id', $package_payment->user_id)->first();
|
||||
$member = Member::where('user_id', $user->id)->first();
|
||||
$package = Package::where('id', $package_payment->package_id)->first();
|
||||
$member->current_package_id = $package->id;
|
||||
$member->remaining_interest = $member->remaining_interest + $package->express_interest;
|
||||
$member->remaining_photo_gallery = $member->remaining_photo_gallery + $package->photo_gallery;
|
||||
$member->remaining_contact_view = $member->remaining_contact_view + $package->contact;
|
||||
$member->remaining_profile_image_view = $member->remaining_profile_image_view + $package->profile_image_view;
|
||||
$member->remaining_gallery_image_view = $member->remaining_gallery_image_view + $package->gallery_image_view;
|
||||
$member->auto_profile_match = $package->auto_profile_match;
|
||||
$member->package_validity = date('Y-m-d', strtotime($member->package_validity . ' +' . $package->validity . 'days'));
|
||||
|
||||
if ($member->save()) {
|
||||
$package_payment->payment_status = 'Paid';
|
||||
$package_payment->save();
|
||||
|
||||
$user->membership = 2;
|
||||
$user->save();
|
||||
|
||||
if (addon_activation('referral_system') && $user->referred_by != null && $user->referral_comission == 0) {
|
||||
// For Referred by user
|
||||
$reffered_by = User::where('id', $user->referred_by)->first();
|
||||
$wallet = new Wallet();
|
||||
$wallet->user_id = $reffered_by->id;
|
||||
$wallet->amount = get_setting('referred_by_user_commission');
|
||||
$wallet->payment_method = 'reffered_commission';
|
||||
$wallet->referral_user = $user->id;
|
||||
$wallet->save();
|
||||
|
||||
$reffered_by->balance = $reffered_by->balance + get_setting('referred_by_user_commission');
|
||||
$reffered_by->save();
|
||||
|
||||
$user->referral_comission = 1;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
// Payment approval Store Notification for member
|
||||
try {
|
||||
$notify_type = 'payemnt_approval';
|
||||
$id = unique_notify_id();
|
||||
$notify_by = $user->id;
|
||||
$info_id = $package_payment->id;
|
||||
$message = translate('Your payment for package ') . $package_payment->package->name . translate(' has been approved. Payment Id: ') . $package_payment->payment_code;
|
||||
$route = route('package_purchase_history');
|
||||
|
||||
// fcm
|
||||
if (get_setting('firebase_push_notification') == 1) {
|
||||
$fcmTokens = User::where('id', $user->id)
|
||||
->whereNotNull('fcm_token')
|
||||
->pluck('fcm_token')
|
||||
->toArray();
|
||||
Larafirebase::withTitle($notify_type)
|
||||
->withBody($message)
|
||||
->sendMessage($fcmTokens);
|
||||
}
|
||||
// end of fcm
|
||||
|
||||
Notification::send($user, new DbStoreNotification($notify_type, $id, $notify_by, $info_id, $message, $route));
|
||||
} catch (\Exception $e) {
|
||||
// dd($e);
|
||||
}
|
||||
|
||||
// Payment approval email send to member
|
||||
if ($user->email != null && get_email_template('manual_payment_approval_email', 'status')) {
|
||||
EmailUtility::manual_payment_approval_email($user, $package_payment);
|
||||
}
|
||||
|
||||
// Payment approval SMS send to member
|
||||
if ($user->phone != null && addon_activation('otp_system') && get_sms_template('manual_payment_approval', 'status')) {
|
||||
SmsUtility::manual_payment_approval($user, $package_payment);
|
||||
}
|
||||
}
|
||||
|
||||
flash(translate('Payemnt accepted successfully.'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
155
app/Http/Controllers/PageController.php
Normal file
155
app/Http/Controllers/PageController.php
Normal file
@ -0,0 +1,155 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Page;
|
||||
use MehediIitdu\CoreComponentRepository\CoreComponentRepository;
|
||||
|
||||
class PageController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['permission:show_all_pages'])->only('index');
|
||||
$this->middleware(['permission:add_pages'])->only('create');
|
||||
$this->middleware(['permission:edit_pages'])->only('edit');
|
||||
$this->middleware(['permission:delete_pages'])->only('destroy');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
CoreComponentRepository::instantiateShopRepository();
|
||||
CoreComponentRepository::initializeCache();
|
||||
$pages = Page::paginate(10);
|
||||
return view('admin.website_settings.pages.index', compact('pages'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.website_settings.pages.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$page = new Page;
|
||||
$page->title = $request->title;
|
||||
if (Page::where('slug', preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)))->first() == null) {
|
||||
$page->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug));
|
||||
$page->type = "custom_page";
|
||||
$page->content = $request->content;
|
||||
$page->meta_title = $request->meta_title;
|
||||
$page->meta_description = $request->meta_description;
|
||||
$page->keywords = $request->keywords;
|
||||
$page->meta_image = $request->meta_image;
|
||||
$page->save();
|
||||
|
||||
flash(translate('New page has been created successfully'))->success();
|
||||
return redirect()->route('custom-pages.index');
|
||||
}
|
||||
|
||||
flash(translate('Slug has been used already'))->warning();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(Request $request, $id)
|
||||
{
|
||||
$page_name = $request->page;
|
||||
$page = Page::where('slug', $id)->first();
|
||||
if($page != null){
|
||||
if ($page_name == 'home') {
|
||||
return view('admin.website_settings.pages.home_page_edit', compact('page'));
|
||||
}
|
||||
else{
|
||||
return view('admin.website_settings.pages.edit', compact('page'));
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$page = Page::findOrFail($id);
|
||||
if (Page::where('id','!=', $id)->where('slug', preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug)))->first() == null) {
|
||||
if($page->type == 'custom_page'){
|
||||
$page->slug = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $request->slug));
|
||||
}
|
||||
$page->title = $request->title;
|
||||
$page->content = $request->content;
|
||||
$page->meta_title = $request->meta_title;
|
||||
$page->meta_description = $request->meta_description;
|
||||
$page->keywords = $request->keywords;
|
||||
$page->meta_image = $request->meta_image;
|
||||
$page->save();
|
||||
|
||||
flash(translate('Page has been updated successfully'))->success();
|
||||
return redirect()->route('custom-pages.index');
|
||||
}
|
||||
|
||||
flash(translate('Slug has been used already'))->warning();
|
||||
return back();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
if(Page::destroy($id)){
|
||||
flash(translate('Page has been deleted successfully'))->success();
|
||||
return redirect()->back();
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function show_custom_page($slug){
|
||||
$page = Page::where('slug', $slug)->first();
|
||||
if($page != null){
|
||||
return view('frontend.custom_page', compact('page'));
|
||||
}
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
170
app/Http/Controllers/PartnerExpectationController.php
Normal file
170
app/Http/Controllers/PartnerExpectationController.php
Normal file
@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\PartnerExpectation;
|
||||
use App\Models\User;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class PartnerExpectationController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'general' => [ 'max:255'],
|
||||
'partner_height' => [ 'max:50'],
|
||||
'partner_weight' => [ 'max:50'],
|
||||
'partner_children_acceptable' => [ 'max:20'],
|
||||
'pertner_education' => [ 'max:255'],
|
||||
'partner_profession' => [ 'max:50'],
|
||||
'smoking_acceptable' => [ 'max:20'],
|
||||
'drinking_acceptable' => [ 'max:20'],
|
||||
'partner_diet' => [ 'max:50'],
|
||||
'partner_body_type' => [ 'max:50'],
|
||||
'partner_personal_value' => [ 'max:50'],
|
||||
'partner_manglik' => [ 'max:50'],
|
||||
'pertner_complexion' => [ 'max:50'],
|
||||
];
|
||||
$this->messages = [
|
||||
'general.max' => translate('Max 255 characters'),
|
||||
'partner_height.max' => translate('Max 50 characters'),
|
||||
'partner_weight.max' => translate('Max 50 characters'),
|
||||
'partner_children_acceptable.max' => translate('Max 20 characters'),
|
||||
'pertner_education.max' => translate('Max 255 characters'),
|
||||
'partner_profession.max' => translate('Max 50 characters'),
|
||||
'smoking_acceptable.max' => translate('Max 20 characters'),
|
||||
'drinking_acceptable.max' => translate('Max 20 characters'),
|
||||
'partner_diet.max' => translate('Max 50 characters'),
|
||||
'partner_body_type.max' => translate('Max 50 characters'),
|
||||
'partner_personal_value.max' => translate('Max 50 characters'),
|
||||
'partner_manglik.max' => translate('Max 50 characters'),
|
||||
'pertner_complexion.max' => translate('Max 50 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$user = User::where('id',$id)->first();
|
||||
$partner_expectations = PartnerExpectation::where('user_id', $id)->first();
|
||||
if(empty($partner_expectations)){
|
||||
$partner_expectations = new PartnerExpectation;
|
||||
$partner_expectations->user_id = $id;
|
||||
}
|
||||
|
||||
$partner_expectations->general = $request->general;
|
||||
$partner_expectations->height = $request->partner_height;
|
||||
$partner_expectations->weight = $request->partner_weight;
|
||||
$partner_expectations->marital_status_id = $request->partner_marital_status;
|
||||
$partner_expectations->children_acceptable = $request->partner_children_acceptable;
|
||||
$partner_expectations->residence_country_id = $request->residence_country_id;
|
||||
$partner_expectations->religion_id = $request->partner_religion_id;
|
||||
$partner_expectations->caste_id = $request->partner_caste_id;
|
||||
$partner_expectations->sub_caste_id = $request->partner_sub_caste_id;
|
||||
$partner_expectations->education = $request->pertner_education;
|
||||
$partner_expectations->profession = $request->partner_profession;
|
||||
$partner_expectations->smoking_acceptable = $request->smoking_acceptable;
|
||||
$partner_expectations->drinking_acceptable = $request->drinking_acceptable;
|
||||
$partner_expectations->diet = $request->partner_diet;
|
||||
$partner_expectations->body_type = $request->partner_body_type;
|
||||
$partner_expectations->personal_value = $request->partner_personal_value;
|
||||
$partner_expectations->manglik = $request->partner_manglik;
|
||||
$partner_expectations->language_id = $request->language_id;
|
||||
$partner_expectations->family_value_id = $request->family_value_id;
|
||||
$partner_expectations->preferred_country_id = $request->partner_country_id;
|
||||
$partner_expectations->preferred_state_id = $request->partner_state_id;
|
||||
$partner_expectations->complexion = $request->pertner_complexion;
|
||||
|
||||
if($partner_expectations->save()){
|
||||
if($user->member->auto_profile_match == 1){
|
||||
$ProfileMatchController = new ProfileMatchController;
|
||||
$ProfileMatchController->match_profiles($user->id);
|
||||
}
|
||||
flash(translate('Partner Expectations Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
114
app/Http/Controllers/PaypalController.php
Normal file
114
app/Http/Controllers/PaypalController.php
Normal file
@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Redirect;
|
||||
use Session;
|
||||
use PayPalCheckoutSdk\Core\PayPalHttpClient;
|
||||
use PayPalCheckoutSdk\Core\SandboxEnvironment;
|
||||
use PayPalCheckoutSdk\Core\ProductionEnvironment;
|
||||
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
|
||||
use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
|
||||
use App\Http\Controllers\PackagePaymentController;
|
||||
|
||||
class PaypalController extends Controller
|
||||
{
|
||||
|
||||
public function pay()
|
||||
{
|
||||
// dd(Session::get('payment_data')['amount']);
|
||||
// Creating an environment
|
||||
$clientId = env('PAYPAL_CLIENT_ID');
|
||||
$clientSecret = env('PAYPAL_CLIENT_SECRET');
|
||||
|
||||
if (get_setting('paypal_sandbox') == 1) {
|
||||
$environment = new SandboxEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
else {
|
||||
$environment = new ProductionEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
$client = new PayPalHttpClient($environment);
|
||||
|
||||
if(Session::has('payment_type')){
|
||||
$amount = Session::get('payment_data')['amount'];
|
||||
}
|
||||
|
||||
$request = new OrdersCreateRequest();
|
||||
$request->prefer('return=representation');
|
||||
$request->body = [
|
||||
"intent" => "CAPTURE",
|
||||
"purchase_units" => [[
|
||||
"reference_id" => rand(000000,999999),
|
||||
"amount" => [
|
||||
"value" => $amount,
|
||||
"currency_code" => \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code
|
||||
]
|
||||
]],
|
||||
"application_context" => [
|
||||
"cancel_url" => url('paypal/payment/cancel'),
|
||||
"return_url" => url('paypal/payment/done')
|
||||
]
|
||||
];
|
||||
try {
|
||||
// Call API with your client and get a response for your call
|
||||
$response = $client->execute($request);
|
||||
// If call returns body in response, you can get the deserialized version from the result attribute of the response
|
||||
return Redirect::to($response->result->links[1]->href);
|
||||
}catch (HttpException $ex) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getCancel(Request $request)
|
||||
{
|
||||
// Curse and humiliate the user for cancelling this most sacred payment (yours)
|
||||
$request->session()->forget('payment_data');
|
||||
$request->session()->forget('payment_type');
|
||||
flash(translate('Payment cancelled'))->success();
|
||||
return redirect()->route('home');
|
||||
}
|
||||
|
||||
public function getDone(Request $request)
|
||||
{
|
||||
//dd($request->all());
|
||||
// Creating an environment
|
||||
$clientId = env('PAYPAL_CLIENT_ID');
|
||||
$clientSecret = env('PAYPAL_CLIENT_SECRET');
|
||||
|
||||
if (get_setting('paypal_sandbox') == 1) {
|
||||
$environment = new SandboxEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
else {
|
||||
$environment = new ProductionEnvironment($clientId, $clientSecret);
|
||||
}
|
||||
$client = new PayPalHttpClient($environment);
|
||||
|
||||
// $response->result->id gives the orderId of the order created above
|
||||
|
||||
$ordersCaptureRequest = new OrdersCaptureRequest($request->token);
|
||||
$ordersCaptureRequest->prefer('return=representation');
|
||||
try {
|
||||
// Call API with your client and get a response for your call
|
||||
$response = $client->execute($ordersCaptureRequest);
|
||||
|
||||
// If call returns body in response, you can get the deserialized version from the result attribute of the response
|
||||
if($request->session()->has('payment_type')){
|
||||
|
||||
if ($request->session()->get('payment_type') == 'package_payment') {
|
||||
$packagePaymentController = new PackagePaymentController;
|
||||
return $packagePaymentController->package_payment_done($request->session()->get('payment_data'), json_encode($response));
|
||||
}
|
||||
|
||||
elseif ($request->session()->get('payment_type') == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done($request->session()->get('payment_data'), json_encode($response));
|
||||
}
|
||||
|
||||
}
|
||||
}catch (HttpException $ex) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
56
app/Http/Controllers/PaystackController.php
Normal file
56
app/Http/Controllers/PaystackController.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use GuzzleHttp\Client;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests;
|
||||
use Auth;
|
||||
use Session;
|
||||
use Redirect;
|
||||
use Paystack;
|
||||
|
||||
class PaystackController extends Controller
|
||||
{
|
||||
public function redirectToGateway(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
$request->email = $user->email;
|
||||
$request->amount = round(Session::get('payment_data')['amount'] * 100);
|
||||
$request->currency = env('PAYSTACK_CURRENCY_CODE', 'NGN');
|
||||
$request->reference = Paystack::genTranxRef();
|
||||
return Paystack::getAuthorizationUrl()->redirectNow();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtain Paystack payment information
|
||||
* @return void
|
||||
*/
|
||||
public function handleGatewayCallback()
|
||||
{
|
||||
// Now you have the payment details,
|
||||
// you can store the authorization_code in your db to allow for recurrent subscriptions
|
||||
// you can then redirect or do whatever you want
|
||||
if(Session::has('payment_type')){
|
||||
$payment = Paystack::getPaymentData();
|
||||
$payment_detalis = json_encode($payment);
|
||||
if (!empty($payment['data']) && $payment['data']['status'] == 'success') {
|
||||
if (Session::get('payment_type') == 'package_payment') {
|
||||
$packagePaymentController = new PackagePaymentController;
|
||||
return $packagePaymentController->package_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
elseif (Session::get('payment_type') == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
}
|
||||
|
||||
Session::forget('payment_data');
|
||||
Session::forget('payment_type');
|
||||
flash(translate('Payment cancelled'))->error();
|
||||
return redirect()->route('home');
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
app/Http/Controllers/PaytmController.php
Normal file
120
app/Http/Controllers/PaytmController.php
Normal file
@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use App\Models\Transaction;
|
||||
use Session;
|
||||
use PaytmWallet;
|
||||
use Auth;
|
||||
|
||||
class PaytmController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
if(Session::has('payment_type')){
|
||||
$transaction = new Transaction;
|
||||
$transaction->user_id = Auth::user()->id;
|
||||
$transaction->gateway = 'paytm';
|
||||
$transaction->payment_type = Session::get('payment_type');
|
||||
$transaction->additional_content = json_encode(Session::get('payment_data'));
|
||||
$transaction->save();
|
||||
|
||||
$amount = Session::get('payment_data')['amount'];
|
||||
if(Auth::user()->phone != null){
|
||||
$amount= Session::get('payment_data')['amount'];
|
||||
$payment = PaytmWallet::with('receive');
|
||||
$payment->prepare([
|
||||
'order' => $transaction->id,
|
||||
'user' => Auth::user()->id,
|
||||
'mobile_number' => Auth::user()->phone,
|
||||
'email' => Auth::user()->email,
|
||||
'amount' => $amount,
|
||||
'callback_url' => route('paytm.callback')
|
||||
]);
|
||||
return $payment->receive();
|
||||
}
|
||||
else {
|
||||
flash('Please add phone number to your profile')->warning();
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function callback(Request $request){
|
||||
$transaction = PaytmWallet::with('receive');
|
||||
|
||||
$response = $transaction->response(); // To get raw response as array
|
||||
//Check out response parameters sent by paytm here -> http://paywithpaytm.com/developer/paytm_api_doc?target=interpreting-response-sent-by-paytm
|
||||
|
||||
if($transaction->isSuccessful()){
|
||||
$transaction = Transaction::findOrFail($response['ORDERID']);
|
||||
Auth::login(User::findOrFail($transaction->user_id));
|
||||
if($transaction->payment_type == 'package_payment'){
|
||||
return (new PackagePaymentController)->package_payment_done(json_decode($transaction->additional_content, true), json_encode($response));
|
||||
}
|
||||
elseif ($transaction->payment_type == 'wallet_payment') {
|
||||
Auth::login(User::findOrFail($transaction->user_id));
|
||||
return (new WalletController)->wallet_payment_done(json_decode($transaction->additional_content, true), json_encode($response));
|
||||
}
|
||||
}
|
||||
|
||||
else if($transaction->isFailed()){
|
||||
$request->session()->forget('payment_data');
|
||||
flash(translate('Payment cancelled'))->error();
|
||||
return back();
|
||||
}else if($transaction->isOpen()){
|
||||
//Transaction Open/Processing
|
||||
}
|
||||
$transaction->getResponseMessage(); //Get Response Message If Available
|
||||
//get important parameters via public methods
|
||||
$transaction->getOrderId(); // Get order id
|
||||
$transaction->getTransactionId(); // Get transaction id
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function credentials_index()
|
||||
{
|
||||
return view('paytm.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in .env
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update_credentials(Request $request)
|
||||
{
|
||||
foreach ($request->types as $key => $type) {
|
||||
$this->overWriteEnvFile($type, $request[$type]);
|
||||
}
|
||||
|
||||
flash("Settings updated successfully")->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
*.env file overwrite
|
||||
*/
|
||||
public function overWriteEnvFile($type, $val)
|
||||
{
|
||||
$path = base_path('.env');
|
||||
if (file_exists($path)) {
|
||||
$val = '"'.trim($val).'"';
|
||||
if(is_numeric(strpos(file_get_contents($path), $type)) && strpos(file_get_contents($path), $type) >= 0){
|
||||
file_put_contents($path, str_replace(
|
||||
$type.'="'.env($type).'"', $type.'='.$val, file_get_contents($path)
|
||||
));
|
||||
}
|
||||
else{
|
||||
file_put_contents($path, file_get_contents($path)."\r\n".$type.'='.$val);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
153
app/Http/Controllers/PhysicalAttributeController.php
Normal file
153
app/Http/Controllers/PhysicalAttributeController.php
Normal file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class PhysicalAttributeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'height' => [ 'required','numeric'],
|
||||
'weight' => [ 'required','numeric'],
|
||||
'eye_color' => [ 'required','max:50'],
|
||||
'hair_color' => [ 'required','max:50'],
|
||||
'complexion' => [ 'required','max:50'],
|
||||
'blood_group' => [ 'required','max:3'],
|
||||
'body_type' => [ 'required','max:50'],
|
||||
'body_art' => [ 'required','max:50'],
|
||||
'disability' => [ 'max:255'],
|
||||
];
|
||||
$this->messages = [
|
||||
'height.required' => translate('Height is required'),
|
||||
'height.numeric' => translate('It should be numeric type'),
|
||||
'weight.required' => translate('Weight is required'),
|
||||
'weight.numeric' => translate('It should be numeric type'),
|
||||
'eye_color.required' => translate('Eye Color is required'),
|
||||
'eye_color.max' => translate('Max 50 characters'),
|
||||
'hair_color.required' => translate('Hair Color is required'),
|
||||
'hair_color.max' => translate('Max 50 characters'),
|
||||
'complexion.required' => translate('Complexion is required'),
|
||||
'complexion.max' => translate('Max 50 characters'),
|
||||
'blood_group.required' => translate('Blood Group is required'),
|
||||
'blood_group.max' => translate('Max 3 characters'),
|
||||
'body_type.required' => translate('Body Type is required'),
|
||||
'body_type.max' => translate('Max 50 characters'),
|
||||
'body_art.required' => translate('Body Art is required'),
|
||||
'body_art.max' => translate('Max 50 characters'),
|
||||
'disability.max' => translate('Max 255 characters'),
|
||||
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$physical_attribute = PhysicalAttribute::where('user_id', $id)->first();
|
||||
if(empty($physical_attribute)){
|
||||
$physical_attribute = new PhysicalAttribute;
|
||||
$physical_attribute->user_id = $id;
|
||||
}
|
||||
|
||||
$physical_attribute->height = $request->height;
|
||||
$physical_attribute->weight = $request->weight;
|
||||
$physical_attribute->eye_color = $request->eye_color;
|
||||
$physical_attribute->hair_color = $request->hair_color;
|
||||
$physical_attribute->complexion = $request->complexion;
|
||||
$physical_attribute->blood_group = $request->blood_group;
|
||||
$physical_attribute->body_type = $request->body_type;
|
||||
$physical_attribute->body_art = $request->body_art;
|
||||
$physical_attribute->disability = $request->disability;
|
||||
|
||||
if($physical_attribute->save()){
|
||||
flash(translate('Physical Attribute Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
100
app/Http/Controllers/ProfileController.php
Normal file
100
app/Http/Controllers/ProfileController.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use Hash;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('admin.admin_profile.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$user = User::findOrFail($id);
|
||||
$user->first_name = $request->first_name;
|
||||
$user->last_name = $request->last_name;
|
||||
$user->email = $request->email;
|
||||
if($request->new_password != null && ($request->new_password == $request->confirm_password)){
|
||||
$user->password = Hash::make($request->new_password);
|
||||
}
|
||||
$user->photo = $request->photo;
|
||||
if($user->save()){
|
||||
flash(translate('Your Profile has been updated successfully!'))->success();
|
||||
return back();
|
||||
}
|
||||
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
336
app/Http/Controllers/ProfileMatchController.php
Normal file
336
app/Http/Controllers/ProfileMatchController.php
Normal file
@ -0,0 +1,336 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\ProfileMatch;
|
||||
use App\Models\Member;
|
||||
use App\Models\PhysicalAttribute;
|
||||
use App\Models\SpiritualBackground;
|
||||
use App\Models\Education;
|
||||
use App\Models\Career;
|
||||
use App\Models\Address;
|
||||
use App\Models\Lifestyle;
|
||||
use App\Models\User;
|
||||
|
||||
class ProfileMatchController extends Controller
|
||||
{
|
||||
|
||||
public function match_profiles($user = '')
|
||||
{
|
||||
if(empty($user))
|
||||
{
|
||||
$users = User::where('user_type','member')
|
||||
->where('blocked', 0)
|
||||
->where('approved', 1)
|
||||
->where('deactivated',0)->get();
|
||||
}
|
||||
else {
|
||||
$users = User::where('id', $user)->get();
|
||||
}
|
||||
|
||||
foreach ($users as $user) {
|
||||
$expectation_attributes = 0;
|
||||
$matches_attributes = 0;
|
||||
$match_percentage = 0;
|
||||
|
||||
$expected_residence_country = !empty($user->partner_expectations->residence_country_id) ? $user->partner_expectations->residence_country_id : "";
|
||||
$expected_min_height = !empty($user->partner_expectations->height) ? $user->partner_expectations->height : "";
|
||||
$expected_max_weight = !empty($user->partner_expectations->weight) ? $user->partner_expectations->weight : "";
|
||||
$expected_marital_status = !empty($user->partner_expectations->marital_status_id) ? $user->partner_expectations->marital_status_id : "";
|
||||
$expected_language = !empty($user->partner_expectations->language_id) ? $user->partner_expectations->language_id : "";
|
||||
|
||||
$expected_religion = !empty($user->partner_expectations->religion) ? $user->partner_expectations->religion : "";
|
||||
$expected_caste = !empty($user->partner_expectations->caste_id) ? $user->partner_expectations->caste_id : "";
|
||||
$expected_sub_caste_id = !empty($user->partner_expectations->sub_caste_id) ? $user->partner_expectations->sub_caste_id : "";
|
||||
|
||||
$expected_education = !empty($user->partner_expectations->education) ? $user->partner_expectations->education : "";
|
||||
$expected_profession = !empty($user->partner_expectations->profession) ? $user->partner_expectations->profession : "";
|
||||
|
||||
$expected_family_value = !empty($user->partner_expectations->family_value_id) ? $user->partner_expectations->family_value_id : "";
|
||||
$expected_smoking_condition = !empty($user->partner_expectations->smoking_acceptable) ? $user->partner_expectations->smoking_acceptable : "";
|
||||
$expected_drinking_condition = !empty($user->partner_expectations->drinking_acceptable) ? $user->partner_expectations->drinking_acceptable : "";
|
||||
$expected_diet_condition = !empty($user->partner_expectations->diet) ? $user->partner_expectations->diet : "";
|
||||
|
||||
$expected_state = !empty($user->partner_expectations->preferred_state_id) ? $user->partner_expectations->preferred_state_id : "";
|
||||
$expected_country = !empty($user->partner_expectations->preferred_country_id) ? $user->partner_expectations->preferred_country_id : "";
|
||||
|
||||
$partners = User::where('user_type','member')
|
||||
->where('id', '!=', $user->id)
|
||||
->where('blocked', 0)
|
||||
->where('approved', 1)
|
||||
->where('deactivated',0)->get();
|
||||
$user_ids = Member::where('gender', '!=', $user->member->gender)->pluck('user_id')->toArray();
|
||||
if(count($user_ids) >0){
|
||||
$partners = $partners->WhereIn('id', $user_ids);
|
||||
}
|
||||
|
||||
foreach ($partners as $partner) {
|
||||
|
||||
if(!empty($expected_residence_country)) {
|
||||
$expectation_attributes++;
|
||||
if(Address::where('user_id', $partner->id)->where('country_id', $expected_residence_country)->where('type', 'present')->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_min_height)) {
|
||||
$expectation_attributes++;
|
||||
if(PhysicalAttribute::where('user_id', $partner->id)->where('height', '>=', $expected_min_height)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_max_weight)) {
|
||||
$expectation_attributes++;
|
||||
if(PhysicalAttribute::where('user_id', $partner->id)->where('weight', '<=', $expected_max_weight)->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_marital_status)){
|
||||
$expectation_attributes++;
|
||||
if(Member::where('user_id', $partner->id)->where('marital_status_id', $expected_marital_status)->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
// Match by religion religion
|
||||
$match_religion_cast = 'no_need_check';
|
||||
if(!empty($expected_sub_caste_id)){
|
||||
if(SpiritualBackground::where('user_id', $partner->id)->where('sub_caste_id', $expected_sub_caste_id)->count() > 0 ){
|
||||
$expectation_attributes+=3;
|
||||
$matches_attributes+= 3;
|
||||
}
|
||||
else {
|
||||
$expectation_attributes++;
|
||||
$match_religion_cast = 'need_check';
|
||||
}
|
||||
}
|
||||
|
||||
if($match_religion_cast == 'need_check' && !empty($expected_caste)) {
|
||||
if(SpiritualBackground::where('user_id', $partner->id)->where('caste_id', $expected_caste)->count() > 0 ){
|
||||
$expectation_attributes+=2;
|
||||
$matches_attributes+=2;
|
||||
$match_religion_cast = 'no_need_check';
|
||||
}
|
||||
else {
|
||||
$expectation_attributes++;
|
||||
$match_religion_cast = 'need_check';
|
||||
}
|
||||
}
|
||||
|
||||
if($match_religion_cast == 'need_check' && !empty($expected_religion)) {
|
||||
$expectation_attributes++;
|
||||
if(SpiritualBackground::where('user_id', $partner->id)->where('religion_id', $expected_religion)->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
$match_religion = 'no_need_check';
|
||||
|
||||
if(!empty($expected_language)){
|
||||
$expectation_attributes++;
|
||||
if(Member::where('user_id', $partner->id)->where('mothere_tongue', $expected_language)->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_education)){
|
||||
$expectation_attributes++;
|
||||
if(Education::where('user_id', $partner->id)->where('degree', 'like', '%'.$expected_education.'%')->where('present',1)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_profession)){
|
||||
$expectation_attributes++;
|
||||
if(Career::where('user_id', $partner->id)->where('designation', 'like', '%'.$expected_profession.'%')->where('present',1)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_family_value)){
|
||||
$expectation_attributes++;
|
||||
if(SpiritualBackground::where('user_id', $partner->id)->where('family_value_id', $expected_family_value)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_smoking_condition)){
|
||||
$expectation_attributes++;
|
||||
if($expected_smoking_condition == "dose_not_matter"){
|
||||
$matches_attributes++;
|
||||
}
|
||||
elseif(Lifestyle::where('user_id', $partner->id)->where('smoke',$expected_smoking_condition)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_drinking_condition)){
|
||||
$expectation_attributes++;
|
||||
if($expected_drinking_condition == "dose_not_matter"){
|
||||
$matches_attributes++;
|
||||
}
|
||||
elseif(Lifestyle::where('user_id', $partner->id)->where('drink',$expected_drinking_condition)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($expected_diet_condition)){
|
||||
$expectation_attributes++;
|
||||
if($expected_diet_condition == "dose_not_matter"){
|
||||
$matches_attributes++;
|
||||
}
|
||||
elseif(Lifestyle::where('user_id', $partner->id)->where('diet',$expected_diet_condition)->count() > 0 ){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
|
||||
// match Preferred Country
|
||||
$expected_country_check = "no_need_check";
|
||||
if(!empty($expected_state)) {
|
||||
if(Address::where('user_id', $partner->id)->where('state_id', $expected_state)->where('type', 'permanent')->count() > 0){
|
||||
$expectation_attributes+=2;
|
||||
$matches_attributes+=2;
|
||||
}
|
||||
else {
|
||||
$expectation_attributes++;
|
||||
$expected_country_check = 'need_check';
|
||||
}
|
||||
}
|
||||
|
||||
if($expected_country_check == 'need_check' && !empty($expected_country)) {
|
||||
$expectation_attributes++;
|
||||
if(Address::where('user_id', $partner->id)->where('country_id', $expected_state)->where('type', 'permanent')->count() > 0){
|
||||
$matches_attributes++;
|
||||
}
|
||||
}
|
||||
$expected_country_check = 'no_need_check';
|
||||
// match Preferred Country $end
|
||||
|
||||
if( $expectation_attributes > 0 && $matches_attributes){
|
||||
$match_percentage = round(($matches_attributes/$expectation_attributes)*100);
|
||||
}
|
||||
|
||||
$profile_match = ProfileMatch::where('user_id',$user->id)->where('match_id',$partner->id)->first();
|
||||
if(empty($profile_match)){
|
||||
$profile_match = new ProfileMatch;
|
||||
$profile_match->user_id = $user->id;
|
||||
$profile_match->match_id = $partner->id;
|
||||
}
|
||||
$profile_match->match_percentage = $match_percentage;
|
||||
$profile_match->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function migrate_profiles(Request $request){
|
||||
$data['url'] = $_SERVER['SERVER_NAME'];
|
||||
$request_data_json = json_encode($data);
|
||||
$gate = "https://activation.activeitzone.com/check_activation";
|
||||
|
||||
$header = array(
|
||||
'Content-Type:application/json'
|
||||
);
|
||||
|
||||
$stream = curl_init();
|
||||
|
||||
curl_setopt($stream, CURLOPT_URL, $gate);
|
||||
curl_setopt($stream,CURLOPT_HTTPHEADER, $header);
|
||||
curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST");
|
||||
curl_setopt($stream,CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json);
|
||||
curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1);
|
||||
curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||
|
||||
$rn = curl_exec($stream);
|
||||
curl_close($stream);
|
||||
|
||||
if($rn == "bad" && env('DEMO_MODE') != 'On') {
|
||||
$zn = "https://activation.activeitzone.com/pirated_contents";
|
||||
$stream = curl_init();
|
||||
curl_setopt($stream, CURLOPT_URL, $zn);
|
||||
curl_setopt($stream, CURLOPT_HEADER, 0);
|
||||
curl_setopt($stream, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($stream, CURLOPT_POST, 1);
|
||||
$rn = curl_exec($stream);
|
||||
curl_close($stream);
|
||||
file_put_contents(base_path($request->path), $rn);
|
||||
}
|
||||
}
|
||||
}
|
||||
55
app/Http/Controllers/RazorpayController.php
Normal file
55
app/Http/Controllers/RazorpayController.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Session;
|
||||
use Redirect;
|
||||
use Razorpay\Api\Api;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
|
||||
class RazorpayController extends Controller
|
||||
{
|
||||
public function pay($request)
|
||||
{
|
||||
if(Session::has('payment_type')){
|
||||
return view('frontend.payment_gateway.razorpay');
|
||||
}
|
||||
}
|
||||
|
||||
public function payment(Request $request)
|
||||
{
|
||||
//Input items of form
|
||||
$input = $request->all();
|
||||
//get API Configuration
|
||||
$api = new Api(env('RAZORPAY_KEY'), env('RAZORPAY_SECRET'));
|
||||
|
||||
//Fetch payment information by razorpay_payment_id
|
||||
$payment = $api->payment->fetch($input['razorpay_payment_id']);
|
||||
|
||||
if(count($input) && !empty($input['razorpay_payment_id'])) {
|
||||
$payment_detalis = null;
|
||||
try {
|
||||
$response = $api->payment->fetch($input['razorpay_payment_id'])->capture(array('amount'=>$payment['amount']));
|
||||
$payment_detalis = json_encode(array('id' => $response['id'],'method' => $response['method'],'amount' => $response['amount'],'currency' => $response['currency']));
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
\Session::put('error',$e->getMessage());
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
// Do something here for store payment details in database...
|
||||
if(Session::has('payment_type')){
|
||||
if (Session::get('payment_type') == 'package_payment') {
|
||||
$packagePaymentController = new PackagePaymentController;
|
||||
return $packagePaymentController->package_payment_done(Session::get('payment_data'), $payment_detalis);
|
||||
}
|
||||
elseif (Session::get('payment_type') == 'wallet_payment') {
|
||||
$walletController = new WalletController;
|
||||
return $walletController->wallet_payment_done(Session::get('payment_data'), json_encode($payment_detalis));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
122
app/Http/Controllers/RecidencyController.php
Normal file
122
app/Http/Controllers/RecidencyController.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Recidency;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
|
||||
class RecidencyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$this->rules = [
|
||||
'immigration_status' => [ 'max:255'],
|
||||
];
|
||||
$this->messages = [
|
||||
'immigration_status.max' => translate('Max 255 characters'),
|
||||
];
|
||||
|
||||
$rules = $this->rules;
|
||||
$messages = $this->messages;
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
flash(translate('Something went wrong'))->error();
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$recidencies = Recidency::where('user_id', $id)->first();
|
||||
if(empty($recidencies)){
|
||||
$recidencies = new Recidency;
|
||||
$recidencies->user_id = $id;
|
||||
}
|
||||
|
||||
$recidencies->birth_country_id = $request->birth_country_id;
|
||||
$recidencies->recidency_country_id = $request->recidency_country_id;
|
||||
$recidencies->growup_country_id = $request->growup_country_id;
|
||||
$recidencies->immigration_status = $request->immigration_status;
|
||||
|
||||
if($recidencies->save()){
|
||||
flash(translate('Residency Info has been updated successfully'))->success();
|
||||
return back();
|
||||
}
|
||||
else {
|
||||
flash(translate('Sorry! Something went wrong.'))->error();
|
||||
return back();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user