Skip to content

Commit 4000d07

Browse files
committed
Fixed #25.
1 parent b416c9e commit 4000d07

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

src/database.js

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,15 @@ extend(Database.prototype, {
5959
self._api.get('collection/' + collectionName, function (err, res) {
6060
if (err) {
6161
if (!autoCreate || err.name !== 'ArangoError' || err.errorNum !== 1203) callback(err);
62-
else self.createCollection({name: collectionName}, cb);
62+
else {
63+
self.createCollection({name: collectionName}, function (err, collection) {
64+
if (err) {
65+
if (err.name !== 'ArangoError' || err.errorNum !== 1207) callback(err);
66+
else self.collection(collectionName, callback);
67+
}
68+
else callback(null, collection);
69+
});
70+
}
6371
}
6472
else callback(null, createCollection(self._connection, res.body));
6573
});
@@ -123,7 +131,15 @@ extend(Database.prototype, {
123131
self._api.get('gharial/' + graphName, function (err, res) {
124132
if (err) {
125133
if (!autoCreate || err.name !== 'ArangoError' || err.errorNum !== 1924) callback(err);
126-
else self.createGraph({name: graphName}, cb);
134+
else {
135+
self.createGraph({name: graphName}, function (err, graph) {
136+
if (err) {
137+
if (err.name !== 'ArangoError' || err.errorNum !== 1925) callback(err);
138+
else self.graph(graphName, callback);
139+
}
140+
else callback(null, graph);
141+
});
142+
}
127143
}
128144
else callback(null, new Graph(self._connection, res.body.graph));
129145
});
@@ -147,7 +163,9 @@ extend(Database.prototype, {
147163
cb = dropCollections;
148164
dropCollections = undefined;
149165
}
150-
return this._api.delete('graph/' + graphName, {dropCollections: dropCollections}, cb);
166+
var {promise, callback} = promisify(cb);
167+
this._api.delete('graph/' + graphName, {dropCollections: dropCollections}, callback);
168+
return promise;
151169
},
152170
createDatabase: function (databaseName, cb) {
153171
var {promise, callback} = promisify(cb);
@@ -176,7 +194,15 @@ extend(Database.prototype, {
176194
}, function (err, res) {
177195
if (err) {
178196
if (!autoCreate || err.name !== 'ArangoError' || err.errorNum !== 1228) callback(err);
179-
else self.createDatabase(databaseName, cb);
197+
else {
198+
self.createDatabase(databaseName, function (err, database) {
199+
if (err) {
200+
if (err.name !== 'ArangoError' || err.errorNum !== 1207) callback(err);
201+
else self.database(databaseName, callback);
202+
}
203+
else callback(null, database);
204+
});
205+
}
180206
}
181207
else {
182208
callback(null, new Database(extend(
@@ -225,7 +251,7 @@ extend(Database.prototype, {
225251
else cb(null, res.body);
226252
});
227253
};
228-
}), cb);
254+
}), callback);
229255
}
230256
});
231257
return promise;
@@ -245,7 +271,7 @@ extend(Database.prototype, {
245271
else cb(null, res.body);
246272
});
247273
};
248-
}), cb);
274+
}), callback);
249275
}
250276
});
251277
return promise;

0 commit comments

Comments
 (0)