@@ -47,33 +47,46 @@ public function first()
47
47
/**
48
48
* @return \Illuminate\Support\Collection|Model[]
49
49
*/
50
- public function get ( $ filters = [] )
50
+ public function get ( $ filters = [], $ key = '' , $ byKey = false )
51
51
{
52
52
$ urlFilters = '' ;
53
53
54
- if ( count ( $ filters ) > 0 )
54
+ if ( ! $ byKey )
55
55
{
56
- $ urlFilters .= '?filters= ' ;
57
-
58
- $ i = 1 ;
59
- foreach ( $ filters as $ filter )
56
+ if ( count ( $ filters ) > 0 )
60
57
{
61
- $ urlFilters .= $ filter [ 0 ] . $ this -> switchComparison ( $ filter [ 1 ] ) . $ this -> escapeFilter ( $ filter [ 2 ]); // todo fix arrays aswell ([1,2,3,...] string)
58
+ $ urlFilters .= ' ?filters= ' ;
62
59
63
- if ( count ( $ filters ) > $ i )
60
+ $ i = 1 ;
61
+ foreach ( $ filters as $ filter )
64
62
{
65
- $ urlFilters .= '$and: ' ; // todo allow $or: also
66
- }
63
+ $ urlFilters .= $ filter [0 ] . $ this ->switchComparison ( $ filter [1 ] ) . $ this ->escapeFilter ( $ filter [2 ] ); // todo fix arrays aswell ([1,2,3,...] string)
64
+
65
+ if ( count ( $ filters ) > $ i )
66
+ {
67
+ $ urlFilters .= '$and: ' ; // todo allow $or: also
68
+ }
67
69
68
- $ i ++;
70
+ $ i ++;
71
+ }
69
72
}
70
- }
71
73
72
- $ response = $ this ->request ->curl ->get ( "/ {$ this ->entity }{$ urlFilters }" );
74
+ $ response = $ this ->request ->curl ->get ( "/ {$ this ->entity }{$ urlFilters }" );
75
+ }
76
+ else
77
+ {
78
+ $ response = $ this ->request ->curl ->get ( $ key );
79
+ }
73
80
74
81
// todo check for errors and such
75
82
76
83
$ responseData = json_decode ( $ response ->getBody ()->getContents () );
84
+
85
+ if ( ! isset ( $ responseData ->collection ) && isset ($ responseData ->{$ key }) )
86
+ {
87
+ return ( new self ( $ this ->request ) )->get ( $ filters , $ responseData ->{$ key }, true );
88
+ }
89
+
77
90
$ fetchedItems = $ responseData ->collection ;
78
91
79
92
$ items = collect ( [] );
0 commit comments