5 uses System.SysUtils, System.Classes, Web.HTTPApp, Web.HTTPProd;
8 TWebModule1 = class(TWebModule)
9 readerTop: TPageProducer;
11 writerTop: TPageProducer;
12 writerData: TPageProducer;
13 backnumber: TPageProducer;
14 procedure WebModule1DefaultHandlerAction(Sender: TObject;
15 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
16 procedure WebModuleCreate(Sender: TObject);
17 procedure WebModule1writeMagAction(Sender: TObject; Request: TWebRequest;
18 Response: TWebResponse; var Handled: Boolean);
19 procedure WebModule1selectionAction(Sender: TObject; Request: TWebRequest;
20 Response: TWebResponse; var Handled: Boolean);
21 procedure WebModule1writerDataAction(Sender: TObject; Request: TWebRequest;
22 Response: TWebResponse; var Handled: Boolean);
23 procedure WebModule1readerDataAction(Sender: TObject; Request: TWebRequest;
24 Response: TWebResponse; var Handled: Boolean);
25 procedure WebModule1detailAction(Sender: TObject; Request: TWebRequest;
26 Response: TWebResponse; var Handled: Boolean);
36 WebModuleClass: TComponentClass = TWebModule1;
40 uses SynMustache, SynCommons, System.JSON, Unit1;
42 { %CLASSGROUP 'Vcl.Controls.TControl' }
47 mustache: TSynMustache;
49 procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
50 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
54 DataModule1.magListAll(data);
55 mustache := TSynMustache.Parse(top.Content);
56 Response.ContentType := 'text/html;charset=utf-8';
57 Response.Content := mustache.RenderJSON(data.ToJSON);
61 procedure TWebModule1.WebModule1detailAction(Sender: TObject;
62 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
66 DataModule1.backnumber(Request.QueryFields.Values['id'].ToInteger, data);
67 Response.ContentType := 'text/html;charset=utf-8';
68 mustache := TSynMustache.Parse(backnumber.Content);
69 Response.Content := mustache.RenderJSON(data.ToString);
72 procedure TWebModule1.WebModule1readerDataAction(Sender: TObject;
73 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
78 case Request.MethodType of
88 with Request.ContentFields do
90 data := TJSONObject.Create;
91 data.AddPair('mail', Values['mail']);
92 data.AddPair('password', Values['password']);
93 data.AddPair('name', Values['reader']);
94 DataModule1.createReaderId(data);
98 with Request.ContentFields do
100 data := TJSONObject.Create;
101 num := TJSONNumber.Create(readerId);
102 data.AddPair('id', num);
103 data.AddPair('name', Values['reader']);
104 data.AddPair('mail', Values['mail']);
105 data.AddPair('password', Values['password']);
106 DataModule1.deleteReaderId(data);
111 Response.ContentType := 'text/html;charset=utf-8';
112 DataModule1.userView(readerId, data);
113 mustache := TSynMustache.Parse(readerTop.Content);
114 Response.Content := mustache.RenderJSON(data.ToJSON);
117 procedure TWebModule1.WebModule1selectionAction(Sender: TObject;
118 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
122 id := DataModule1.magid(Request.ContentFields.Values['name']);
123 case Request.MethodType of
127 DataModule1.magIdOn(readerId, id);
129 DataModule1.magIdOff(readerId, id);
133 procedure TWebModule1.WebModule1writeMagAction(Sender: TObject;
134 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
138 data := TJSONObject.Create;
139 data.AddPair('magName', Request.ContentFields.Values['name']);
140 data.AddPair('comment', Request.ContentFields.Values['comment']);
141 data.AddPair('day', Request.ContentFields.Values['day']);
142 data.AddPair('enable', TJSONTrue.Create);
143 DataModule1.createMagId(writerId, data);
145 Response.SendRedirect('/writer/data');
148 procedure TWebModule1.WebModule1writerDataAction(Sender: TObject;
149 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
153 case Request.MethodType of
161 with Request.ContentFields do
163 data := TJSONObject.Create;
164 data.AddPair('mail', Values['mail']);
165 data.AddPair('password', Values['password']);
166 data.AddPair('name', Values['writer']);
167 DataModule1.createWriterId(data);
172 data := TJSONObject.Create;
173 with Request.ContentFields do
175 data.AddPair('writer', Values['name']);
176 data.AddPair('mail', Values['mail']);
177 data.AddPair('password', Values['password']);
179 DataModule1.updateWriterId(writerId, data);
183 data := TJSONObject.Create;
184 DataModule1.magazines(writerId, data);
185 Response.ContentType := 'text/html;charset=utf-8';
186 mustache := TSynMustache.Parse(writerTop.Content);
187 Response.Content := mustache.RenderJSON(data.ToJSON);
191 procedure TWebModule1.WebModuleCreate(Sender: TObject);