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 mainView: TPageProducer;
15 procedure WebModule1DefaultHandlerAction(Sender: TObject;
16 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
17 procedure WebModuleCreate(Sender: TObject);
18 procedure WebModule1writeMagAction(Sender: TObject; Request: TWebRequest;
19 Response: TWebResponse; var Handled: Boolean);
20 procedure WebModule1selectionAction(Sender: TObject; Request: TWebRequest;
21 Response: TWebResponse; var Handled: Boolean);
22 procedure WebModule1writerDataAction(Sender: TObject; Request: TWebRequest;
23 Response: TWebResponse; var Handled: Boolean);
24 procedure WebModule1readerDataAction(Sender: TObject; Request: TWebRequest;
25 Response: TWebResponse; var Handled: Boolean);
26 procedure WebModule1detailAction(Sender: TObject; Request: TWebRequest;
27 Response: TWebResponse; var Handled: Boolean);
28 procedure WebModule1writerTopAction(Sender: TObject; Request: TWebRequest;
29 Response: TWebResponse; var Handled: Boolean);
30 procedure WebModule1loginAction(Sender: TObject; Request: TWebRequest;
31 Response: TWebResponse; var Handled: Boolean);
32 procedure WebModule1logoutAction(Sender: TObject; Request: TWebRequest;
33 Response: TWebResponse; var Handled: Boolean);
34 procedure WebModule1mainViewAction(Sender: TObject; Request: TWebRequest;
35 Response: TWebResponse; var Handled: Boolean);
36 procedure WebModule1imageAction(Sender: TObject; Request: TWebRequest;
37 Response: TWebResponse; var Handled: Boolean);
38 procedure WebModule1readerTopAction(Sender: TObject; Request: TWebRequest;
39 Response: TWebResponse; var Handled: Boolean);
49 WebModuleClass: TComponentClass = TWebModule1;
53 uses SynMustache, SynCommons, System.JSON, Unit1, System.NetEncoding;
55 { %CLASSGROUP 'Vcl.Controls.TControl' }
60 mustache: TSynMustache;
62 procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
63 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
67 DataModule1.magListAll(data);
69 data.AddPair('id',TJSONFalse.Create)
71 data.AddPair('id',TJSONTrue.Create);
72 if Request.QueryFields.Values['op'] <> '' then
73 data.AddPair('comment','2
\8fd
\93o
\98^
\82Å
\82·
\81B
\93o
\98^
\82É
\8e¸
\94s
\82µ
\82Ü
\82µ
\82½
\81B')
75 data.AddPair('comment',TJSONFalse.Create);
76 mustache := TSynMustache.Parse(top.Content);
77 Response.ContentType := 'text/html;charset=utf-8';
78 Response.Content := mustache.RenderJSON(data.ToJSON);
82 procedure TWebModule1.WebModule1detailAction(Sender: TObject;
83 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
87 DataModule1.backnumber(Request.QueryFields.Values['id'].ToInteger, data);
88 Response.ContentType := 'text/html;charset=utf-8';
89 mustache := TSynMustache.Parse(backnumber.Content);
90 Response.Content := mustache.RenderJSON(data.ToString);
93 procedure TWebModule1.WebModule1imageAction(Sender: TObject;
94 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
101 data:=TJSONObject.Create;
102 data.AddPair('id',TJSONNumber.Create(Request.QueryFields.Values['id']));
103 data.AddPair('number',TJSONNumber.Create(Request.QueryFields.Values['num']));
104 id :=DataModule1.imageId(data);
105 DataModule1.imageView(id,data);
106 mem:=TMemoryStream.Create;
107 raw:=TNetEncoding.Base64.DecodeStringToBytes(data.Values['data'].Value);
108 mem.WriteBuffer(raw,Length(raw));
111 Response.ContentType:='jpeg/image';
112 Response.ContentStream:=mem;
115 procedure TWebModule1.WebModule1loginAction(Sender: TObject;
116 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
120 data:=TJSONObject.Create;
121 with Request.ContentFields do
123 data.AddPair('mail',Values['mail']);
124 data.AddPair('password',Values['password']);
126 readerId:=DataModule1.loginReader(data);
131 procedure TWebModule1.WebModule1logoutAction(Sender: TObject;
132 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
139 procedure TWebModule1.WebModule1mainViewAction(Sender: TObject;
140 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
144 Response.ContentType:='text/html;charset=utf-8';
145 DataModule1.mainView(readerId,data);
146 mustache:=TSynMustache.Parse(mainView.Content);
147 Response.Content := mustache.RenderJSON(data.ToJSON);
150 procedure TWebModule1.WebModule1readerDataAction(Sender: TObject;
151 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
153 data, d: TJSONObject;
156 with Request.ContentFields do
158 data := TJSONObject.Create;
159 data.AddPair('id',TJSONNumber.Create(readerId));
160 data.AddPair('name', Values['reader']);
161 data.AddPair('mail', Values['mail']);
162 data.AddPair('password', Values['password']);
164 case Request.MethodType of
172 if DataModule1.checkUserPassword(readerId, data.Values['password'].Value)
175 data.RemovePair('password');
176 data.AddPair('password',Request.ContentFields.Values['new']);
177 DataModule1.updateReaderId(data);
180 if DataModule1.createReaderId(data) = false then
182 Response.SendRedirect('/top?op=1#message');
186 with Request.ContentFields do
188 num := TJSONNumber.Create(readerId);
189 data.AddPair('id', num);
190 DataModule1.deleteReaderId(data);
195 Response.ContentType := 'text/html;charset=utf-8';
196 DataModule1.userView(readerId, data);
197 DataModule1.readerData(readerId,d);
198 data.AddPair('reader',d);
199 mustache := TSynMustache.Parse(readerTop.Content);
200 Response.Content := mustache.RenderJSON(data.ToJSON);
203 procedure TWebModule1.WebModule1readerTopAction(Sender: TObject;
204 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
208 Response.ContentType:='text/html;charset=utf-8';
209 DataModule1.getView(readerId,data);
210 mustache:=TSynMustache.Parse(mainView.Content);
211 Response.Content:=mustache.RenderJSON(data.ToJSON);
214 procedure TWebModule1.WebModule1selectionAction(Sender: TObject;
215 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
219 id := DataModule1.magid(Request.ContentFields.Values['name']);
220 case Request.MethodType of
224 DataModule1.magIdOn(readerId, id);
226 DataModule1.magIdOff(readerId, id);
230 procedure TWebModule1.WebModule1writeMagAction(Sender: TObject;
231 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
235 data := TJSONObject.Create;
236 data.AddPair('magName', Request.ContentFields.Values['name']);
237 data.AddPair('comment', Request.ContentFields.Values['comment']);
238 data.AddPair('day', Request.ContentFields.Values['day']);
239 data.AddPair('enable', TJSONTrue.Create);
240 DataModule1.createMagId(writerId, data);
242 Response.SendRedirect('/writer/top');
245 procedure TWebModule1.WebModule1writerDataAction(Sender: TObject;
246 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
250 with Request.ContentFields do
252 data := TJSONObject.Create;
253 data.AddPair('mail', Values['mail']);
254 data.AddPair('password', Values['password']);
256 case Request.MethodType of
264 if Request.ContentFields.Values['_method'] = 'delete' then
265 DataModule1.deleteWriter(writerId)
266 else if DataModule1.existsMail(data.Values['mail'].Value) = false then
268 data.AddPair('name', Request.ContentFields.Values['writer']);
269 if Request.ContentFields.Values['_method'] = 'put' then
270 DataModule1.updateWriterId(writerId, data)
272 DataModule1.createWriterId(data);
275 {
\83\81\81[
\83\8b\83A
\83h
\83\8c\83X
\82Ì2
\8fd
\93o
\98^};
277 DataModule1.updateWriterId(writerId, data);
279 DataModule1.deleteWriter(writerId);
282 data := TJSONObject.Create;
283 DataModule1.custData(writerId, data);
284 Response.ContentType := 'text/html;charset=utf-8';
285 mustache := TSynMustache.Parse(writerData.Content);
286 Response.Content := mustache.RenderJSON(data.ToJSON);
290 procedure TWebModule1.WebModule1writerTopAction(Sender: TObject;
291 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
295 data := TJSONObject.Create;
296 DataModule1.magazines(writerId, data);
297 Response.ContentType := 'text/html;charset=utf-8';
298 mustache := TSynMustache.Parse(writerTop.Content);
299 Response.Content := mustache.RenderJSON(data.ToJSON);
303 procedure TWebModule1.WebModuleCreate(Sender: TObject);