@@ -11,36 +11,39 @@ def initialize(klass)
1111 # expects a record
1212 def create ( record )
1313 request ( :post , klass . path ( record . attributes ) , {
14- data : record . as_json_api
14+ body : { data : record . as_json_api } ,
15+ params : record . request_params . to_params
1516 } )
1617 end
1718
1819 def update ( record )
1920 request ( :patch , resource_path ( record . attributes ) , {
20- data : record . as_json_api
21+ body : { data : record . as_json_api } ,
22+ params : record . request_params . to_params
2123 } )
2224 end
2325
2426 def get ( params = { } )
2527 path = resource_path ( params )
2628 params . delete ( klass . primary_key )
27- request ( :get , path , params )
29+ request ( :get , path , params : params )
2830 end
2931
3032 def destroy ( record )
31- request ( :delete , resource_path ( record . attributes ) , { } )
33+ request ( :delete , resource_path ( record . attributes ) )
3234 end
3335
3436 def linked ( path )
35- request ( :get , path , { } )
37+ request ( :get , path )
3638 end
3739
3840 def custom ( method_name , options , params )
3941 path = resource_path ( params )
4042 params . delete ( klass . primary_key )
4143 path = File . join ( path , method_name . to_s )
42-
43- request ( options . fetch ( :request_method , :get ) , path , params )
44+ request_method = options . fetch ( :request_method , :get ) . to_sym
45+ query_params , body_params = [ :get , :delete ] . include? ( request_method ) ? [ params , nil ] : [ nil , params ]
46+ request ( request_method , path , params : query_params , body : body_params )
4447 end
4548
4649 protected
@@ -56,8 +59,9 @@ def resource_path(parameters)
5659 end
5760 end
5861
59- def request ( type , path , params )
60- klass . parser . parse ( klass , connection . run ( type , path , params , klass . custom_headers ) )
62+ def request ( type , path , params : nil , body : nil )
63+ response = connection . run ( type , path , params : params , body : body , headers : klass . custom_headers )
64+ klass . parser . parse ( klass , response )
6165 end
6266
6367 end
0 commit comments