googletasks.pp 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178
  1. unit googletasks;
  2. {
  3. **********************************************************************
  4. This file is part of the Free Component Library (FCL)
  5. Copyright (c) 2015 The free pascal team.
  6. See the file COPYING.FPC, included in this distribution,
  7. for details about the copyright.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  11. **********************************************************************
  12. }
  13. //Generated on: 9-5-15 13:22:59
  14. {$MODE objfpc}
  15. {$H+}
  16. interface
  17. uses sysutils, classes, googleservice, restbase, googlebase;
  18. type
  19. //Top-level schema types
  20. TTask = class;
  21. TTaskList = class;
  22. TTaskLists = class;
  23. TTasks = class;
  24. TTaskArray = Array of TTask;
  25. TTaskListArray = Array of TTaskList;
  26. TTaskListsArray = Array of TTaskLists;
  27. TTasksArray = Array of TTasks;
  28. //Anonymous types, using auto-generated names
  29. TTaskTypelinksItem = class;
  30. TTaskTypelinksArray = Array of TTaskTypelinksItem;
  31. TTaskListsTypeitemsArray = Array of TTaskList;
  32. TTasksTypeitemsArray = Array of TTask;
  33. { --------------------------------------------------------------------
  34. TTaskTypelinksItem
  35. --------------------------------------------------------------------}
  36. TTaskTypelinksItem = Class(TGoogleBaseObject)
  37. Private
  38. Fdescription : String;
  39. Flink : String;
  40. F_type : String;
  41. Protected
  42. Class Function ExportPropertyName(Const AName : String) : string; override;
  43. //Property setters
  44. Procedure Setdescription(AIndex : Integer; AValue : String); virtual;
  45. Procedure Setlink(AIndex : Integer; AValue : String); virtual;
  46. Procedure Set_type(AIndex : Integer; AValue : String); virtual;
  47. Public
  48. Published
  49. Property description : String Index 0 Read Fdescription Write Setdescription;
  50. Property link : String Index 8 Read Flink Write Setlink;
  51. Property _type : String Index 16 Read F_type Write Set_type;
  52. end;
  53. TTaskTypelinksItemClass = Class of TTaskTypelinksItem;
  54. { --------------------------------------------------------------------
  55. TTask
  56. --------------------------------------------------------------------}
  57. TTask = Class(TGoogleBaseObject)
  58. Private
  59. Fcompleted : TDatetime;
  60. Fdeleted : boolean;
  61. Fdue : TDatetime;
  62. Fetag : String;
  63. Fhidden : boolean;
  64. Fid : String;
  65. Fkind : String;
  66. Flinks : TTaskTypelinksArray;
  67. Fnotes : String;
  68. Fparent : String;
  69. Fposition : String;
  70. FselfLink : String;
  71. Fstatus : String;
  72. Ftitle : String;
  73. Fupdated : TDatetime;
  74. Protected
  75. //Property setters
  76. Procedure Setcompleted(AIndex : Integer; AValue : TDatetime); virtual;
  77. Procedure Setdeleted(AIndex : Integer; AValue : boolean); virtual;
  78. Procedure Setdue(AIndex : Integer; AValue : TDatetime); virtual;
  79. Procedure Setetag(AIndex : Integer; AValue : String); virtual;
  80. Procedure Sethidden(AIndex : Integer; AValue : boolean); virtual;
  81. Procedure Setid(AIndex : Integer; AValue : String); virtual;
  82. Procedure Setkind(AIndex : Integer; AValue : String); virtual;
  83. Procedure Setlinks(AIndex : Integer; AValue : TTaskTypelinksArray); virtual;
  84. Procedure Setnotes(AIndex : Integer; AValue : String); virtual;
  85. Procedure Setparent(AIndex : Integer; AValue : String); virtual;
  86. Procedure Setposition(AIndex : Integer; AValue : String); virtual;
  87. Procedure SetselfLink(AIndex : Integer; AValue : String); virtual;
  88. Procedure Setstatus(AIndex : Integer; AValue : String); virtual;
  89. Procedure Settitle(AIndex : Integer; AValue : String); virtual;
  90. Procedure Setupdated(AIndex : Integer; AValue : TDatetime); virtual;
  91. Public
  92. Published
  93. Property completed : TDatetime Index 0 Read Fcompleted Write Setcompleted;
  94. Property deleted : boolean Index 8 Read Fdeleted Write Setdeleted;
  95. Property due : TDatetime Index 16 Read Fdue Write Setdue;
  96. Property etag : String Index 24 Read Fetag Write Setetag;
  97. Property hidden : boolean Index 32 Read Fhidden Write Sethidden;
  98. Property id : String Index 40 Read Fid Write Setid;
  99. Property kind : String Index 48 Read Fkind Write Setkind;
  100. Property links : TTaskTypelinksArray Index 56 Read Flinks Write Setlinks;
  101. Property notes : String Index 64 Read Fnotes Write Setnotes;
  102. Property parent : String Index 72 Read Fparent Write Setparent;
  103. Property position : String Index 80 Read Fposition Write Setposition;
  104. Property selfLink : String Index 88 Read FselfLink Write SetselfLink;
  105. Property status : String Index 96 Read Fstatus Write Setstatus;
  106. Property title : String Index 104 Read Ftitle Write Settitle;
  107. Property updated : TDatetime Index 112 Read Fupdated Write Setupdated;
  108. end;
  109. TTaskClass = Class of TTask;
  110. { --------------------------------------------------------------------
  111. TTaskList
  112. --------------------------------------------------------------------}
  113. TTaskList = Class(TGoogleBaseObject)
  114. Private
  115. Fetag : String;
  116. Fid : String;
  117. Fkind : String;
  118. FselfLink : String;
  119. Ftitle : String;
  120. Fupdated : TDatetime;
  121. Protected
  122. //Property setters
  123. Procedure Setetag(AIndex : Integer; AValue : String); virtual;
  124. Procedure Setid(AIndex : Integer; AValue : String); virtual;
  125. Procedure Setkind(AIndex : Integer; AValue : String); virtual;
  126. Procedure SetselfLink(AIndex : Integer; AValue : String); virtual;
  127. Procedure Settitle(AIndex : Integer; AValue : String); virtual;
  128. Procedure Setupdated(AIndex : Integer; AValue : TDatetime); virtual;
  129. Public
  130. Published
  131. Property etag : String Index 0 Read Fetag Write Setetag;
  132. Property id : String Index 8 Read Fid Write Setid;
  133. Property kind : String Index 16 Read Fkind Write Setkind;
  134. Property selfLink : String Index 24 Read FselfLink Write SetselfLink;
  135. Property title : String Index 32 Read Ftitle Write Settitle;
  136. Property updated : TDatetime Index 40 Read Fupdated Write Setupdated;
  137. end;
  138. TTaskListClass = Class of TTaskList;
  139. { --------------------------------------------------------------------
  140. TTaskLists
  141. --------------------------------------------------------------------}
  142. TTaskLists = Class(TGoogleBaseObject)
  143. Private
  144. Fetag : String;
  145. Fitems : TTaskListsTypeitemsArray;
  146. Fkind : String;
  147. FnextPageToken : String;
  148. Protected
  149. //Property setters
  150. Procedure Setetag(AIndex : Integer; AValue : String); virtual;
  151. Procedure Setitems(AIndex : Integer; AValue : TTaskListsTypeitemsArray); virtual;
  152. Procedure Setkind(AIndex : Integer; AValue : String); virtual;
  153. Procedure SetnextPageToken(AIndex : Integer; AValue : String); virtual;
  154. Public
  155. Published
  156. Property etag : String Index 0 Read Fetag Write Setetag;
  157. Property items : TTaskListsTypeitemsArray Index 8 Read Fitems Write Setitems;
  158. Property kind : String Index 16 Read Fkind Write Setkind;
  159. Property nextPageToken : String Index 24 Read FnextPageToken Write SetnextPageToken;
  160. end;
  161. TTaskListsClass = Class of TTaskLists;
  162. { --------------------------------------------------------------------
  163. TTasks
  164. --------------------------------------------------------------------}
  165. TTasks = Class(TGoogleBaseObject)
  166. Private
  167. Fetag : String;
  168. Fitems : TTasksTypeitemsArray;
  169. Fkind : String;
  170. FnextPageToken : String;
  171. Protected
  172. //Property setters
  173. Procedure Setetag(AIndex : Integer; AValue : String); virtual;
  174. Procedure Setitems(AIndex : Integer; AValue : TTasksTypeitemsArray); virtual;
  175. Procedure Setkind(AIndex : Integer; AValue : String); virtual;
  176. Procedure SetnextPageToken(AIndex : Integer; AValue : String); virtual;
  177. Public
  178. Published
  179. Property etag : String Index 0 Read Fetag Write Setetag;
  180. Property items : TTasksTypeitemsArray Index 8 Read Fitems Write Setitems;
  181. Property kind : String Index 16 Read Fkind Write Setkind;
  182. Property nextPageToken : String Index 24 Read FnextPageToken Write SetnextPageToken;
  183. end;
  184. TTasksClass = Class of TTasks;
  185. { --------------------------------------------------------------------
  186. TTasklistsResource
  187. --------------------------------------------------------------------}
  188. //Optional query Options for TTasklistsResource, method List
  189. TTasklistsListOptions = Record
  190. maxResults : int64;
  191. pageToken : String;
  192. end;
  193. TTasklistsResource = Class(TGoogleResource)
  194. Public
  195. Class Function ResourceName : String; override;
  196. Class Function DefaultAPI : TGoogleAPIClass; override;
  197. Procedure Delete(tasklist: string);
  198. Function Get(tasklist: string) : TTaskList;
  199. Function Insert(aTaskList : TTaskList) : TTaskList;
  200. Function List(AQuery : string = '') : TTaskLists;
  201. Function List(AQuery : TTasklistslistOptions) : TTaskLists;
  202. Function Patch(tasklist: string; aTaskList : TTaskList) : TTaskList;
  203. Function Update(tasklist: string; aTaskList : TTaskList) : TTaskList;
  204. end;
  205. { --------------------------------------------------------------------
  206. TTasksResource
  207. --------------------------------------------------------------------}
  208. //Optional query Options for TTasksResource, method Insert
  209. TTasksInsertOptions = Record
  210. parent : String;
  211. previous : String;
  212. end;
  213. //Optional query Options for TTasksResource, method List
  214. TTasksListOptions = Record
  215. completedMax : String;
  216. completedMin : String;
  217. dueMax : String;
  218. dueMin : String;
  219. maxResults : int64;
  220. pageToken : String;
  221. showCompleted : boolean;
  222. showDeleted : boolean;
  223. showHidden : boolean;
  224. updatedMin : String;
  225. end;
  226. //Optional query Options for TTasksResource, method Move
  227. TTasksMoveOptions = Record
  228. parent : String;
  229. previous : String;
  230. end;
  231. TTasksResource = Class(TGoogleResource)
  232. Public
  233. Class Function ResourceName : String; override;
  234. Class Function DefaultAPI : TGoogleAPIClass; override;
  235. Procedure Clear(tasklist: string);
  236. Procedure Delete(task: string; tasklist: string);
  237. Function Get(task: string; tasklist: string) : TTask;
  238. Function Insert(tasklist: string; aTask : TTask; AQuery : string = '') : TTask;
  239. Function Insert(tasklist: string; aTask : TTask; AQuery : TTasksinsertOptions) : TTask;
  240. Function List(tasklist: string; AQuery : string = '') : TTasks;
  241. Function List(tasklist: string; AQuery : TTaskslistOptions) : TTasks;
  242. Function Move(task: string; tasklist: string; AQuery : string = '') : TTask;
  243. Function Move(task: string; tasklist: string; AQuery : TTasksmoveOptions) : TTask;
  244. Function Patch(task: string; tasklist: string; aTask : TTask) : TTask;
  245. Function Update(task: string; tasklist: string; aTask : TTask) : TTask;
  246. end;
  247. { --------------------------------------------------------------------
  248. TTasksAPI
  249. --------------------------------------------------------------------}
  250. TTasksAPI = Class(TGoogleAPI)
  251. Private
  252. FTasklistsInstance : TTasklistsResource;
  253. FTasksInstance : TTasksResource;
  254. Function GetTasklistsInstance : TTasklistsResource;virtual;
  255. Function GetTasksInstance : TTasksResource;virtual;
  256. Public
  257. //Override class functions with API info
  258. Class Function APIName : String; override;
  259. Class Function APIVersion : String; override;
  260. Class Function APIRevision : String; override;
  261. Class Function APIID : String; override;
  262. Class Function APITitle : String; override;
  263. Class Function APIDescription : String; override;
  264. Class Function APIOwnerDomain : String; override;
  265. Class Function APIOwnerName : String; override;
  266. Class Function APIIcon16 : String; override;
  267. Class Function APIIcon32 : String; override;
  268. Class Function APIdocumentationLink : String; override;
  269. Class Function APIrootUrl : string; override;
  270. Class Function APIbasePath : string;override;
  271. Class Function APIbaseURL : String;override;
  272. Class Function APIProtocol : string;override;
  273. Class Function APIservicePath : string;override;
  274. Class Function APIbatchPath : String;override;
  275. Class Function APIAuthScopes : TScopeInfoArray;override;
  276. Class Function APINeedsAuth : Boolean;override;
  277. Class Procedure RegisterAPIResources; override;
  278. //Add create function for resources
  279. Function CreateTasklistsResource(AOwner : TComponent) : TTasklistsResource;virtual;overload;
  280. Function CreateTasklistsResource : TTasklistsResource;virtual;overload;
  281. Function CreateTasksResource(AOwner : TComponent) : TTasksResource;virtual;overload;
  282. Function CreateTasksResource : TTasksResource;virtual;overload;
  283. //Add default on-demand instances for resources
  284. Property TasklistsResource : TTasklistsResource Read GetTasklistsInstance;
  285. Property TasksResource : TTasksResource Read GetTasksInstance;
  286. end;
  287. implementation
  288. { --------------------------------------------------------------------
  289. TTaskTypelinksItem
  290. --------------------------------------------------------------------}
  291. Procedure TTaskTypelinksItem.Setdescription(AIndex : Integer; AValue : String);
  292. begin
  293. If (Fdescription=AValue) then exit;
  294. Fdescription:=AValue;
  295. MarkPropertyChanged(AIndex);
  296. end;
  297. Procedure TTaskTypelinksItem.Setlink(AIndex : Integer; AValue : String);
  298. begin
  299. If (Flink=AValue) then exit;
  300. Flink:=AValue;
  301. MarkPropertyChanged(AIndex);
  302. end;
  303. Procedure TTaskTypelinksItem.Set_type(AIndex : Integer; AValue : String);
  304. begin
  305. If (F_type=AValue) then exit;
  306. F_type:=AValue;
  307. MarkPropertyChanged(AIndex);
  308. end;
  309. Class Function TTaskTypelinksItem.ExportPropertyName(Const AName : String) :String;
  310. begin
  311. Case AName of
  312. '_type' : Result:='type';
  313. else
  314. Result:=Inherited ExportPropertyName(AName);
  315. end;
  316. end;
  317. { --------------------------------------------------------------------
  318. TTask
  319. --------------------------------------------------------------------}
  320. Procedure TTask.Setcompleted(AIndex : Integer; AValue : TDatetime);
  321. begin
  322. If (Fcompleted=AValue) then exit;
  323. Fcompleted:=AValue;
  324. MarkPropertyChanged(AIndex);
  325. end;
  326. Procedure TTask.Setdeleted(AIndex : Integer; AValue : boolean);
  327. begin
  328. If (Fdeleted=AValue) then exit;
  329. Fdeleted:=AValue;
  330. MarkPropertyChanged(AIndex);
  331. end;
  332. Procedure TTask.Setdue(AIndex : Integer; AValue : TDatetime);
  333. begin
  334. If (Fdue=AValue) then exit;
  335. Fdue:=AValue;
  336. MarkPropertyChanged(AIndex);
  337. end;
  338. Procedure TTask.Setetag(AIndex : Integer; AValue : String);
  339. begin
  340. If (Fetag=AValue) then exit;
  341. Fetag:=AValue;
  342. MarkPropertyChanged(AIndex);
  343. end;
  344. Procedure TTask.Sethidden(AIndex : Integer; AValue : boolean);
  345. begin
  346. If (Fhidden=AValue) then exit;
  347. Fhidden:=AValue;
  348. MarkPropertyChanged(AIndex);
  349. end;
  350. Procedure TTask.Setid(AIndex : Integer; AValue : String);
  351. begin
  352. If (Fid=AValue) then exit;
  353. Fid:=AValue;
  354. MarkPropertyChanged(AIndex);
  355. end;
  356. Procedure TTask.Setkind(AIndex : Integer; AValue : String);
  357. begin
  358. If (Fkind=AValue) then exit;
  359. Fkind:=AValue;
  360. MarkPropertyChanged(AIndex);
  361. end;
  362. Procedure TTask.Setlinks(AIndex : Integer; AValue : TTaskTypelinksArray);
  363. begin
  364. If (Flinks=AValue) then exit;
  365. Flinks:=AValue;
  366. MarkPropertyChanged(AIndex);
  367. end;
  368. Procedure TTask.Setnotes(AIndex : Integer; AValue : String);
  369. begin
  370. If (Fnotes=AValue) then exit;
  371. Fnotes:=AValue;
  372. MarkPropertyChanged(AIndex);
  373. end;
  374. Procedure TTask.Setparent(AIndex : Integer; AValue : String);
  375. begin
  376. If (Fparent=AValue) then exit;
  377. Fparent:=AValue;
  378. MarkPropertyChanged(AIndex);
  379. end;
  380. Procedure TTask.Setposition(AIndex : Integer; AValue : String);
  381. begin
  382. If (Fposition=AValue) then exit;
  383. Fposition:=AValue;
  384. MarkPropertyChanged(AIndex);
  385. end;
  386. Procedure TTask.SetselfLink(AIndex : Integer; AValue : String);
  387. begin
  388. If (FselfLink=AValue) then exit;
  389. FselfLink:=AValue;
  390. MarkPropertyChanged(AIndex);
  391. end;
  392. Procedure TTask.Setstatus(AIndex : Integer; AValue : String);
  393. begin
  394. If (Fstatus=AValue) then exit;
  395. Fstatus:=AValue;
  396. MarkPropertyChanged(AIndex);
  397. end;
  398. Procedure TTask.Settitle(AIndex : Integer; AValue : String);
  399. begin
  400. If (Ftitle=AValue) then exit;
  401. Ftitle:=AValue;
  402. MarkPropertyChanged(AIndex);
  403. end;
  404. Procedure TTask.Setupdated(AIndex : Integer; AValue : TDatetime);
  405. begin
  406. If (Fupdated=AValue) then exit;
  407. Fupdated:=AValue;
  408. MarkPropertyChanged(AIndex);
  409. end;
  410. { --------------------------------------------------------------------
  411. TTaskList
  412. --------------------------------------------------------------------}
  413. Procedure TTaskList.Setetag(AIndex : Integer; AValue : String);
  414. begin
  415. If (Fetag=AValue) then exit;
  416. Fetag:=AValue;
  417. MarkPropertyChanged(AIndex);
  418. end;
  419. Procedure TTaskList.Setid(AIndex : Integer; AValue : String);
  420. begin
  421. If (Fid=AValue) then exit;
  422. Fid:=AValue;
  423. MarkPropertyChanged(AIndex);
  424. end;
  425. Procedure TTaskList.Setkind(AIndex : Integer; AValue : String);
  426. begin
  427. If (Fkind=AValue) then exit;
  428. Fkind:=AValue;
  429. MarkPropertyChanged(AIndex);
  430. end;
  431. Procedure TTaskList.SetselfLink(AIndex : Integer; AValue : String);
  432. begin
  433. If (FselfLink=AValue) then exit;
  434. FselfLink:=AValue;
  435. MarkPropertyChanged(AIndex);
  436. end;
  437. Procedure TTaskList.Settitle(AIndex : Integer; AValue : String);
  438. begin
  439. If (Ftitle=AValue) then exit;
  440. Ftitle:=AValue;
  441. MarkPropertyChanged(AIndex);
  442. end;
  443. Procedure TTaskList.Setupdated(AIndex : Integer; AValue : TDatetime);
  444. begin
  445. If (Fupdated=AValue) then exit;
  446. Fupdated:=AValue;
  447. MarkPropertyChanged(AIndex);
  448. end;
  449. { --------------------------------------------------------------------
  450. TTaskLists
  451. --------------------------------------------------------------------}
  452. Procedure TTaskLists.Setetag(AIndex : Integer; AValue : String);
  453. begin
  454. If (Fetag=AValue) then exit;
  455. Fetag:=AValue;
  456. MarkPropertyChanged(AIndex);
  457. end;
  458. Procedure TTaskLists.Setitems(AIndex : Integer; AValue : TTaskListsTypeitemsArray);
  459. begin
  460. If (Fitems=AValue) then exit;
  461. Fitems:=AValue;
  462. MarkPropertyChanged(AIndex);
  463. end;
  464. Procedure TTaskLists.Setkind(AIndex : Integer; AValue : String);
  465. begin
  466. If (Fkind=AValue) then exit;
  467. Fkind:=AValue;
  468. MarkPropertyChanged(AIndex);
  469. end;
  470. Procedure TTaskLists.SetnextPageToken(AIndex : Integer; AValue : String);
  471. begin
  472. If (FnextPageToken=AValue) then exit;
  473. FnextPageToken:=AValue;
  474. MarkPropertyChanged(AIndex);
  475. end;
  476. { --------------------------------------------------------------------
  477. TTasks
  478. --------------------------------------------------------------------}
  479. Procedure TTasks.Setetag(AIndex : Integer; AValue : String);
  480. begin
  481. If (Fetag=AValue) then exit;
  482. Fetag:=AValue;
  483. MarkPropertyChanged(AIndex);
  484. end;
  485. Procedure TTasks.Setitems(AIndex : Integer; AValue : TTasksTypeitemsArray);
  486. begin
  487. If (Fitems=AValue) then exit;
  488. Fitems:=AValue;
  489. MarkPropertyChanged(AIndex);
  490. end;
  491. Procedure TTasks.Setkind(AIndex : Integer; AValue : String);
  492. begin
  493. If (Fkind=AValue) then exit;
  494. Fkind:=AValue;
  495. MarkPropertyChanged(AIndex);
  496. end;
  497. Procedure TTasks.SetnextPageToken(AIndex : Integer; AValue : String);
  498. begin
  499. If (FnextPageToken=AValue) then exit;
  500. FnextPageToken:=AValue;
  501. MarkPropertyChanged(AIndex);
  502. end;
  503. { --------------------------------------------------------------------
  504. TTasklistsResource
  505. --------------------------------------------------------------------}
  506. Class Function TTasklistsResource.ResourceName : String;
  507. begin
  508. Result:='tasklists';
  509. end;
  510. Class Function TTasklistsResource.DefaultAPI : TGoogleAPIClass;
  511. begin
  512. Result:=TtasksAPI;
  513. end;
  514. Procedure TTasklistsResource.Delete(tasklist: string);
  515. Const
  516. _HTTPMethod = 'DELETE';
  517. _Path = 'users/@me/lists/{tasklist}';
  518. _Methodid = 'tasks.tasklists.delete';
  519. Var
  520. _P : String;
  521. begin
  522. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  523. ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
  524. end;
  525. Function TTasklistsResource.Get(tasklist: string) : TTaskList;
  526. Const
  527. _HTTPMethod = 'GET';
  528. _Path = 'users/@me/lists/{tasklist}';
  529. _Methodid = 'tasks.tasklists.get';
  530. Var
  531. _P : String;
  532. begin
  533. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  534. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TTaskList) as TTaskList;
  535. end;
  536. Function TTasklistsResource.Insert(aTaskList : TTaskList) : TTaskList;
  537. Const
  538. _HTTPMethod = 'POST';
  539. _Path = 'users/@me/lists';
  540. _Methodid = 'tasks.tasklists.insert';
  541. begin
  542. Result:=ServiceCall(_HTTPMethod,_Path,'',aTaskList,TTaskList) as TTaskList;
  543. end;
  544. Function TTasklistsResource.List(AQuery : string = '') : TTaskLists;
  545. Const
  546. _HTTPMethod = 'GET';
  547. _Path = 'users/@me/lists';
  548. _Methodid = 'tasks.tasklists.list';
  549. begin
  550. Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TTaskLists) as TTaskLists;
  551. end;
  552. Function TTasklistsResource.List(AQuery : TTasklistslistOptions) : TTaskLists;
  553. Var
  554. _Q : String;
  555. begin
  556. _Q:='';
  557. AddToQuery(_Q,'maxResults',AQuery.maxResults);
  558. AddToQuery(_Q,'pageToken',AQuery.pageToken);
  559. Result:=List(_Q);
  560. end;
  561. Function TTasklistsResource.Patch(tasklist: string; aTaskList : TTaskList) : TTaskList;
  562. Const
  563. _HTTPMethod = 'PATCH';
  564. _Path = 'users/@me/lists/{tasklist}';
  565. _Methodid = 'tasks.tasklists.patch';
  566. Var
  567. _P : String;
  568. begin
  569. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  570. Result:=ServiceCall(_HTTPMethod,_P,'',aTaskList,TTaskList) as TTaskList;
  571. end;
  572. Function TTasklistsResource.Update(tasklist: string; aTaskList : TTaskList) : TTaskList;
  573. Const
  574. _HTTPMethod = 'PUT';
  575. _Path = 'users/@me/lists/{tasklist}';
  576. _Methodid = 'tasks.tasklists.update';
  577. Var
  578. _P : String;
  579. begin
  580. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  581. Result:=ServiceCall(_HTTPMethod,_P,'',aTaskList,TTaskList) as TTaskList;
  582. end;
  583. { --------------------------------------------------------------------
  584. TTasksResource
  585. --------------------------------------------------------------------}
  586. Class Function TTasksResource.ResourceName : String;
  587. begin
  588. Result:='tasks';
  589. end;
  590. Class Function TTasksResource.DefaultAPI : TGoogleAPIClass;
  591. begin
  592. Result:=TtasksAPI;
  593. end;
  594. Procedure TTasksResource.Clear(tasklist: string);
  595. Const
  596. _HTTPMethod = 'POST';
  597. _Path = 'lists/{tasklist}/clear';
  598. _Methodid = 'tasks.tasks.clear';
  599. Var
  600. _P : String;
  601. begin
  602. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  603. ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
  604. end;
  605. Procedure TTasksResource.Delete(task: string; tasklist: string);
  606. Const
  607. _HTTPMethod = 'DELETE';
  608. _Path = 'lists/{tasklist}/tasks/{task}';
  609. _Methodid = 'tasks.tasks.delete';
  610. Var
  611. _P : String;
  612. begin
  613. _P:=SubstitutePath(_Path,['task',task,'tasklist',tasklist]);
  614. ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
  615. end;
  616. Function TTasksResource.Get(task: string; tasklist: string) : TTask;
  617. Const
  618. _HTTPMethod = 'GET';
  619. _Path = 'lists/{tasklist}/tasks/{task}';
  620. _Methodid = 'tasks.tasks.get';
  621. Var
  622. _P : String;
  623. begin
  624. _P:=SubstitutePath(_Path,['task',task,'tasklist',tasklist]);
  625. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TTask) as TTask;
  626. end;
  627. Function TTasksResource.Insert(tasklist: string; aTask : TTask; AQuery : string = '') : TTask;
  628. Const
  629. _HTTPMethod = 'POST';
  630. _Path = 'lists/{tasklist}/tasks';
  631. _Methodid = 'tasks.tasks.insert';
  632. Var
  633. _P : String;
  634. begin
  635. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  636. Result:=ServiceCall(_HTTPMethod,_P,AQuery,aTask,TTask) as TTask;
  637. end;
  638. Function TTasksResource.Insert(tasklist: string; aTask : TTask; AQuery : TTasksinsertOptions) : TTask;
  639. Var
  640. _Q : String;
  641. begin
  642. _Q:='';
  643. AddToQuery(_Q,'parent',AQuery.parent);
  644. AddToQuery(_Q,'previous',AQuery.previous);
  645. Result:=Insert(tasklist,aTask,_Q);
  646. end;
  647. Function TTasksResource.List(tasklist: string; AQuery : string = '') : TTasks;
  648. Const
  649. _HTTPMethod = 'GET';
  650. _Path = 'lists/{tasklist}/tasks';
  651. _Methodid = 'tasks.tasks.list';
  652. Var
  653. _P : String;
  654. begin
  655. _P:=SubstitutePath(_Path,['tasklist',tasklist]);
  656. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TTasks) as TTasks;
  657. end;
  658. Function TTasksResource.List(tasklist: string; AQuery : TTaskslistOptions) : TTasks;
  659. Var
  660. _Q : String;
  661. begin
  662. _Q:='';
  663. AddToQuery(_Q,'completedMax',AQuery.completedMax);
  664. AddToQuery(_Q,'completedMin',AQuery.completedMin);
  665. AddToQuery(_Q,'dueMax',AQuery.dueMax);
  666. AddToQuery(_Q,'dueMin',AQuery.dueMin);
  667. AddToQuery(_Q,'maxResults',AQuery.maxResults);
  668. AddToQuery(_Q,'pageToken',AQuery.pageToken);
  669. AddToQuery(_Q,'showCompleted',AQuery.showCompleted);
  670. AddToQuery(_Q,'showDeleted',AQuery.showDeleted);
  671. AddToQuery(_Q,'showHidden',AQuery.showHidden);
  672. AddToQuery(_Q,'updatedMin',AQuery.updatedMin);
  673. Result:=List(tasklist,_Q);
  674. end;
  675. Function TTasksResource.Move(task: string; tasklist: string; AQuery : string = '') : TTask;
  676. Const
  677. _HTTPMethod = 'POST';
  678. _Path = 'lists/{tasklist}/tasks/{task}/move';
  679. _Methodid = 'tasks.tasks.move';
  680. Var
  681. _P : String;
  682. begin
  683. _P:=SubstitutePath(_Path,['task',task,'tasklist',tasklist]);
  684. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TTask) as TTask;
  685. end;
  686. Function TTasksResource.Move(task: string; tasklist: string; AQuery : TTasksmoveOptions) : TTask;
  687. Var
  688. _Q : String;
  689. begin
  690. _Q:='';
  691. AddToQuery(_Q,'parent',AQuery.parent);
  692. AddToQuery(_Q,'previous',AQuery.previous);
  693. Result:=Move(task,tasklist,_Q);
  694. end;
  695. Function TTasksResource.Patch(task: string; tasklist: string; aTask : TTask) : TTask;
  696. Const
  697. _HTTPMethod = 'PATCH';
  698. _Path = 'lists/{tasklist}/tasks/{task}';
  699. _Methodid = 'tasks.tasks.patch';
  700. Var
  701. _P : String;
  702. begin
  703. _P:=SubstitutePath(_Path,['task',task,'tasklist',tasklist]);
  704. Result:=ServiceCall(_HTTPMethod,_P,'',aTask,TTask) as TTask;
  705. end;
  706. Function TTasksResource.Update(task: string; tasklist: string; aTask : TTask) : TTask;
  707. Const
  708. _HTTPMethod = 'PUT';
  709. _Path = 'lists/{tasklist}/tasks/{task}';
  710. _Methodid = 'tasks.tasks.update';
  711. Var
  712. _P : String;
  713. begin
  714. _P:=SubstitutePath(_Path,['task',task,'tasklist',tasklist]);
  715. Result:=ServiceCall(_HTTPMethod,_P,'',aTask,TTask) as TTask;
  716. end;
  717. { --------------------------------------------------------------------
  718. TTasksAPI
  719. --------------------------------------------------------------------}
  720. Class Function TTasksAPI.APIName : String;
  721. begin
  722. Result:='tasks';
  723. end;
  724. Class Function TTasksAPI.APIVersion : String;
  725. begin
  726. Result:='v1';
  727. end;
  728. Class Function TTasksAPI.APIRevision : String;
  729. begin
  730. Result:='20141121';
  731. end;
  732. Class Function TTasksAPI.APIID : String;
  733. begin
  734. Result:='tasks:v1';
  735. end;
  736. Class Function TTasksAPI.APITitle : String;
  737. begin
  738. Result:='Tasks API';
  739. end;
  740. Class Function TTasksAPI.APIDescription : String;
  741. begin
  742. Result:='Lets you manage your tasks and task lists.';
  743. end;
  744. Class Function TTasksAPI.APIOwnerDomain : String;
  745. begin
  746. Result:='google.com';
  747. end;
  748. Class Function TTasksAPI.APIOwnerName : String;
  749. begin
  750. Result:='Google';
  751. end;
  752. Class Function TTasksAPI.APIIcon16 : String;
  753. begin
  754. Result:='https://www.google.com/images/icons/product/tasks-16.png';
  755. end;
  756. Class Function TTasksAPI.APIIcon32 : String;
  757. begin
  758. Result:='https://www.google.com/images/icons/product/tasks-32.png';
  759. end;
  760. Class Function TTasksAPI.APIdocumentationLink : String;
  761. begin
  762. Result:='https://developers.google.com/google-apps/tasks/firstapp';
  763. end;
  764. Class Function TTasksAPI.APIrootUrl : string;
  765. begin
  766. Result:='https://www.googleapis.com/';
  767. end;
  768. Class Function TTasksAPI.APIbasePath : string;
  769. begin
  770. Result:='/tasks/v1/';
  771. end;
  772. Class Function TTasksAPI.APIbaseURL : String;
  773. begin
  774. Result:='https://www.googleapis.com/tasks/v1/';
  775. end;
  776. Class Function TTasksAPI.APIProtocol : string;
  777. begin
  778. Result:='rest';
  779. end;
  780. Class Function TTasksAPI.APIservicePath : string;
  781. begin
  782. Result:='tasks/v1/';
  783. end;
  784. Class Function TTasksAPI.APIbatchPath : String;
  785. begin
  786. Result:='batch';
  787. end;
  788. Class Function TTasksAPI.APIAuthScopes : TScopeInfoArray;
  789. begin
  790. SetLength(Result,2);
  791. Result[0].Name:='https://www.googleapis.com/auth/tasks';
  792. Result[0].Description:='Manage your tasks';
  793. Result[1].Name:='https://www.googleapis.com/auth/tasks.readonly';
  794. Result[1].Description:='View your tasks';
  795. end;
  796. Class Function TTasksAPI.APINeedsAuth : Boolean;
  797. begin
  798. Result:=True;
  799. end;
  800. Class Procedure TTasksAPI.RegisterAPIResources;
  801. begin
  802. TTaskTypelinksItem.RegisterObject;
  803. TTask.RegisterObject;
  804. TTaskList.RegisterObject;
  805. TTaskLists.RegisterObject;
  806. TTasks.RegisterObject;
  807. end;
  808. Function TTasksAPI.GetTasklistsInstance : TTasklistsResource;
  809. begin
  810. if (FTasklistsInstance=Nil) then
  811. FTasklistsInstance:=CreateTasklistsResource;
  812. Result:=FTasklistsInstance;
  813. end;
  814. Function TTasksAPI.CreateTasklistsResource : TTasklistsResource;
  815. begin
  816. Result:=CreateTasklistsResource(Self);
  817. end;
  818. Function TTasksAPI.CreateTasklistsResource(AOwner : TComponent) : TTasklistsResource;
  819. begin
  820. Result:=TTasklistsResource.Create(AOwner);
  821. Result.API:=Self;
  822. end;
  823. Function TTasksAPI.GetTasksInstance : TTasksResource;
  824. begin
  825. if (FTasksInstance=Nil) then
  826. FTasksInstance:=CreateTasksResource;
  827. Result:=FTasksInstance;
  828. end;
  829. Function TTasksAPI.CreateTasksResource : TTasksResource;
  830. begin
  831. Result:=CreateTasksResource(Self);
  832. end;
  833. Function TTasksAPI.CreateTasksResource(AOwner : TComponent) : TTasksResource;
  834. begin
  835. Result:=TTasksResource.Create(AOwner);
  836. Result.API:=Self;
  837. end;
  838. initialization
  839. TTasksAPI.RegisterAPI;
  840. end.