Skip to content

Commit f3a066b

Browse files
committed
função aninhada (nested funcion).
Centraliza criação. Reduz duplicação. Mantém escopo local. Não alterar comportamento. Mantém DRY (Dont Repeat Yourself).
1 parent 2ee5682 commit f3a066b

1 file changed

Lines changed: 11 additions & 16 deletions

File tree

src/base/RALWebModule.pas

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -247,30 +247,25 @@ procedure TRALWebModule.CreateSession(ARequest: TRALRequest; AResponse: TRALResp
247247
vSession: TRALParam;
248248
vWebSession: TRALWebSession;
249249
vWesSessionName: StringRAL;
250+
function CreateNewSession: TRALWebSession;
251+
begin
252+
vWesSessionName := NewSessionName;
253+
Result := TRALWebSession.Create;
254+
FSessions.AddObject(vWesSessionName, Result);
255+
end;
256+
250257
begin
251258
vSession := ARequest.Params.GetKind[RAL_SESSION, rpkCOOKIE];
252259
if vSession <> nil then
253260
begin
254261
vWesSessionName := vSession.AsString;
255262
vWebSession := TRALWebSession(FSessions.ObjectByItem(vWesSessionName));
263+
256264
if vWebSession <> nil then
257-
begin
258-
vWebSession.LastDate := Now;
259-
end
265+
vWebSession.LastDate := Now
260266
else
261-
begin
262-
vWesSessionName := NewSessionName;
263-
vWebSession := TRALWebSession.Create;
264-
FSessions.AddObject(vWesSessionName, vWebSession);
265-
end;
266-
end
267-
else
268-
begin
269-
vWesSessionName := NewSessionName;
270-
vWebSession := TRALWebSession.Create;
271-
FSessions.AddObject(vWesSessionName, vWebSession);
272-
end;
273-
267+
vWebSession := CreateNewSession;
268+
end else vWebSession := CreateNewSession;
274269
AResponse.AddCookie(RAL_SESSION, vWesSessionName);
275270
end;
276271

0 commit comments

Comments
 (0)