@@ -11,36 +11,39 @@ def initialize(klass)
11
11
# expects a record
12
12
def create ( record )
13
13
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
15
16
} )
16
17
end
17
18
18
19
def update ( record )
19
20
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
21
23
} )
22
24
end
23
25
24
26
def get ( params = { } )
25
27
path = resource_path ( params )
26
28
params . delete ( klass . primary_key )
27
- request ( :get , path , params )
29
+ request ( :get , path , params : params )
28
30
end
29
31
30
32
def destroy ( record )
31
- request ( :delete , resource_path ( record . attributes ) , { } )
33
+ request ( :delete , resource_path ( record . attributes ) )
32
34
end
33
35
34
36
def linked ( path )
35
- request ( :get , path , { } )
37
+ request ( :get , path )
36
38
end
37
39
38
40
def custom ( method_name , options , params )
39
41
path = resource_path ( params )
40
42
params . delete ( klass . primary_key )
41
43
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 )
44
47
end
45
48
46
49
protected
@@ -56,8 +59,9 @@ def resource_path(parameters)
56
59
end
57
60
end
58
61
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 )
61
65
end
62
66
63
67
end
0 commit comments