diff --git a/source/Stargate-Examples/PetOrdersRESTfulController.class.st b/source/Stargate-Examples/PetOrdersRESTfulController.class.st index 94cb668..a9b09ed 100644 --- a/source/Stargate-Examples/PetOrdersRESTfulController.class.st +++ b/source/Stargate-Examples/PetOrdersRESTfulController.class.st @@ -297,7 +297,7 @@ PetOrdersRESTfulController >> initializeCommentsRequestHandler [ whenAccepting: ZnMimeType textPlain decodeApplying: [ :comment | comment ]; whenResponding: ZnMimeType textPlain encodeApplying: [ :resource | self encodeComments: resource ]; - createEntityTagHashing: [ :hasher :comment :requestContext | hasher include: comment ]; + createEntityTagHashingEncodedResource; build ] diff --git a/source/Stargate-Model/RESTfulRequestHandlerBehavior.class.st b/source/Stargate-Model/RESTfulRequestHandlerBehavior.class.st index 9470e47..23a2dde 100644 --- a/source/Stargate-Model/RESTfulRequestHandlerBehavior.class.st +++ b/source/Stargate-Model/RESTfulRequestHandlerBehavior.class.st @@ -69,7 +69,7 @@ RESTfulRequestHandlerBehavior >> endpoint [ { #category : #private } RESTfulRequestHandlerBehavior >> entityTagOf: resource encodedAs: mediaType within: requestContext [ - ^ ZnETag with: ( entityTagCalculator value: resource value: mediaType value: requestContext ) + ^ ZnETag with: ( entityTagCalculator value: resource value: mediaType value: requestContext value: self ) ] { #category : #private } diff --git a/source/Stargate-Model/RESTfulRequestHandlerBuilder.class.st b/source/Stargate-Model/RESTfulRequestHandlerBuilder.class.st index aaed1ec..a9c5af5 100644 --- a/source/Stargate-Model/RESTfulRequestHandlerBuilder.class.st +++ b/source/Stargate-Model/RESTfulRequestHandlerBuilder.class.st @@ -57,7 +57,7 @@ RESTfulRequestHandlerBuilder >> build [ RESTfulRequestHandlerBuilder >> createEntityTagHashing: aBlockClosure [ self - createEntityTagWith: [ :resource :mediaType :requestContext | + createEntityTagWith: [ :resource :mediaType :requestContext :requestHandler | | hasher | hasher := EntityTagHasher new. aBlockClosure cull: hasher cull: resource cull: requestContext. @@ -67,6 +67,17 @@ RESTfulRequestHandlerBuilder >> createEntityTagHashing: aBlockClosure [ ] ] +{ #category : #configuring } +RESTfulRequestHandlerBuilder >> createEntityTagHashingEncodedResource [ + + self + createEntityTagWith: [ :resource :mediaType :requestContext :requestHandler | + EntityTagHasher new + include: ( requestHandler encodeResource: resource to: mediaType within: requestContext ); + calculateHash + ] +] + { #category : #configuring } RESTfulRequestHandlerBuilder >> createEntityTagWith: aBlock [