@@ -976,7 +976,13 @@ extend(Database.prototype, {
976976 var self = this ;
977977 self . _api . get ( 'collection/' + collectionName , function ( err , res ) {
978978 if ( err ) {
979- if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1203 ) callback ( err ) ; else self . createCollection ( { name : collectionName } , cb ) ;
979+ if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1203 ) callback ( err ) ; else {
980+ self . createCollection ( { name : collectionName } , function ( err , collection ) {
981+ if ( err ) {
982+ if ( err . name !== 'ArangoError' || err . errorNum !== 1207 ) callback ( err ) ; else self . collection ( collectionName , callback ) ;
983+ } else callback ( null , collection ) ;
984+ } ) ;
985+ }
980986 } else callback ( null , createCollection ( self . _connection , res . body ) ) ;
981987 } ) ;
982988 return promise ;
@@ -1055,7 +1061,13 @@ extend(Database.prototype, {
10551061 var self = this ;
10561062 self . _api . get ( 'gharial/' + graphName , function ( err , res ) {
10571063 if ( err ) {
1058- if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1924 ) callback ( err ) ; else self . createGraph ( { name : graphName } , cb ) ;
1064+ if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1924 ) callback ( err ) ; else {
1065+ self . createGraph ( { name : graphName } , function ( err , graph ) {
1066+ if ( err ) {
1067+ if ( err . name !== 'ArangoError' || err . errorNum !== 1925 ) callback ( err ) ; else self . graph ( graphName , callback ) ;
1068+ } else callback ( null , graph ) ;
1069+ } ) ;
1070+ }
10591071 } else callback ( null , new Graph ( self . _connection , res . body . graph ) ) ;
10601072 } ) ;
10611073 return promise ;
@@ -1081,14 +1093,21 @@ extend(Database.prototype, {
10811093 cb = dropCollections ;
10821094 dropCollections = undefined ;
10831095 }
1084- return this . _api [ 'delete' ] ( 'graph/' + graphName , { dropCollections : dropCollections } , cb ) ;
1085- } ,
1086- createDatabase : function createDatabase ( databaseName , cb ) {
1096+
10871097 var _promisify10 = promisify ( cb ) ;
10881098
10891099 var promise = _promisify10 . promise ;
10901100 var callback = _promisify10 . callback ;
10911101
1102+ this . _api [ 'delete' ] ( 'graph/' + graphName , { dropCollections : dropCollections } , callback ) ;
1103+ return promise ;
1104+ } ,
1105+ createDatabase : function createDatabase ( databaseName , cb ) {
1106+ var _promisify11 = promisify ( cb ) ;
1107+
1108+ var promise = _promisify11 . promise ;
1109+ var callback = _promisify11 . callback ;
1110+
10921111 var self = this ;
10931112 self . _api . post ( 'database' , { name : databaseName } , function ( err , res ) {
10941113 if ( err ) callback ( err ) ; else {
@@ -1103,10 +1122,10 @@ extend(Database.prototype, {
11031122 autoCreate = undefined ;
11041123 }
11051124
1106- var _promisify11 = promisify ( cb ) ;
1125+ var _promisify12 = promisify ( cb ) ;
11071126
1108- var promise = _promisify11 . promise ;
1109- var callback = _promisify11 . callback ;
1127+ var promise = _promisify12 . promise ;
1128+ var callback = _promisify12 . callback ;
11101129
11111130 var self = this ;
11121131 self . _connection . request ( {
@@ -1115,18 +1134,24 @@ extend(Database.prototype, {
11151134 absolutePath : true
11161135 } , function ( err , res ) {
11171136 if ( err ) {
1118- if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1228 ) callback ( err ) ; else self . createDatabase ( databaseName , cb ) ;
1137+ if ( ! autoCreate || err . name !== 'ArangoError' || err . errorNum !== 1228 ) callback ( err ) ; else {
1138+ self . createDatabase ( databaseName , function ( err , database ) {
1139+ if ( err ) {
1140+ if ( err . name !== 'ArangoError' || err . errorNum !== 1207 ) callback ( err ) ; else self . database ( databaseName , callback ) ;
1141+ } else callback ( null , database ) ;
1142+ } ) ;
1143+ }
11191144 } else {
11201145 callback ( null , new Database ( extend ( { } , self . _connection . config , { databaseName : databaseName } ) ) ) ;
11211146 }
11221147 } ) ;
11231148 return promise ;
11241149 } ,
11251150 databases : function databases ( cb ) {
1126- var _promisify12 = promisify ( cb ) ;
1151+ var _promisify13 = promisify ( cb ) ;
11271152
1128- var promise = _promisify12 . promise ;
1129- var callback = _promisify12 . callback ;
1153+ var promise = _promisify13 . promise ;
1154+ var callback = _promisify13 . callback ;
11301155
11311156 var self = this ;
11321157 self . _api . get ( 'database' , function ( err , res ) {
@@ -1139,10 +1164,10 @@ extend(Database.prototype, {
11391164 return promise ;
11401165 } ,
11411166 dropDatabase : function dropDatabase ( databaseName , cb ) {
1142- var _promisify13 = promisify ( cb ) ;
1167+ var _promisify14 = promisify ( cb ) ;
11431168
1144- var promise = _promisify13 . promise ;
1145- var callback = _promisify13 . callback ;
1169+ var promise = _promisify14 . promise ;
1170+ var callback = _promisify14 . callback ;
11461171
11471172 var self = this ;
11481173 self . _api [ 'delete' ] ( 'database/' + databaseName , function ( err , res ) {
@@ -1151,10 +1176,10 @@ extend(Database.prototype, {
11511176 return promise ;
11521177 } ,
11531178 truncate : function truncate ( cb ) {
1154- var _promisify14 = promisify ( cb ) ;
1179+ var _promisify15 = promisify ( cb ) ;
11551180
1156- var promise = _promisify14 . promise ;
1157- var callback = _promisify14 . callback ;
1181+ var promise = _promisify15 . promise ;
1182+ var callback = _promisify15 . callback ;
11581183
11591184 var self = this ;
11601185 self . _api . get ( 'collection' , {
@@ -1167,16 +1192,16 @@ extend(Database.prototype, {
11671192 if ( err ) cb ( err ) ; else cb ( null , res . body ) ;
11681193 } ) ;
11691194 } ;
1170- } ) , cb ) ;
1195+ } ) , callback ) ;
11711196 }
11721197 } ) ;
11731198 return promise ;
11741199 } ,
11751200 truncateAll : function truncateAll ( cb ) {
1176- var _promisify15 = promisify ( cb ) ;
1201+ var _promisify16 = promisify ( cb ) ;
11771202
1178- var promise = _promisify15 . promise ;
1179- var callback = _promisify15 . callback ;
1203+ var promise = _promisify16 . promise ;
1204+ var callback = _promisify16 . callback ;
11801205
11811206 var self = this ;
11821207 self . _api . get ( 'collection' , {
@@ -1189,7 +1214,7 @@ extend(Database.prototype, {
11891214 if ( err ) cb ( err ) ; else cb ( null , res . body ) ;
11901215 } ) ;
11911216 } ;
1192- } ) , cb ) ;
1217+ } ) , callback ) ;
11931218 }
11941219 } ) ;
11951220 return promise ;
@@ -1211,10 +1236,10 @@ extend(Database.prototype, {
12111236 collections = { write : collections } ;
12121237 }
12131238
1214- var _promisify16 = promisify ( cb ) ;
1239+ var _promisify17 = promisify ( cb ) ;
12151240
1216- var promise = _promisify16 . promise ;
1217- var callback = _promisify16 . callback ;
1241+ var promise = _promisify17 . promise ;
1242+ var callback = _promisify17 . callback ;
12181243
12191244 this . _api . post ( 'transaction' , {
12201245 collections : collections ,
@@ -1242,10 +1267,10 @@ extend(Database.prototype, {
12421267 bindVars = undefined ;
12431268 }
12441269
1245- var _promisify17 = promisify ( cb ) ;
1270+ var _promisify18 = promisify ( cb ) ;
12461271
1247- var promise = _promisify17 . promise ;
1248- var callback = _promisify17 . callback ;
1272+ var promise = _promisify18 . promise ;
1273+ var callback = _promisify18 . callback ;
12491274
12501275 if ( query && typeof query . toAQL === 'function' ) {
12511276 query = query . toAQL ( ) ;
@@ -1260,21 +1285,21 @@ extend(Database.prototype, {
12601285 return promise ;
12611286 } ) ,
12621287 functions : function functions ( cb ) {
1263- var _promisify18 = promisify ( cb ) ;
1288+ var _promisify19 = promisify ( cb ) ;
12641289
1265- var promise = _promisify18 . promise ;
1266- var callback = _promisify18 . callback ;
1290+ var promise = _promisify19 . promise ;
1291+ var callback = _promisify19 . callback ;
12671292
12681293 this . _api . get ( 'aqlfunction' , function ( err , res ) {
12691294 if ( err ) callback ( err ) ; else callback ( null , res . body ) ;
12701295 } ) ;
12711296 return promise ;
12721297 } ,
12731298 createFunction : function createFunction ( name , code , cb ) {
1274- var _promisify19 = promisify ( cb ) ;
1299+ var _promisify20 = promisify ( cb ) ;
12751300
1276- var promise = _promisify19 . promise ;
1277- var callback = _promisify19 . callback ;
1301+ var promise = _promisify20 . promise ;
1302+ var callback = _promisify20 . callback ;
12781303
12791304 this . _api . post ( 'aqlfunction' , {
12801305 name : name ,
@@ -1290,10 +1315,10 @@ extend(Database.prototype, {
12901315 group = undefined ;
12911316 }
12921317
1293- var _promisify20 = promisify ( cb ) ;
1318+ var _promisify21 = promisify ( cb ) ;
12941319
1295- var promise = _promisify20 . promise ;
1296- var callback = _promisify20 . callback ;
1320+ var promise = _promisify21 . promise ;
1321+ var callback = _promisify21 . callback ;
12971322
12981323 this . _api [ 'delete' ] ( 'aqlfunction/' + name , {
12991324 group : Boolean ( group )
0 commit comments