File: /var/www/vhost/disk-apps/demo.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', 'coupons.id', '=', 'coupon_tags.coupon_id')
->leftJoin('tags', function ($join) {
$join->on('tags.id', '=', 'coupon_tags.tag_id')
->where('tags.active', 1);
})
->leftjoin('user_tags', 'user_tags.tag_id', '=', 'coupon_tags.tag_id')
->where(function ($q) use ($userId) {
$q->where('user_tags.user_id', $userId)
->orWhereNull('coupon_tags.id')
->orWhereNull('tags.id');
})
->where('coupons.active', 1)
->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;
}
}