Skip to content

Commit 4d02436

Browse files
committed
separacao-tollsetcep-unit
1 parent ab66801 commit 4d02436

5 files changed

Lines changed: 82 additions & 63 deletions

File tree

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
unit ToolSetCEP;
2+
3+
interface
4+
5+
uses
6+
System.SysUtils,
7+
System.JSON,
8+
System.Generics.Collections,
9+
TMS.MCP.CustomComponent,
10+
TMS.MCP.CloudAI,
11+
TMS.MCP.CloudBase;
12+
13+
type
14+
TToolSetCEP = class(TTMSMCPCloudAIToolSet)
15+
private
16+
procedure ToolSetCepExecute(Sender: TObject; Args: TJSONObject; var Result: string);
17+
function GetEndereco(const ACEP: string): string;
18+
protected
19+
procedure DefineTools; override;
20+
end;
21+
22+
implementation
23+
24+
procedure TToolSetCEP.DefineTools;
25+
var
26+
LTool: TTMSMCPCloudAITool;
27+
LParam: TTMSMCPCloudAIParameter;
28+
begin
29+
BeginUpdate;
30+
31+
LTool := Tools.Add;
32+
LTool.Name := 'RetornaEndereco';
33+
LTool.Description := 'Retorna o endereço do CEP informado';
34+
LTool.OnExecute := Self.ToolSetCepExecute;
35+
36+
LParam := LTool.Parameters.Add;
37+
LParam.Name := 'CEP';
38+
LParam.Description := 'CEP a ser utilizado para buscar endereço';
39+
40+
EndUpdate;
41+
end;
42+
43+
procedure TToolSetCEP.ToolSetCepExecute(Sender: TObject; Args: TJSONObject; var Result: string);
44+
var
45+
LCep: string;
46+
begin
47+
LCep := Args.GetValue<string>('CEP', '');
48+
Result := Self.GetEndereco(LCep);
49+
end;
50+
51+
function TToolSetCEP.GetEndereco(const ACEP: string): string;
52+
var
53+
LRequest: TTMSMCPCloudBase;
54+
LResult: string;
55+
begin
56+
LRequest := TTMSMCPCloudBase.Create;
57+
try
58+
LRequest.Request.Host := 'https://viacep.com.br/ws/';
59+
LRequest.Request.Path := Format('%s/json', [ACEP.Replace('-', '', [])]);
60+
61+
LRequest.ExecuteRequest(
62+
procedure(const ARequestResult:TTMSMCPCloudBaseRequestResult)
63+
begin
64+
LResult := ARequestResult.ResultString;
65+
end, nil, False);
66+
67+
Result := LResult;
68+
finally
69+
LRequest.Free;
70+
end;
71+
end;
72+
73+
end.

Samples/ToolsetsPOO/Src/ToolsetsPOO.Main.View.dfm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ object ToolsetsPOOMainView: TToolsetsPOOMainView
7575
Lines.Strings = (
7676
'Qual o endere'#231'o do CEP 01310-100')
7777
TabOrder = 0
78-
ExplicitLeft = 4
78+
ExplicitLeft = 2
7979
end
8080
end
8181
object Panel1: TPanel

Samples/ToolsetsPOO/Src/ToolsetsPOO.Main.View.pas

Lines changed: 5 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,10 @@ interface
2121
TMS.MCP.CustomComponent,
2222
TMS.MCP.Server,
2323
TMS.MCP.CloudAI,
24-
TMS.MCP.CloudBase;
24+
TMS.MCP.CloudBase,
25+
ToolSetCEP;
2526

2627
type
27-
TToolSetCEP = class(TTMSMCPCloudAIToolSet)
28-
private
29-
procedure ToolSetCepExecute(Sender: TObject; Args: TJSONObject; var Result: string);
30-
function GetEndereco(const ACEP: string): string;
31-
protected
32-
procedure DefineTools; override;
33-
end;
34-
3528
TToolsetsPOOMainView = class(TForm)
3629
pnTop: TPanel;
3730
Label1: TLabel;
@@ -94,62 +87,13 @@ procedure TToolsetsPOOMainView.OnCloudAIExecuted(Sender: TObject; AResponse: TTM
9487

9588
procedure TToolsetsPOOMainView.btnExecuteClick(Sender: TObject);
9689
begin
97-
FCloudAI.Service := TTMSMCPCloudAIService(cBoxIAService.Items.Objects[cBoxIAService.ItemIndex]);
98-
9990
mmResponse.Text := 'Processando...';
91+
92+
FCloudAI.Service := TTMSMCPCloudAIService(cBoxIAService.Items.Objects[cBoxIAService.ItemIndex]);
10093
FCloudAI.Context := mmQuestion.Lines;
10194
FCloudAI.Execute();
102-
ProgressBar1.State := pbsNormal;
103-
end;
104-
105-
{ TToolSetCEP }
106-
procedure TToolSetCEP.DefineTools;
107-
var
108-
LTool: TTMSMCPCloudAITool;
109-
LParam: TTMSMCPCloudAIParameter;
110-
begin
111-
BeginUpdate;
11295

113-
LTool := Tools.Add;
114-
LTool.Name := 'RetornaEndereco';
115-
LTool.Description := 'Retorna o endereço do CEP informado';
116-
LTool.OnExecute := Self.ToolSetCepExecute;
117-
118-
LParam := LTool.Parameters.Add;
119-
LParam.Name := 'CEP';
120-
LParam.Description := 'CEP a ser utilizado para buscar endereço';
121-
122-
EndUpdate;
123-
end;
124-
125-
procedure TToolSetCEP.ToolSetCepExecute(Sender: TObject; Args: TJSONObject; var Result: string);
126-
var
127-
LCep: string;
128-
begin
129-
LCep := Args.GetValue<string>('CEP', '');
130-
Result := Self.GetEndereco(LCep);
131-
end;
132-
133-
function TToolSetCEP.GetEndereco(const ACEP: string): string;
134-
var
135-
LRequest: TTMSMCPCloudBase;
136-
LResult: string;
137-
begin
138-
LRequest := TTMSMCPCloudBase.Create;
139-
try
140-
LRequest.Request.Host := 'https://viacep.com.br/ws/';
141-
LRequest.Request.Path := Format('%s/json', [ACEP.Replace('-', '', [])]);
142-
143-
LRequest.ExecuteRequest(
144-
procedure(const ARequestResult:TTMSMCPCloudBaseRequestResult)
145-
begin
146-
LResult := ARequestResult.ResultString;
147-
end, nil, False);
148-
149-
Result := LResult;
150-
finally
151-
LRequest.Free;
152-
end;
96+
ProgressBar1.State := pbsNormal;
15397
end;
15498

15599
end.

Samples/ToolsetsPOO/ToolsetsPOO.dpr

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ program ToolsetsPOO;
22

33
uses
44
Vcl.Forms,
5-
ToolsetsPOO.Main.View in 'Src\ToolsetsPOO.Main.View.pas' {ToolsetsPOOMainView};
5+
ToolsetsPOO.Main.View in 'Src\ToolsetsPOO.Main.View.pas' {ToolsetsPOOMainView},
6+
ToolSetCEP in 'Src\ToolSetCEP.pas';
67

78
{$R *.res}
89

Samples/ToolsetsPOO/ToolsetsPOO.dproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@
131131
<Form>ToolsetsPOOMainView</Form>
132132
<FormType>dfm</FormType>
133133
</DCCReference>
134+
<DCCReference Include="Src\ToolSetCEP.pas"/>
134135
<BuildConfiguration Include="Base">
135136
<Key>Base</Key>
136137
</BuildConfiguration>

0 commit comments

Comments
 (0)