| as yet unclassified |
| convertRequest: aKomRequest
|
| request |
self processMultipartFields: aKomRequest.
request _ WARequest
method: aKomRequest method
url: aKomRequest url unescapePercents
headers: aKomRequest header
fields: (aKomRequest method = 'POST'
ifTrue: [aKomRequest postFields]
ifFalse: [aKomRequest getFields])
cookies: aKomRequest cookies
nativeRequest: aKomRequest.
aKomRequest method = 'PUT'
ifTrue: [request fields
at: 'PUTData'
put: (aKomRequest stream next: aKomRequest contentLength)].
^ request
|
| convertResponse: aResponse
|
| komResponse |
aResponse ifNil: [^ HttpResponse fromString: 'Request handling aborted; reload to retry'].
komResponse _ HttpResponse new.
aResponse cookies do:
[:assoc | komResponse setCookieName: assoc key value: assoc valueWithExpiry path: assoc path].
aResponse headers associationsDo: [:assoc | komResponse fieldAt: assoc key put: assoc value].
(HttpResponse classPool at: #StatusCodes) associationsDo:
[:assoc |
assoc value key = aResponse status ifTrue: [komResponse status: assoc key]].
komResponse contents: aResponse contents.
komResponse contentType: aResponse contentType.
^ komResponse
|
| entryPoint: anEntryPoint
|
entryPoint _ anEntryPoint
|
| handleRequest: aRequest
|
^ (entryPoint handlerForRequest: aRequest) handleRequest: aRequest
|
| log: aRequest
|
Transcript cr; show: aRequest url
|
| process: komRequest
|
|request response komResponse |
self log: komRequest.
request _ self convertRequest: komRequest.
response _ self handleRequest: request.
komResponse _ self convertResponse: response.
response release.
^ komResponse
|
| processMultipartFields: aRequest
|
aRequest multipartFormFieldsDo:
[:chunk |
chunk fileName isEmptyOrNil ifFalse:
[|stream file|
stream _ WriteStream on: String new.
chunk saveToStream: stream.
file _ WAFile new fileName: chunk fileName; contents: stream contents; contentType: chunk contentType.
aRequest postFields at: chunk fieldName put: file]].
|