Skip to content

Instantly share code, notes, and snippets.

@sedouard
Created April 17, 2015 21:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sedouard/6b9ac6c768bdb2bd7e3c to your computer and use it in GitHub Desktop.
Save sedouard/6b9ac6c768bdb2bd7e3c to your computer and use it in GitHub Desktop.
import DS from 'ember-data';
import serializer from '../serializers/azure-storage';
import accountUtils from '../utilities/account';
export default DS.Adapter.extend({
serializer: serializer.create(),
nodeServices: Ember.inject.service(),
find: function (store, type, snapshot) {
var blobService = this.get('azureStorage').createBlobService(store.account_name, store.account_key);
return new Ember.RSVP.Promise(function (resolve, reject) {
blobService.getBlobProperties(snapshot.get('container').name, snapshot.get('name'), function (error, result) {
if (error) {
return Ember.run(null, reject, error);
}
return Ember.run(null, resolve, result);
});
});
},
findQuery: function (store, type, snapshot) {
var self = this;
return new Ember.RSVP.Promise(function (resolve, reject) {
accountUtils.getActiveAccount(store).then(function (account) {
var blobService = self.get('azureStorage').createBlobService(account.get('name'), account.get('key'));
blobService.listBlobsSegmented(snapshot.container.get('name'), null, function (error, result)** {
var blobs = [];
if (error) {
return Ember.run(null, reject, error);
}
// Fill out the blob models
for (var i in result.entries) {
if (i % 1 === 0)** {
blobs.push({
id: result.entries[i].name,
name: result.entries[i].name,
size: result.entries**[i].properties['content-length'],
type: result.entries**[i].properties['content-type'],
lastModified: result.entries**[i].properties['last-modified'],
container: snapshot.container,
container_id: snapshot.container_id
});
}
}
return Ember.run(null, resolve, blobs);
});
});
});
},
azureStorage: Ember.computed.alias('nodeServices.azureStorage')
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment