2018-10-23 01:05:09 +03:00
define ( [ ] , function ( ) {
"use strict" ;
function performSync ( connectionManager , server , options ) {
console . log ( "ServerSync.performSync to server: " + server . Id ) , options = options || { } ;
var cameraUploadServers = options . cameraUploadServers || [ ] ;
console . log ( "ServerSync cameraUploadServers: " + JSON . stringify ( cameraUploadServers ) ) ;
var uploadPhotos = - 1 !== cameraUploadServers . indexOf ( server . Id ) ;
return console . log ( "ServerSync uploadPhotos: " + uploadPhotos ) , ( uploadPhotos ? uploadContent ( connectionManager , server , options ) : Promise . resolve ( ) ) . then ( function ( ) {
return syncMedia ( connectionManager , server , options )
} )
}
function uploadContent ( connectionManager , server , options ) {
return new Promise ( function ( resolve , reject ) {
require ( [ "contentuploader" ] , function ( ContentUploader ) {
( new ContentUploader ) . uploadImages ( connectionManager , server ) . then ( resolve , reject )
} )
} )
}
function syncMedia ( connectionManager , server , options ) {
return new Promise ( function ( resolve , reject ) {
require ( [ "mediasync" ] , function ( MediaSync ) {
var apiClient = connectionManager . getApiClient ( server . Id ) ;
( new MediaSync ) . sync ( apiClient , server , options ) . then ( resolve , reject )
} )
} )
}
function ServerSync ( ) { }
return ServerSync . prototype . sync = function ( connectionManager , server , options ) {
if ( ! server . AccessToken && ! server . ExchangeToken ) return console . log ( "Skipping sync to server " + server . Id + " because there is no saved authentication information." ) , Promise . resolve ( ) ;
var connectionOptions = {
updateDateLastAccessed : ! 1 ,
enableWebSocket : ! 1 ,
reportCapabilities : ! 1 ,
enableAutomaticBitrateDetection : ! 1
} ;
return connectionManager . connectToServer ( server , connectionOptions ) . then ( function ( result ) {
return "SignedIn" === result . State ? performSync ( connectionManager , server , options ) : ( console . log ( "Unable to connect to server id: " + server . Id ) , Promise . reject ( ) )
} , function ( err ) {
throw console . log ( "Unable to connect to server id: " + server . Id ) , err
} )
} , ServerSync
} ) ;