@@ -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