-
Notifications
You must be signed in to change notification settings - Fork 1
/
ReadController.php
90 lines (60 loc) · 2.02 KB
/
ReadController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
namespace Kaleidoscope\Factotum\Http\Controllers\Api\DiscountCode;
use Illuminate\Http\Request;
use Kaleidoscope\Factotum\DiscountCode;
use Kaleidoscope\Factotum\ProductDiscountCode;
class ReadController extends Controller
{
public function getListPaginated( Request $request )
{
$limit = $request->input('limit');
$offset = $request->input('offset');
$sort = $request->input('sort');
$direction = $request->input('direction');
$filters = $request->input('filters', null);
if ( !$sort ) {
$sort = 'id';
}
if ( !$direction ) {
$direction = 'DESC';
}
$query = DiscountCode::query();
if ( isset($filters) && count($filters) > 0 ) {
if ( isset($filters['term']) && strlen($filters['term']) > 0 ) {
$query->whereRaw( 'LCASE(code) like "%' . $filters['term'] . '%"' );
$query->orWhereRaw( 'LCASE(discount) like "%' . $filters['term'] . '%"' );
}
}
$query->with('customer');
$query->with('customer.profile');
$query->orderBy($sort, $direction);
$total = $query->count();
if ( $limit ) {
$query->take($limit);
}
if ( $offset ) {
$query->skip($offset);
}
$discountCodes = $query->get();
return response()->json( [ 'result' => 'ok', 'discount_codes' => $discountCodes, 'total' => $total ]);
}
public function getList( Request $request, $eventId )
{
$discountCodes = DiscountCode::where( 'event_id', $eventId )->with('tickets')->get();
if ( $discountCodes->count() > 0 ) {
return response()->json( [ 'result' => 'ok', 'discount_codes' => $discountCodes ] );
}
return response()->json( [ 'result' => 'ok', 'discount_codes' => [] ] );
}
public function getDetail(Request $request, $id)
{
$discountCode = DiscountCode::find( $id );
if ( $discountCode ) {
$discountCode->load('customer');
$discountCode->load('customer.profile');
$discountCode->load('products');
return response()->json( [ 'result' => 'ok', 'discount_code' => $discountCode->toArray() ] );
}
return $this->_sendJsonError( 'Codice Sconto non trovato.' );
}
}