UNPKG

ares-ide

Version:

A browser-based code editor and UI designer for Enyo 2 projects

60 lines (53 loc) 2.08 kB
# Tracks the progress of a resumable upload. class Dropbox.UploadCursor # Creates an UploadCursor instance from an API response. # # @param {?Object, ?String} cursorData the parsed JSON describing the status # of a partial upload, or the upload ID string @parse: (cursorData) -> if cursorData and (typeof cursorData is 'object' or typeof cursorData is 'string') new Dropbox.UploadCursor cursorData else cursorData # @property {String} the server-generated ID for this upload tag: null # @property {Number} number of bytes that have already been uploaded offset: null # @property {Date} deadline for finishing the upload expiresAt: null # JSON representation of this cursor. # # @return {Object} conforms to the JSON restrictions; can be passed to # Dropbox.UploadCursor#parse to obtain an identical UploadCursor instance json: -> # NOTE: the assignment only occurs if @_json ||= upload_id: @tag, offset: @offset, expires: @expiresAt.toString() # Creates an UploadCursor instance from a raw reference or API response. # # This constructor should only be called directly to obtain a cursor for a # new file upload. Dropbox.UploadCursor#parse should be called instead # # @param {?Object, ?String} cursorData the parsed JSON describing a copy # reference, or the reference string constructor: (cursorData) -> @replace cursorData # Replaces the current # # @private Called by Dropbox.Client#resumableUploadStep. # # @param {?Object, ?String} cursorData the parsed JSON describing a copy # reference, or the reference string # @return {Dropbox.UploadCursor} this replace: (cursorData) -> if typeof cursorData is 'object' @tag = cursorData.upload_id or null @offset = cursorData.offset or 0 @expiresAt = new Date(Date.parse(cursorData.expires) or Date.now()) @_json = cursorData else @tag = cursorData or null @offset = 0 @expiresAt = new Date Math.floor(Date.now() / 1000) * 1000 @_json = null @