diff --git a/source/Stargate-Examples/PetsRESTfulController.class.st b/source/Stargate-Examples/PetsRESTfulController.class.st index 17aa85c..cf28d4b 100644 --- a/source/Stargate-Examples/PetsRESTfulController.class.st +++ b/source/Stargate-Examples/PetsRESTfulController.class.st @@ -164,7 +164,7 @@ PetsRESTfulController >> getPetsBasedOn: httpRequest within: requestContext [ end := pagination end min: total. self addPaginationControlsTo: requestContext - basedOn: ( httpRequest absoluteUrl asHostedAt: requestHandler resourceLocator baseUrl ) + basedOn: httpRequest absoluteUrl start: start limit: pagination limit end: end diff --git a/source/Stargate-Model/HypermediaDrivenRESTfulRequestHandler.class.st b/source/Stargate-Model/HypermediaDrivenRESTfulRequestHandler.class.st index fa46dc5..974f6f7 100644 --- a/source/Stargate-Model/HypermediaDrivenRESTfulRequestHandler.class.st +++ b/source/Stargate-Model/HypermediaDrivenRESTfulRequestHandler.class.st @@ -36,8 +36,7 @@ HypermediaDrivenRESTfulRequestHandler >> encodeResourceCollection: resourceColle requestContext holdAsHypermediaControls: ( self paginationPolicy - addPaginationControlsTo: - ( Array with: 'self' -> ( httpRequest absoluteUrl asHostedAt: self resourceLocator baseUrl ) ) + addPaginationControlsTo: ( Array with: 'self' -> httpRequest absoluteUrl ) within: requestContext ) for: resourceCollection. resourceCollection do: [ :resource | self holdResource: resource controlsWithin: requestContext ]. diff --git a/source/Stargate-Model/RouteConfigurator.class.st b/source/Stargate-Model/RouteConfigurator.class.st index ab710d3..41324d3 100644 --- a/source/Stargate-Model/RouteConfigurator.class.st +++ b/source/Stargate-Model/RouteConfigurator.class.st @@ -50,7 +50,10 @@ RouteConfigurator >> configureRouteFrom: aRouteSpecification [ perform: ( '<1s>:' expandMacrosWith: aRouteSpecification httpMethod ) asSymbol with: aRouteSpecification urlTemplate - -> [ :request | aRouteSpecification handler value: request value: HttpRequestContext new ] + -> [ :request | + self withServerUrlDo: [ :url | request url: ( request url asHostedAt: url ) ]. + aRouteSpecification handler value: request value: HttpRequestContext new + ] ] { #category : #initialization } @@ -58,6 +61,12 @@ RouteConfigurator >> initializeAppliedTo: aTeapot sendingMessagesTo: aResourceRE teapot := aTeapot. resourceController := aResourceRESTfulController. - teapot server serverUrl ifNotNil: [ :url | resourceController serverUrl: url ]. + self withServerUrlDo: [ :url | resourceController serverUrl: url ]. routesAllowingCors := Dictionary new ] + +{ #category : #'private - configuring' } +RouteConfigurator >> withServerUrlDo: aBlock [ + + teapot server serverUrl ifNotNil: aBlock +]