ds/impl/IDsProtocol.js

  1. /**
  2. * @fileoverview Internal definitions used in DsClient
  3. *
  4. * @author anders.rejdebrant@spark-vision.com (Anders Rejdebrant)
  5. */
  6. goog.provide('spv.ds.impl.IDsProtocol');
  7. goog.require('spv.ds.Config');
  8. goog.require('spv.ds.BipAttemptResultCode');
  9. goog.require('spv.ds.UserConfigInfo');
  10. goog.require('spv.ds.ConfigLoadResult');
  11. goog.require('spv.ds.FacebookShareData');
  12. goog.require('spv.ds.FreshConfig');
  13. goog.require('spv.ds.ImageResult');
  14. goog.require('spv.ds.IntroPage');
  15. goog.require('spv.ds.ItemResources');
  16. goog.require('spv.ds.PresentationStructure');
  17. goog.require('spv.ds.PresentationStructureQuery');
  18. goog.require('spv.ds.PublicConfigInfo');
  19. goog.require('spv.ds.SessionStateUpdate');
  20. goog.require('spv.ds.Summary');
  21. goog.require('spv.ds.impl.AuxData');
  22. goog.require('spv.ds.impl.GoalStateResolver');
  23. goog.require('spv.ds.impl.SessionInitData');
  24. goog.require('spv.ds.ipprot_nova.input.BopReadMoreMode');
  25. goog.require('spv.ds.ipprot_nova.input.BopDisabledFlagMode');
  26. /**
  27. * Server protocol interface
  28. *
  29. * @interface
  30. */
  31. spv.ds.impl.IDsProtocol = function() {};
  32. /**
  33. * @param {spv.ds.Config} conf
  34. * @param {spv.ds.ImageParams} img_params
  35. * @param {function(spv.ds.ImageResult)} on_success
  36. * @param {function(Error)} on_failure
  37. */
  38. spv.ds.impl.IDsProtocol.prototype.getConfigImage = function(
  39. conf,
  40. img_params,
  41. on_success,
  42. on_failure) {};
  43. /**
  44. * @param {function(spv.ds.IntroPage)} on_success
  45. * @param {function(Error)} on_failure
  46. */
  47. spv.ds.impl.IDsProtocol.prototype.getIntroPage = function(
  48. on_success,
  49. on_failure) {};
  50. /**
  51. * @param {string} item_id
  52. * @param {string} model
  53. * @param {string} category
  54. * @param {function(Array.<spv.ds.ReadMoreResource>)} on_success
  55. * @param {function(Error)} on_failure
  56. */
  57. spv.ds.impl.IDsProtocol.prototype.getReadMore = function(
  58. item_id,
  59. model,
  60. category,
  61. language,
  62. on_success,
  63. on_failure) {};
  64. /**
  65. * @param {Array<string>} item_ids
  66. * @param {Array<string>} resource_keys
  67. * @param {string} category
  68. * @param {string} model
  69. * @param {string} language
  70. * @param {string} model_group
  71. * @param {function(Object<string,spv.ds.ItemResources>)} on_success
  72. * @param {function(Error)} on_failure
  73. **/
  74. spv.ds.impl.IDsProtocol.prototype.getItemResources = function(
  75. item_ids,
  76. resource_keys,
  77. category,
  78. model,
  79. language,
  80. model_group,
  81. on_success,
  82. on_failure) {};
  83. /**
  84. * @param {string} username
  85. * @param {function(Array.<spv.ds.SavedConfig>)} on_success
  86. * @param {function(Error)} on_failure
  87. */
  88. spv.ds.impl.IDsProtocol.prototype.getUserConfigList = function(
  89. username,
  90. on_success,
  91. on_failure) {};
  92. /**
  93. * @param {string} session_id
  94. * @param {Array.<string>} group_ids
  95. * @param {function()} on_success
  96. * @param {function(Error)} on_failure
  97. */
  98. spv.ds.impl.IDsProtocol.prototype.sessionAddGuiGroupSubscriptions = function(
  99. session_id,
  100. group_ids,
  101. on_success,
  102. on_failure ) {};
  103. /**
  104. * @param {function()} on_success
  105. * @param {function(Error)} on_failure
  106. */
  107. spv.ds.impl.IDsProtocol.prototype.getBuildInfo = function(
  108. on_success,
  109. on_failure ) {};
  110. /**
  111. * @param {string} session_id
  112. * @param {function()} on_success
  113. * @param {function(Error)} on_failure
  114. */
  115. spv.ds.impl.IDsProtocol.prototype.sessionClearGuiGroupSubscriptions = function(
  116. session_id,
  117. on_success,
  118. on_failure ) {};
  119. /**
  120. * @param {string} session_id
  121. * @param {spv.ds.ipprot_nova.input.ProtocolFlexImageParameters} input
  122. * @param {function(spv.ds.ipprot_nova.output.FlexImageResult)} on_success
  123. * @param {function(Error)} on_failure
  124. */
  125. spv.ds.impl.IDsProtocol.prototype.sessionGetFlexImage = function(
  126. session_id,
  127. input,
  128. on_success,
  129. on_failure) {};
  130. /**
  131. * @param {string} session_id
  132. * @param {function(string)} on_success Callback taking the generated pdf url
  133. * @param {function(Error)} on_failure
  134. */
  135. spv.ds.impl.IDsProtocol.prototype.sessionGeneratePdf = function(
  136. session_id,
  137. on_success,
  138. on_failure) {};
  139. /**
  140. * @param {string} session_id
  141. * @param {string} encoding
  142. * @param {function(spv.ds.Config)} on_success
  143. * @param {function(Error)} on_failure
  144. */
  145. spv.ds.impl.IDsProtocol.prototype.sessionGetConfig = function(
  146. session_id,
  147. encoding,
  148. on_success,
  149. on_failure) {};
  150. /**
  151. * @param {string} session_id
  152. * @param {function(Array.<string>)} on_success
  153. * @param {function(Error)} on_failure
  154. */
  155. spv.ds.impl.IDsProtocol.prototype.sessionGetConfigNames = function(
  156. session_id,
  157. on_success,
  158. on_failure) {};
  159. /**
  160. * @param {string} session_id
  161. * @param {function(spv.ds.FacebookShareData)} on_success
  162. * @param {function(Error)} on_failure
  163. */
  164. spv.ds.impl.IDsProtocol.prototype.sessionGetFacebookShareData = function(
  165. session_id,
  166. on_success,
  167. on_failure) {};
  168. /**
  169. * TODO: Remove this method once old booster is completely discontinued.
  170. * Nova's getFreshConfigs is a session free call.
  171. * @param {string} session_id
  172. * @param {number} limit
  173. * @param {number} scale_width
  174. * @param {number} scale_height
  175. * @param {function(Array.<spv.ds.FreshConfig>)} on_success
  176. * @param {function(Error)} on_failure
  177. */
  178. spv.ds.impl.IDsProtocol.prototype.sessionGetFreshConfigs = function(
  179. session_id,
  180. limit,
  181. scale_width,
  182. scale_height,
  183. on_success,
  184. on_failure) {};
  185. /**
  186. * @param {number} limit
  187. * @param {number} scale_width
  188. * @param {number} scale_height
  189. * @param {function(Array.<spv.ds.FreshConfig>)} on_success
  190. * @param {function(Error)} on_failure
  191. */
  192. spv.ds.impl.IDsProtocol.prototype.getFreshConfigs = function(
  193. limit,
  194. scale_width,
  195. scale_height,
  196. on_success,
  197. on_failure) {};
  198. /**
  199. * @param {string} session_id
  200. * @param {spv.ds.ImageParams} img_params
  201. * @param {function(spv.ds.ImageResult)} on_success
  202. * @param {function(Error)} on_failure
  203. */
  204. spv.ds.impl.IDsProtocol.prototype.sessionGetImage = function(
  205. session_id,
  206. img_params,
  207. on_success,
  208. on_failure) {};
  209. /**
  210. * @param {string} session_id
  211. * @param {Array.<string>} item_ids
  212. * @param {string} language
  213. * @param {function(Array.<spv.ds.MenuItem>)} on_success
  214. * @param {function(Error)} on_failure
  215. */
  216. spv.ds.impl.IDsProtocol.prototype.sessionGetItemInfo = function(
  217. session_id,
  218. item_ids,
  219. language,
  220. on_success,
  221. on_failure) {};
  222. /**
  223. * @param {string} session_id
  224. * @param {number} serie_index
  225. * @param {number} frame_index
  226. * @param {string} file_type
  227. * @param {boolean} separate_background
  228. * @param {boolean} separate_shadow
  229. * @param {boolean} all_frames
  230. * @param {boolean} use_hd
  231. * @param {number} image_width
  232. * @param {number} image_height
  233. * @param {function(string)} on_success
  234. * @param {function(Error)} on_failure
  235. */
  236. spv.ds.impl.IDsProtocol.prototype.sessionGetMediaKit = function(
  237. session_id,
  238. serie_index,
  239. frame_index,
  240. file_type,
  241. separate_background,
  242. separate_shadow,
  243. all_frames,
  244. use_hd,
  245. image_width,
  246. image_height,
  247. on_success,
  248. on_failure) {};
  249. /**
  250. * @param {string} session_id
  251. * @param {string} item_id
  252. * @param {function(Array.<spv.ds.impl.GoalStateResolver>)} on_success
  253. * @param {function(Error)} on_failure
  254. */
  255. spv.ds.impl.IDsProtocol.prototype.sessionGetStateResolvers = function(
  256. session_id,
  257. item_id,
  258. on_success,
  259. on_failure) {};
  260. /**
  261. * @param {string} session_id
  262. * @param {string} language
  263. * @param {function(Array.<spv.ds.impl.GoalStateResolver>)} on_success
  264. * @param {function(Error)} on_failure
  265. */
  266. spv.ds.impl.IDsProtocol.prototype.sessionGetInitialConsequenceOfChange = function(
  267. session_id,
  268. language,
  269. on_success,
  270. on_failure) {};
  271. /**
  272. * @param {string} session_id
  273. * @param {function(spv.ds.Summary)} on_success
  274. * @param {function(Error)} on_failure
  275. */
  276. spv.ds.impl.IDsProtocol.prototype.sessionGetSummary = function(
  277. session_id,
  278. on_success,
  279. on_failure) {};
  280. /**
  281. * @param {string} session_id
  282. * @param {string} config_name
  283. * @param {spv.ds.ImageParams} img_params
  284. * @param {function(spv.ds.ImageResult)} on_success
  285. * @param {function(Error)} on_failure
  286. */
  287. spv.ds.impl.IDsProtocol.prototype.sessionGetUserConfigImage = function(
  288. session_id,
  289. config_name,
  290. img_params,
  291. on_success,
  292. on_failure) {};
  293. /**
  294. * @param {string} session_id
  295. * @param {string} filter_name
  296. * @param {spv.ds.PresentationStructureQuery} query
  297. * @param {function(spv.ds.PresentationStructure)} on_success
  298. * @param {function(Error)} on_failure
  299. */
  300. spv.ds.impl.IDsProtocol.prototype.sessionGetPresentationStructure = function(
  301. session_id,
  302. filter_name,
  303. query,
  304. on_success,
  305. on_failure ) {};
  306. /**
  307. * @param {string} menu_query
  308. * @param {spv.ds.ipprot_nova.input.BopReadMoreMode} readmore_mode
  309. * @param {string} language
  310. * @param {number} ttl Time To Live for this session in seconds
  311. * @param {string} origin URL of the embedding page
  312. * @param {string} category
  313. * @param {string} item_interpreter_options Options that can switch item interpreter implementations in the backend
  314. * @param {function(spv.ds.impl.SessionInitData)} on_success
  315. * @param {function(Error)} on_failure
  316. */
  317. spv.ds.impl.IDsProtocol.prototype.sessionCreate = function(
  318. menu_query,
  319. readmore_mode,
  320. language,
  321. ttl,
  322. origin,
  323. category,
  324. item_interpreter_options,
  325. on_success,
  326. on_failure) {};
  327. /**
  328. * @param {string} session_id
  329. * @param {string} language
  330. * @param {function(spv.ds.impl.SessionInitData)} on_success
  331. * @param {function(Error)} on_failure
  332. */
  333. spv.ds.impl.IDsProtocol.prototype.sessionResume = function(
  334. session_id,
  335. language,
  336. on_success,
  337. on_failure) {};
  338. /**
  339. * @param {string} session_id
  340. * @param {spv.ds.Config} config
  341. * @param {string} language
  342. * @param {function(spv.ds.ConfigLoadResult, spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  343. * @param {function(Error)} on_failure
  344. */
  345. spv.ds.impl.IDsProtocol.prototype.sessionLoadConfig = function(
  346. session_id,
  347. config,
  348. language,
  349. on_success,
  350. on_failure) {};
  351. /**
  352. * @param {string} session_id
  353. * @param {spv.ds.Config} config
  354. * @param {string} language
  355. * @param {function(spv.ds.ConfigLoadResult, spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  356. * @param {function(Error)} on_failure
  357. */
  358. spv.ds.impl.IDsProtocol.prototype.sessionLoadConfigMemorizeAll = function(
  359. session_id,
  360. config,
  361. language,
  362. on_success,
  363. on_failure) {};
  364. /**
  365. * @param {string} session_id
  366. * @param {string} config_name
  367. * @param {function(spv.ds.ConfigLoadResult, spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  368. * @param {function(Error)} on_failure
  369. */
  370. spv.ds.impl.IDsProtocol.prototype.sessionLoadConfigByName = function(
  371. session_id,
  372. config_name,
  373. on_success,
  374. on_failure) {};
  375. /**
  376. * @param {string} session_id
  377. * @param {string} config_name
  378. * @param {function(spv.ds.ConfigLoadResult, spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  379. * @param {function(Error)} on_failure
  380. */
  381. spv.ds.impl.IDsProtocol.prototype.sessionLoadPublicConfig = function(
  382. session_id,
  383. config_name,
  384. on_success,
  385. on_failure) {};
  386. /**
  387. * @param {string} session_id
  388. * @param {string} user_name
  389. * @param {string} password
  390. * @param {Function} on_success
  391. * @param {function(Error)} on_failure
  392. */
  393. spv.ds.impl.IDsProtocol.prototype.sessionLogin = function(
  394. session_id,
  395. user_name,
  396. password,
  397. on_success,
  398. on_failure) {};
  399. /**
  400. * @param {string} session_id
  401. * @param {function(boolean)} on_success
  402. * @param {function(Error)} on_failure
  403. */
  404. spv.ds.impl.IDsProtocol.prototype.sessionLogout = function(
  405. session_id,
  406. on_success,
  407. on_failure) {};
  408. /**
  409. * @param {string} session_id
  410. * @param {string} user_name
  411. * @param {string} password
  412. * @param {function(number)} on_success
  413. * @param {function(Error)} on_failure
  414. * @param {string=} language
  415. */
  416. spv.ds.impl.IDsProtocol.prototype.sessionCreateUser = function(
  417. session_id,
  418. user_name,
  419. password,
  420. on_success,
  421. on_failure,
  422. language) {};
  423. /**
  424. * @param {string} session_id
  425. * @param {function(Array.<spv.ds.ipprot_nova.output.UserConsent>)} on_success
  426. * @param {function(Error)} on_failure
  427. */
  428. spv.ds.impl.IDsProtocol.prototype.sessionGetUserConsents = function(
  429. session_id,
  430. on_success,
  431. on_failure) {};
  432. /**
  433. * @param {number} user_id
  434. * @param {string} consent_id
  435. * @param {string} consent_text
  436. * @param {Function} on_success
  437. * @param {function(Error)} on_failure
  438. */
  439. spv.ds.impl.IDsProtocol.prototype.sessionSetUserConsent = function(
  440. user_id,
  441. consent_id,
  442. consent_text,
  443. on_success,
  444. on_failure) {};
  445. /**
  446. * @param {string} session_id
  447. * @param {string} consent_id
  448. * @param {string} consent_text
  449. * @param {Function} on_success
  450. * @param {function(Error)} on_failure
  451. */
  452. spv.ds.impl.IDsProtocol.prototype.sessionSetUserConsentSession = function(
  453. session_id,
  454. consent_id,
  455. consent_text,
  456. on_success,
  457. on_failure) {};
  458. /**
  459. * @param {string} session_id
  460. * @param {function(boolean)} on_success
  461. * @param {function(Error)} on_failure
  462. */
  463. spv.ds.impl.IDsProtocol.prototype.sessionHasLoggedInUser = function(
  464. session_id,
  465. on_success,
  466. on_failure) {};
  467. /**
  468. * @param {string} session_id
  469. * @param {string} main_url
  470. * @param {string} user_name
  471. * @param {string} language
  472. * @param {Function} on_success
  473. * @param {function(Error)} on_failure
  474. */
  475. spv.ds.impl.IDsProtocol.prototype.sessionSendResetPasswordMail = function(
  476. session_id,
  477. main_url,
  478. user_name,
  479. language,
  480. on_success,
  481. on_failure) {};
  482. /**
  483. * @param {string} token
  484. * @param {string} new_password
  485. * @param {Function} on_success
  486. * @param {function(Error)} on_failure
  487. */
  488. spv.ds.impl.IDsProtocol.prototype.resetPassword = function(
  489. token,
  490. new_password,
  491. on_success,
  492. on_failure) {};
  493. /**
  494. * @param {string} session_id
  495. * @param {string} config_name
  496. * @param {Function} on_success
  497. * @param {function(Error)} on_failure
  498. */
  499. spv.ds.impl.IDsProtocol.prototype.sessionRemoveConfigByName = function(
  500. session_id,
  501. config_name,
  502. on_success,
  503. on_failure) {};
  504. /**
  505. * @param {string} session_id
  506. * @param {string} config_name
  507. * @param {boolean} allow_overwrite
  508. * @param {Function} on_success
  509. * @param {function(Error)} on_failure
  510. */
  511. spv.ds.impl.IDsProtocol.prototype.sessionSaveConfigByName = function(
  512. session_id,
  513. config_name,
  514. allow_overwrite,
  515. on_success,
  516. on_failure) {};
  517. /**
  518. * @param {string} session_id
  519. * @param {string} price_localization_id
  520. * @param {Function} on_success
  521. * @param {function(Error)} on_failure
  522. */
  523. spv.ds.impl.IDsProtocol.prototype.sessionSetPriceLocalization = function(
  524. session_id,
  525. price_localization_id,
  526. on_success,
  527. on_failure) {};
  528. /**
  529. * @param {string} session_id
  530. * @param {string} item_id
  531. * @param {string} category
  532. * @param {string} language
  533. * @param {function(spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_bop
  534. * @param {function(Array.<spv.ds.impl.GoalStateResolver>, spv.ds.BipAttemptResultCode, string)} on_resolvers
  535. * @param {function(Error)} on_failure
  536. */
  537. spv.ds.impl.IDsProtocol.prototype.sessionToggleItem = function(
  538. session_id,
  539. item_id,
  540. category,
  541. language,
  542. on_bop,
  543. on_resolvers,
  544. on_failure ) {};
  545. /**
  546. * @param {string} session_id
  547. * @param {string} category
  548. * @param {Array.<string>} item_ids
  549. * @param {string} language
  550. * @param {function(spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  551. * @param {function(Error)} on_failure
  552. */
  553. spv.ds.impl.IDsProtocol.prototype.sessionBip = function(
  554. session_id,
  555. category,
  556. item_ids,
  557. language,
  558. on_success,
  559. on_failure) {};
  560. /**
  561. * @param {string} session_id
  562. * @param {string} language
  563. * @param {function(spv.ds.SessionStateUpdate, spv.ds.impl.AuxData)} on_success
  564. * @param {function(Error)} on_failure
  565. */
  566. spv.ds.impl.IDsProtocol.prototype.sessionUpdateBop = function(
  567. session_id,
  568. language,
  569. on_success,
  570. on_failure ) {};
  571. /**
  572. * @param {string} session_id
  573. * @param {function(string)} on_success
  574. * @param {function(Error)} on_failure
  575. */
  576. spv.ds.impl.IDsProtocol.prototype.sessionSendHeartBeat = function(
  577. session_id,
  578. on_success,
  579. on_failure) {};
  580. /**
  581. * @param {string} session_id
  582. * @param {number} config_id
  583. * @param {string} description
  584. * @param {Object.<string,string>} user_config_aux
  585. * @param {Object.<string,string>} config_storage_aux
  586. * @param {function()} on_success
  587. * @param {function(Error)} on_failure
  588. */
  589. spv.ds.impl.IDsProtocol.prototype.userConfigV2Save = function(
  590. session_id,
  591. config_id,
  592. description,
  593. user_config_aux,
  594. config_storage_aux,
  595. on_success,
  596. on_failure) { };
  597. /**
  598. * @param {string} session_id
  599. * @param {string} config_name
  600. * @param {string} config_description
  601. * @param {Object.<string,string>} user_config_aux
  602. * @param {Object.<string,string>} config_storage_aux
  603. * @param {function(number)} on_success
  604. * @param {function(Error)} on_failure
  605. */
  606. spv.ds.impl.IDsProtocol.prototype.userConfigV2SaveAs = function(
  607. session_id,
  608. config_name,
  609. config_description,
  610. user_config_aux,
  611. config_storage_aux,
  612. on_success,
  613. on_failure) { };
  614. /**
  615. * @param {string} session_id
  616. * @param {number} user_config_id
  617. * @param {string} new_name
  618. * @param {Function} on_success
  619. * @param {function(Error)} on_failure
  620. */
  621. spv.ds.impl.IDsProtocol.prototype.userConfigV2ChangeName = function(
  622. session_id,
  623. user_config_id,
  624. new_name,
  625. on_success,
  626. on_failure) { };
  627. /**
  628. * @param {string} session_id
  629. * @param {number} config_id
  630. * @param {function()} on_success
  631. * @param {function(Error)} on_failure
  632. */
  633. spv.ds.impl.IDsProtocol.prototype.userConfigV2Delete = function(
  634. session_id,
  635. config_id,
  636. on_success,
  637. on_failure) { };
  638. /**
  639. * @param {string} session_id
  640. * @param {function(Array<spv.ds.UserConfigInfo>)} on_success
  641. * @param {function(Error)} on_failure
  642. */
  643. spv.ds.impl.IDsProtocol.prototype.userConfigV2List = function(
  644. session_id,
  645. on_success,
  646. on_failure) { };
  647. /**
  648. * @param {string} session_id
  649. * @param {number} config_id
  650. * @param {function()} on_success
  651. * @param {function(Error)} on_failure
  652. */
  653. spv.ds.impl.IDsProtocol.prototype.userConfigV2Load = function(
  654. session_id,
  655. config_id,
  656. on_success,
  657. on_failure) { };
  658. /**
  659. * @param {string} session_id
  660. * @param {string} public_config_id
  661. * @param {Function} on_success
  662. * @param {function(Error)} on_failure
  663. */
  664. spv.ds.impl.IDsProtocol.prototype.publicConfigV2Load = function(
  665. session_id,
  666. public_config_id,
  667. on_success,
  668. on_failure) {};
  669. /**
  670. * @param {string} session_id
  671. * @param {string} description
  672. * @param {Object.<string, string>} config_storage_aux
  673. * @param {function(spv.ds.PublicConfigInfo)} on_success
  674. * @param {function(Error)} on_failure
  675. */
  676. spv.ds.impl.IDsProtocol.prototype.publicConfigV2Save = function(
  677. session_id,
  678. description,
  679. config_storage_aux,
  680. on_success,
  681. on_failure) {};