File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/Api/CouponsApiController.php
<?php
namespace App\Http\Controllers\Api;
use App\Coupons;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class CouponsApiController extends Controller
{
public function get()
{
\DB::statement("SET sql_mode = ''");
$userId = Auth::user()->id;
$query = Coupons::select([
'coupons.id',
'coupons.name',
'coupons.coupon_image',
'coupons.link',
'coupons.message',
'coupons.link_redeem',
\DB::raw("CASE
WHEN coupons.codes IS NULL THEN coupons.code_coupon
ELSE SUBSTRING_INDEX(coupons.codes, ',', 1)
END as code_coupon")
])
->leftjoin('coupon_tags as ct', 'coupons.id', '=', 'ct.coupon_id')
->leftjoin('user_tags as ut', 'ct.tag_id', '=', 'ut.tag_id')
->leftjoin('tags', function ($join) {
$join->on('tags.id', '=', 'ut.tag_id')->where('tags.active', 1);
})
->where('coupons.active', true)
->where(function ($query) use ($userId) {
$query->where('ut.user_id', '=', $userId)->orWhereNull('ct.id');
})
->groupBy('coupons.id')
->orderBy('coupons.id', 'desc');
// To get the results
$query = $query->get();
\DB::statement("SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'");
return $query;
}
}