@@ -61,12 +61,16 @@ class JsonApiClient {
6161
6262 /// Creates a new resource. The resource will be added to a collection
6363 /// according to its type.
64+ ///
65+ /// https://jsonapi.org/format/#crud-creating
6466 Future <Response <ResourceDocument >> createResource (Uri uri, Resource resource,
6567 {Map <String , String > headers}) =>
6668 _post (ResourceDocument .fromJson, uri,
6769 ResourceDocument (ResourceObject .fromResource (resource)), headers);
6870
6971 /// Deletes the resource.
72+ ///
73+ /// https://jsonapi.org/format/#crud-deleting
7074 Future <Response <MetaDocument >> deleteResource (Uri uri,
7175 {Map <String , String > headers}) =>
7276 _delete (MetaDocument .fromJson, uri, headers);
@@ -76,15 +80,14 @@ class JsonApiClient {
7680// {Map<String, String> headers}) =>
7781// _post(ToMany.fromJson, uri,
7882// ToMany(identifiers.map(IdentifierObject.fromIdentifier)), headers);
79- //
80- // Future<Response<ResourceDocument>> updateResource(Uri uri, Resource resource,
81- // {Map<String, String> headers}) async =>
82- // _patch(
83- // ResourceDocument.fromJson,
84- // uri,
85- // ResourceDocument(ResourceObject(resource.type, resource.id,
86- // attributes: resource.attributes)),
87- // headers);
83+
84+ /// Updates the resource via PATCH request.
85+ ///
86+ /// https://jsonapi.org/format/#crud-updating
87+ Future <Response <ResourceDocument >> updateResource (Uri uri, Resource resource,
88+ {Map <String , String > headers}) async =>
89+ _patch (ResourceDocument .fromJson, uri,
90+ ResourceDocument (ResourceObject .fromResource (resource)), headers);
8891
8992 Future <Response <D >> _get <D extends Document >(
9093 ResponseParser <D > parse, uri, Map <String , String > headers) =>
@@ -117,18 +120,18 @@ class JsonApiClient {
117120 'Content-Type' : contentType,
118121 })));
119122
120- // Future<Response<D>> _patch<D extends Document>(ResponseParser<D> parse, uri,
121- // Document document, Map<String, String> headers) =>
122- // _call(
123- // parse,
124- // (_) => _.patch(uri,
125- // body: json.encode(document),
126- // headers: {}
127- // ..addAll(headers ?? {})
128- // ..addAll({
129- // 'Accept': contentType,
130- // 'Content-Type': contentType,
131- // })));
123+ Future <Response <D >> _patch <D extends Document >(ResponseParser <D > parse, uri,
124+ Document document, Map <String , String > headers) =>
125+ _call (
126+ parse,
127+ (_) => _.patch (uri,
128+ body: json.encode (document),
129+ headers: {}
130+ ..addAll (headers ?? {})
131+ ..addAll ({
132+ 'Accept' : contentType,
133+ 'Content-Type' : contentType,
134+ })));
132135
133136 Future <Response <D >> _call <D extends Document >(ResponseParser <D > parse,
134137 Future <http.Response > fn (http.Client client)) async {
0 commit comments