googleacceleratedmobilepageurl.pp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493
  1. unit googleacceleratedmobilepageurl;
  2. {$MODE objfpc}
  3. {$H+}
  4. interface
  5. uses sysutils, classes, googleservice, restbase, googlebase;
  6. type
  7. //Top-level schema types
  8. TAmpUrl = Class;
  9. TAmpUrlError = Class;
  10. TBatchGetAmpUrlsRequest = Class;
  11. TBatchGetAmpUrlsResponse = Class;
  12. TAmpUrlArray = Array of TAmpUrl;
  13. TAmpUrlErrorArray = Array of TAmpUrlError;
  14. TBatchGetAmpUrlsRequestArray = Array of TBatchGetAmpUrlsRequest;
  15. TBatchGetAmpUrlsResponseArray = Array of TBatchGetAmpUrlsResponse;
  16. //Anonymous types, using auto-generated names
  17. TBatchGetAmpUrlsResponseTypeurlErrorsArray = Array of TAmpUrlError;
  18. TBatchGetAmpUrlsResponseTypeampUrlsArray = Array of TAmpUrl;
  19. { --------------------------------------------------------------------
  20. TAmpUrl
  21. --------------------------------------------------------------------}
  22. TAmpUrl = Class(TGoogleBaseObject)
  23. Private
  24. FampUrl : String;
  25. ForiginalUrl : String;
  26. FcdnAmpUrl : String;
  27. Protected
  28. //Property setters
  29. Procedure SetampUrl(AIndex : Integer; const AValue : String); virtual;
  30. Procedure SetoriginalUrl(AIndex : Integer; const AValue : String); virtual;
  31. Procedure SetcdnAmpUrl(AIndex : Integer; const AValue : String); virtual;
  32. Public
  33. Published
  34. Property ampUrl : String Index 0 Read FampUrl Write SetampUrl;
  35. Property originalUrl : String Index 8 Read ForiginalUrl Write SetoriginalUrl;
  36. Property cdnAmpUrl : String Index 16 Read FcdnAmpUrl Write SetcdnAmpUrl;
  37. end;
  38. TAmpUrlClass = Class of TAmpUrl;
  39. { --------------------------------------------------------------------
  40. TAmpUrlError
  41. --------------------------------------------------------------------}
  42. TAmpUrlError = Class(TGoogleBaseObject)
  43. Private
  44. ForiginalUrl : String;
  45. FerrorCode : String;
  46. FerrorMessage : String;
  47. Protected
  48. //Property setters
  49. Procedure SetoriginalUrl(AIndex : Integer; const AValue : String); virtual;
  50. Procedure SeterrorCode(AIndex : Integer; const AValue : String); virtual;
  51. Procedure SeterrorMessage(AIndex : Integer; const AValue : String); virtual;
  52. Public
  53. Published
  54. Property originalUrl : String Index 0 Read ForiginalUrl Write SetoriginalUrl;
  55. Property errorCode : String Index 8 Read FerrorCode Write SeterrorCode;
  56. Property errorMessage : String Index 16 Read FerrorMessage Write SeterrorMessage;
  57. end;
  58. TAmpUrlErrorClass = Class of TAmpUrlError;
  59. { --------------------------------------------------------------------
  60. TBatchGetAmpUrlsRequest
  61. --------------------------------------------------------------------}
  62. TBatchGetAmpUrlsRequest = Class(TGoogleBaseObject)
  63. Private
  64. Furls : TStringArray;
  65. Protected
  66. //Property setters
  67. Procedure Seturls(AIndex : Integer; const AValue : TStringArray); virtual;
  68. //2.6.4. bug workaround
  69. {$IFDEF VER2_6}
  70. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  71. {$ENDIF VER2_6}
  72. Public
  73. Published
  74. Property urls : TStringArray Index 0 Read Furls Write Seturls;
  75. end;
  76. TBatchGetAmpUrlsRequestClass = Class of TBatchGetAmpUrlsRequest;
  77. { --------------------------------------------------------------------
  78. TBatchGetAmpUrlsResponse
  79. --------------------------------------------------------------------}
  80. TBatchGetAmpUrlsResponse = Class(TGoogleBaseObject)
  81. Private
  82. FurlErrors : TBatchGetAmpUrlsResponseTypeurlErrorsArray;
  83. FampUrls : TBatchGetAmpUrlsResponseTypeampUrlsArray;
  84. Protected
  85. //Property setters
  86. Procedure SeturlErrors(AIndex : Integer; const AValue : TBatchGetAmpUrlsResponseTypeurlErrorsArray); virtual;
  87. Procedure SetampUrls(AIndex : Integer; const AValue : TBatchGetAmpUrlsResponseTypeampUrlsArray); virtual;
  88. //2.6.4. bug workaround
  89. {$IFDEF VER2_6}
  90. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  91. {$ENDIF VER2_6}
  92. Public
  93. Published
  94. Property urlErrors : TBatchGetAmpUrlsResponseTypeurlErrorsArray Index 0 Read FurlErrors Write SeturlErrors;
  95. Property ampUrls : TBatchGetAmpUrlsResponseTypeampUrlsArray Index 8 Read FampUrls Write SetampUrls;
  96. end;
  97. TBatchGetAmpUrlsResponseClass = Class of TBatchGetAmpUrlsResponse;
  98. { --------------------------------------------------------------------
  99. TAmpUrlsResource
  100. --------------------------------------------------------------------}
  101. TAmpUrlsResource = Class(TGoogleResource)
  102. Public
  103. Class Function ResourceName : String; override;
  104. Class Function DefaultAPI : TGoogleAPIClass; override;
  105. Function BatchGet(aBatchGetAmpUrlsRequest : TBatchGetAmpUrlsRequest) : TBatchGetAmpUrlsResponse;
  106. end;
  107. { --------------------------------------------------------------------
  108. TAcceleratedmobilepageurlAPI
  109. --------------------------------------------------------------------}
  110. TAcceleratedmobilepageurlAPI = Class(TGoogleAPI)
  111. Private
  112. FAmpUrlsInstance : TAmpUrlsResource;
  113. Function GetAmpUrlsInstance : TAmpUrlsResource;virtual;
  114. Public
  115. //Override class functions with API info
  116. Class Function APIName : String; override;
  117. Class Function APIVersion : String; override;
  118. Class Function APIRevision : String; override;
  119. Class Function APIID : String; override;
  120. Class Function APITitle : String; override;
  121. Class Function APIDescription : String; override;
  122. Class Function APIOwnerDomain : String; override;
  123. Class Function APIOwnerName : String; override;
  124. Class Function APIIcon16 : String; override;
  125. Class Function APIIcon32 : String; override;
  126. Class Function APIdocumentationLink : String; override;
  127. Class Function APIrootUrl : string; override;
  128. Class Function APIbasePath : string;override;
  129. Class Function APIbaseURL : String;override;
  130. Class Function APIProtocol : string;override;
  131. Class Function APIservicePath : string;override;
  132. Class Function APIbatchPath : String;override;
  133. Class Function APIAuthScopes : TScopeInfoArray;override;
  134. Class Function APINeedsAuth : Boolean;override;
  135. Class Procedure RegisterAPIResources; override;
  136. //Add create function for resources
  137. Function CreateAmpUrlsResource(AOwner : TComponent) : TAmpUrlsResource;virtual;overload;
  138. Function CreateAmpUrlsResource : TAmpUrlsResource;virtual;overload;
  139. //Add default on-demand instances for resources
  140. Property AmpUrlsResource : TAmpUrlsResource Read GetAmpUrlsInstance;
  141. end;
  142. implementation
  143. { --------------------------------------------------------------------
  144. TAmpUrl
  145. --------------------------------------------------------------------}
  146. Procedure TAmpUrl.SetampUrl(AIndex : Integer; const AValue : String);
  147. begin
  148. If (FampUrl=AValue) then exit;
  149. FampUrl:=AValue;
  150. MarkPropertyChanged(AIndex);
  151. end;
  152. Procedure TAmpUrl.SetoriginalUrl(AIndex : Integer; const AValue : String);
  153. begin
  154. If (ForiginalUrl=AValue) then exit;
  155. ForiginalUrl:=AValue;
  156. MarkPropertyChanged(AIndex);
  157. end;
  158. Procedure TAmpUrl.SetcdnAmpUrl(AIndex : Integer; const AValue : String);
  159. begin
  160. If (FcdnAmpUrl=AValue) then exit;
  161. FcdnAmpUrl:=AValue;
  162. MarkPropertyChanged(AIndex);
  163. end;
  164. { --------------------------------------------------------------------
  165. TAmpUrlError
  166. --------------------------------------------------------------------}
  167. Procedure TAmpUrlError.SetoriginalUrl(AIndex : Integer; const AValue : String);
  168. begin
  169. If (ForiginalUrl=AValue) then exit;
  170. ForiginalUrl:=AValue;
  171. MarkPropertyChanged(AIndex);
  172. end;
  173. Procedure TAmpUrlError.SeterrorCode(AIndex : Integer; const AValue : String);
  174. begin
  175. If (FerrorCode=AValue) then exit;
  176. FerrorCode:=AValue;
  177. MarkPropertyChanged(AIndex);
  178. end;
  179. Procedure TAmpUrlError.SeterrorMessage(AIndex : Integer; const AValue : String);
  180. begin
  181. If (FerrorMessage=AValue) then exit;
  182. FerrorMessage:=AValue;
  183. MarkPropertyChanged(AIndex);
  184. end;
  185. { --------------------------------------------------------------------
  186. TBatchGetAmpUrlsRequest
  187. --------------------------------------------------------------------}
  188. Procedure TBatchGetAmpUrlsRequest.Seturls(AIndex : Integer; const AValue : TStringArray);
  189. begin
  190. If (Furls=AValue) then exit;
  191. Furls:=AValue;
  192. MarkPropertyChanged(AIndex);
  193. end;
  194. //2.6.4. bug workaround
  195. {$IFDEF VER2_6}
  196. Procedure TBatchGetAmpUrlsRequest.SetArrayLength(Const AName : String; ALength : Longint);
  197. begin
  198. Case AName of
  199. 'urls' : SetLength(Furls,ALength);
  200. else
  201. Inherited SetArrayLength(AName,ALength);
  202. end;
  203. end;
  204. {$ENDIF VER2_6}
  205. { --------------------------------------------------------------------
  206. TBatchGetAmpUrlsResponse
  207. --------------------------------------------------------------------}
  208. Procedure TBatchGetAmpUrlsResponse.SeturlErrors(AIndex : Integer; const AValue : TBatchGetAmpUrlsResponseTypeurlErrorsArray);
  209. begin
  210. If (FurlErrors=AValue) then exit;
  211. FurlErrors:=AValue;
  212. MarkPropertyChanged(AIndex);
  213. end;
  214. Procedure TBatchGetAmpUrlsResponse.SetampUrls(AIndex : Integer; const AValue : TBatchGetAmpUrlsResponseTypeampUrlsArray);
  215. begin
  216. If (FampUrls=AValue) then exit;
  217. FampUrls:=AValue;
  218. MarkPropertyChanged(AIndex);
  219. end;
  220. //2.6.4. bug workaround
  221. {$IFDEF VER2_6}
  222. Procedure TBatchGetAmpUrlsResponse.SetArrayLength(Const AName : String; ALength : Longint);
  223. begin
  224. Case AName of
  225. 'urlerrors' : SetLength(FurlErrors,ALength);
  226. 'ampurls' : SetLength(FampUrls,ALength);
  227. else
  228. Inherited SetArrayLength(AName,ALength);
  229. end;
  230. end;
  231. {$ENDIF VER2_6}
  232. { --------------------------------------------------------------------
  233. TAmpUrlsResource
  234. --------------------------------------------------------------------}
  235. Class Function TAmpUrlsResource.ResourceName : String;
  236. begin
  237. Result:='ampUrls';
  238. end;
  239. Class Function TAmpUrlsResource.DefaultAPI : TGoogleAPIClass;
  240. begin
  241. Result:=TacceleratedmobilepageurlAPI;
  242. end;
  243. Function TAmpUrlsResource.BatchGet(aBatchGetAmpUrlsRequest : TBatchGetAmpUrlsRequest) : TBatchGetAmpUrlsResponse;
  244. Const
  245. _HTTPMethod = 'POST';
  246. _Path = 'v1/ampUrls:batchGet';
  247. _Methodid = 'acceleratedmobilepageurl.ampUrls.batchGet';
  248. begin
  249. Result:=ServiceCall(_HTTPMethod,_Path,'',aBatchGetAmpUrlsRequest,TBatchGetAmpUrlsResponse) as TBatchGetAmpUrlsResponse;
  250. end;
  251. { --------------------------------------------------------------------
  252. TAcceleratedmobilepageurlAPI
  253. --------------------------------------------------------------------}
  254. Class Function TAcceleratedmobilepageurlAPI.APIName : String;
  255. begin
  256. Result:='acceleratedmobilepageurl';
  257. end;
  258. Class Function TAcceleratedmobilepageurlAPI.APIVersion : String;
  259. begin
  260. Result:='v1';
  261. end;
  262. Class Function TAcceleratedmobilepageurlAPI.APIRevision : String;
  263. begin
  264. Result:='20160518';
  265. end;
  266. Class Function TAcceleratedmobilepageurlAPI.APIID : String;
  267. begin
  268. Result:='acceleratedmobilepageurl:v1';
  269. end;
  270. Class Function TAcceleratedmobilepageurlAPI.APITitle : String;
  271. begin
  272. Result:='Accelerated Mobile Page (AMP) URL API';
  273. end;
  274. Class Function TAcceleratedmobilepageurlAPI.APIDescription : String;
  275. begin
  276. Result:='This API contains a single method, [batchGet](/amp/cache/reference/acceleratedmobilepageurl/rest/v1/ampUrls/batchGet). Call this method to retrieve the AMP URL (and equivalent AMP Cache URL) for given public URL(s). For more information, see [Link to AMP Content](/amp/cache/use-amp-url).';
  277. end;
  278. Class Function TAcceleratedmobilepageurlAPI.APIOwnerDomain : String;
  279. begin
  280. Result:='google.com';
  281. end;
  282. Class Function TAcceleratedmobilepageurlAPI.APIOwnerName : String;
  283. begin
  284. Result:='Google';
  285. end;
  286. Class Function TAcceleratedmobilepageurlAPI.APIIcon16 : String;
  287. begin
  288. Result:='http://www.google.com/images/icons/product/search-16.gif';
  289. end;
  290. Class Function TAcceleratedmobilepageurlAPI.APIIcon32 : String;
  291. begin
  292. Result:='http://www.google.com/images/icons/product/search-32.gif';
  293. end;
  294. Class Function TAcceleratedmobilepageurlAPI.APIdocumentationLink : String;
  295. begin
  296. Result:='https://developers.google.com/amp/cache/';
  297. end;
  298. Class Function TAcceleratedmobilepageurlAPI.APIrootUrl : string;
  299. begin
  300. Result:='https://acceleratedmobilepageurl.googleapis.com/';
  301. end;
  302. Class Function TAcceleratedmobilepageurlAPI.APIbasePath : string;
  303. begin
  304. Result:='';
  305. end;
  306. Class Function TAcceleratedmobilepageurlAPI.APIbaseURL : String;
  307. begin
  308. Result:='https://acceleratedmobilepageurl.googleapis.com/';
  309. end;
  310. Class Function TAcceleratedmobilepageurlAPI.APIProtocol : string;
  311. begin
  312. Result:='rest';
  313. end;
  314. Class Function TAcceleratedmobilepageurlAPI.APIservicePath : string;
  315. begin
  316. Result:='';
  317. end;
  318. Class Function TAcceleratedmobilepageurlAPI.APIbatchPath : String;
  319. begin
  320. Result:='batch';
  321. end;
  322. Class Function TAcceleratedmobilepageurlAPI.APIAuthScopes : TScopeInfoArray;
  323. begin
  324. SetLength(Result,0);
  325. end;
  326. Class Function TAcceleratedmobilepageurlAPI.APINeedsAuth : Boolean;
  327. begin
  328. Result:=False;
  329. end;
  330. Class Procedure TAcceleratedmobilepageurlAPI.RegisterAPIResources;
  331. begin
  332. TAmpUrl.RegisterObject;
  333. TAmpUrlError.RegisterObject;
  334. TBatchGetAmpUrlsRequest.RegisterObject;
  335. TBatchGetAmpUrlsResponse.RegisterObject;
  336. end;
  337. Function TAcceleratedmobilepageurlAPI.GetAmpUrlsInstance : TAmpUrlsResource;
  338. begin
  339. if (FAmpUrlsInstance=Nil) then
  340. FAmpUrlsInstance:=CreateAmpUrlsResource;
  341. Result:=FAmpUrlsInstance;
  342. end;
  343. Function TAcceleratedmobilepageurlAPI.CreateAmpUrlsResource : TAmpUrlsResource;
  344. begin
  345. Result:=CreateAmpUrlsResource(Self);
  346. end;
  347. Function TAcceleratedmobilepageurlAPI.CreateAmpUrlsResource(AOwner : TComponent) : TAmpUrlsResource;
  348. begin
  349. Result:=TAmpUrlsResource.Create(AOwner);
  350. Result.API:=Self.API;
  351. end;
  352. initialization
  353. TAcceleratedmobilepageurlAPI.RegisterAPI;
  354. end.