/xquery/import-media-element.xql

http://transcriptstudio4isha.googlecode.com/ · Unknown · 31 lines · 27 code · 4 blank · 0 comment · 0 complexity · e77b9b9be6df0b359a0ffb27daf7aaac MD5 · raw file

  1. xquery version "1.0";
  2. declare option exist:serialize "media-type=text/plain";
  3. import module namespace media-fns = "http://www.ishafoundation.org/ts4isha/xquery/media-fns" at "media-fns.xqm";
  4. import module namespace utils = "http://www.ishafoundation.org/ts4isha/xquery/utils" at "utils.xqm";
  5. if (not(utils:is-current-user-admin())) then
  6. error((xs:QName('access-control-exception')), 'Only admin user allowed to call this script')
  7. else
  8. let $sessionId := request:get-parameter("sessionId", ())
  9. let $deviceCode := request:get-parameter("deviceCode", ())
  10. let $mediaXML := util:parse(request:get-parameter("mediaXML", ()))
  11. return
  12. if (empty($sessionId)) then
  13. error(xs:QName('missing-argument-exception'), 'No sessionId specified')
  14. else if (empty($deviceCode)) then
  15. error(xs:QName('missing-argument-exception'), 'No deviceCode specified')
  16. else if (empty($mediaXML)) then
  17. error(xs:QName('missing-argument-exception'), 'No mediaXML specified')
  18. else
  19. let $sessionXML := utils:get-session($sessionId)
  20. return
  21. if (empty($sessionXML)) then
  22. error(xs:QName('illegal-argument-exception'), concat('Unknown sessionId: ', $sessionId))
  23. else
  24. let $mediaMetadataXML := media-fns:get-media-metadata-element($sessionXML)
  25. let $deviceXML := media-fns:get-device-element($deviceCode, $mediaMetadataXML)
  26. return
  27. media-fns:import-media-element($mediaXML, $deviceXML)