Skip to content

Commit

Permalink
Fix dot notation issue
Browse files Browse the repository at this point in the history
  • Loading branch information
SamuelTallet committed Jul 18, 2020
1 parent d16251d commit 3e93380
Show file tree
Hide file tree
Showing 7 changed files with 209 additions and 82 deletions.
2 changes: 1 addition & 1 deletion index.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*
* @var string
*/
define('MPG_APP_VERSION', '0.9.8');
define('MPG_APP_VERSION', '0.9.9');

/**
* Development mode?
Expand Down
30 changes: 15 additions & 15 deletions routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,43 +21,43 @@
DatabaseController::class . '@renderQueryViewAction'
);

$router->get(
'/ajax/database/{databaseName}/listCollections',
$router->post(
'/ajax/database/listCollections',
DatabaseController::class . '@listCollectionsAction'
);

$router->get(
'/ajax/database/{databaseName}/createCollection/{collectionName}',
$router->post(
'/ajax/database/createCollection',
DatabaseController::class . '@createCollectionAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/insertOne',
'/ajax/collection/insertOne',
CollectionController::class . '@insertOneAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/count',
'/ajax/collection/count',
CollectionController::class . '@countAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/deleteOne',
'/ajax/collection/deleteOne',
CollectionController::class . '@deleteOneAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/find',
'/ajax/collection/find',
CollectionController::class . '@findAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/updateOne',
'/ajax/collection/updateOne',
CollectionController::class . '@updateOneAction'
);

$router->get(
'/ajax/database/{databaseName}/collection/{collectionName}/enumFields',
$router->post(
'/ajax/collection/enumFields',
CollectionController::class . '@enumFieldsAction'
);

Expand All @@ -67,16 +67,16 @@
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/createIndex',
'/ajax/collection/createIndex',
CollectionController::class . '@createIndexAction'
);

$router->get(
'/ajax/database/{databaseName}/collection/{collectionName}/listIndexes',
$router->post(
'/ajax/collection/listIndexes',
CollectionController::class . '@listIndexesAction'
);

$router->post(
'/ajax/database/{databaseName}/collection/{collectionName}/dropIndex',
'/ajax/collection/dropIndex',
CollectionController::class . '@dropIndexAction'
);
87 changes: 69 additions & 18 deletions src/Controllers/CollectionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@ public function renderIndexesViewAction() : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-insertOne/index.html
*/
public function insertOneAction($databaseName, $collectionName) : Response {
public function insertOneAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -36,6 +35,10 @@ public function insertOneAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

try {
$insertOneResult = $collection->insertOne($decodedRequestBody['document']);
} catch (\Throwable $th) {
Expand All @@ -57,10 +60,9 @@ public function insertOneAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-countDocuments/
*/
public function countAction($databaseName, $collectionName) : Response {
public function countAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -74,6 +76,10 @@ public function countAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

if ( isset($decodedRequestBody['filter']['_id'])
&& is_string($decodedRequestBody['filter']['_id']) ) {
$decodedRequestBody['filter']['_id'] =
Expand All @@ -99,10 +105,9 @@ public function countAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-deleteOne/index.html
*/
public function deleteOneAction($databaseName, $collectionName) : Response {
public function deleteOneAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -116,6 +121,10 @@ public function deleteOneAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

if ( isset($decodedRequestBody['filter']['_id'])
&& is_string($decodedRequestBody['filter']['_id']) ) {
$decodedRequestBody['filter']['_id'] =
Expand Down Expand Up @@ -143,10 +152,9 @@ public function deleteOneAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-find/index.html
*/
public function findAction($databaseName, $collectionName) : Response {
public function findAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -160,6 +168,10 @@ public function findAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

if ( isset($decodedRequestBody['filter']['_id'])
&& is_string($decodedRequestBody['filter']['_id']) ) {
$decodedRequestBody['filter']['_id'] =
Expand Down Expand Up @@ -187,10 +199,9 @@ public function findAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-updateOne/index.html
*/
public function updateOneAction($databaseName, $collectionName) : Response {
public function updateOneAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -204,6 +215,10 @@ public function updateOneAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

if ( isset($decodedRequestBody['filter']['_id'])
&& is_string($decodedRequestBody['filter']['_id']) ) {
$decodedRequestBody['filter']['_id'] =
Expand All @@ -230,10 +245,25 @@ public function updateOneAction($databaseName, $collectionName) : Response {

}

public function enumFieldsAction($databaseName, $collectionName) : Response {
public function enumFieldsAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

if ( is_null($requestBody) ) {
return new Response(400, 'Request body is missing.');
}

$decodedRequestBody = json_decode($requestBody, JSON_OBJECT_AS_ARRAY);

if ( is_null($decodedRequestBody) ) {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

try {
$documents = $collection->find([], ['limit' => 1])->toArray();
Expand Down Expand Up @@ -280,10 +310,9 @@ public function enumFieldsAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-createIndex/index.html
*/
public function createIndexAction($databaseName, $collectionName) : Response {
public function createIndexAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -297,6 +326,10 @@ public function createIndexAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

try {
$createdIndexName = $collection->createIndex(
$decodedRequestBody['key'], $decodedRequestBody['options']
Expand All @@ -318,10 +351,25 @@ public function createIndexAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-listIndexes/index.html
*/
public function listIndexesAction($databaseName, $collectionName) : Response {
public function listIndexesAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

if ( is_null($requestBody) ) {
return new Response(400, 'Request body is missing.');
}

$decodedRequestBody = json_decode($requestBody, JSON_OBJECT_AS_ARRAY);

if ( is_null($decodedRequestBody) ) {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

$indexes = [];

Expand Down Expand Up @@ -349,10 +397,9 @@ public function listIndexesAction($databaseName, $collectionName) : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBCollection-dropIndex/index.html
*/
public function dropIndexAction($databaseName, $collectionName) : Response {
public function dropIndexAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$collection = $mongoDBClient->selectCollection($databaseName, $collectionName);

$requestBody = $this->getRequestBody();

Expand All @@ -366,6 +413,10 @@ public function dropIndexAction($databaseName, $collectionName) : Response {
return new Response(400, 'Request body is invalid.');
}

$collection = $mongoDBClient->selectCollection(
$decodedRequestBody['databaseName'], $decodedRequestBody['collectionName']
);

try {
$collection->dropIndex($decodedRequestBody['indexName']);
} catch (\Throwable $th) {
Expand Down
50 changes: 42 additions & 8 deletions src/Controllers/DatabaseController.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,29 @@ public function renderQueryViewAction() : Response {
/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBDatabase-listCollections/index.html
*/
public function listCollectionsAction($databaseName) : Response {
public function listCollectionsAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$database = $mongoDBClient->selectDatabase($databaseName);

$collectionsNames = [];
$requestBody = $this->getRequestBody();

if ( is_null($requestBody) ) {
return new Response(400, 'Request body is missing.');
}

$decodedRequestBody = json_decode($requestBody, JSON_OBJECT_AS_ARRAY);

if ( is_null($decodedRequestBody) ) {
return new Response(400, 'Request body is invalid.');
}

$database = $mongoDBClient->selectDatabase($decodedRequestBody['databaseName']);

$collectionNames = [];

try {
foreach ($database->listCollections() as $collectionInfo) {
$collectionsNames[] = $collectionInfo['name'];
$collectionNames[] = $collectionInfo['name'];
}
} catch (\Throwable $th) {
return new Response(
Expand All @@ -70,20 +83,41 @@ public function listCollectionsAction($databaseName) : Response {
}

return new Response(
200, json_encode($collectionsNames), ['Content-Type' => 'application/json']
200, json_encode($collectionNames), ['Content-Type' => 'application/json']
);

}

/**
* @see https://docs.mongodb.com/php-library/v1.6/reference/method/MongoDBDatabase-createCollection/index.html
*/
public function createCollectionAction($databaseName, $collectionName) : Response {
public function createCollectionAction() : Response {

$mongoDBClient = MongoDBHelper::getClient();
$database = $mongoDBClient->selectDatabase($databaseName);

$database->createCollection($collectionName);
$requestBody = $this->getRequestBody();

if ( is_null($requestBody) ) {
return new Response(400, 'Request body is missing.');
}

$decodedRequestBody = json_decode($requestBody, JSON_OBJECT_AS_ARRAY);

if ( is_null($decodedRequestBody) ) {
return new Response(400, 'Request body is invalid.');
}

$database = $mongoDBClient->selectDatabase($decodedRequestBody['databaseName']);

try {
$database->createCollection($decodedRequestBody['collectionName']);
} catch (\Throwable $th) {
return new Response(
500,
json_encode(ErrorNormalizer::normalize($th, __METHOD__)),
['Content-Type' => 'application/json']
);
}

return new Response(
200, json_encode(true), ['Content-Type' => 'application/json']
Expand Down
Loading

0 comments on commit 3e93380

Please sign in to comment.