File tree 5 files changed +18
-20
lines changed
5 files changed +18
-20
lines changed Original file line number Diff line number Diff line change 6
6
use Capsule \Factory \ServerRequestFactory ;
7
7
use Limber \Exceptions \NotFoundHttpException ;
8
8
9
- const VERSION = '1.2.7 ' ;
9
+ const VERSION = '1.2.8 ' ;
10
10
11
11
/**
12
12
* Absolute path, without trailing slash.
Original file line number Diff line number Diff line change @@ -191,9 +191,8 @@ var JsonView = (function (exports) {
191
191
} else {
192
192
193
193
// XXX Modification made for MongoDB PHP GUI.
194
- if ( node . key === '_id' ) {
194
+ if ( node . key === '_id' && node . depth === 2 ) {
195
195
MPG . documentId = node . value ;
196
- MPG . documentIdType = _typeof ( node . value ) ;
197
196
}
198
197
if ( node . depth >= 2 && node . depth <= 5 && node . key !== '_id' ) {
199
198
var documentFieldIsUpdatable = true ;
Original file line number Diff line number Diff line change @@ -43,14 +43,6 @@ MPG.collectionFields = [];
43
43
*/
44
44
MPG . documentId = '' ;
45
45
46
- /**
47
- * Type of document ID.
48
- * XXX Used by JsonView parser.
49
- *
50
- * @type {string }
51
- */
52
- MPG . documentIdType = '' ;
53
-
54
46
/**
55
47
* Cached output.
56
48
*
@@ -517,11 +509,7 @@ MPG.eventListeners.addUpdate = function() {
517
509
documentFieldNewValue , documentField . dataset . documentFieldType
518
510
) ;
519
511
520
- if ( MPG . documentIdType === 'number' ) {
521
- var documentId = parseInt ( documentField . dataset . documentId ) ;
522
- } else {
523
- var documentId = documentField . dataset . documentId ;
524
- }
512
+ var documentId = documentField . dataset . documentId ;
525
513
526
514
var requestBody = {
527
515
'databaseName' : MPG . databaseName ,
Original file line number Diff line number Diff line change @@ -287,10 +287,14 @@ public function updateOne() : JsonResponse {
287
287
return new JsonResponse (400 , ErrorNormalizer::normalize ($ th , __METHOD__ ));
288
288
}
289
289
290
- if ( isset ($ decodedRequestBody ['filter ' ]['_id ' ])
291
- && preg_match (MongoDBHelper::OBJECT_ID_REGEX , $ decodedRequestBody ['filter ' ]['_id ' ]) ) {
292
- $ decodedRequestBody ['filter ' ]['_id ' ] =
293
- new \MongoDB \BSON \ObjectId ($ decodedRequestBody ['filter ' ]['_id ' ]);
290
+ if ( isset ($ decodedRequestBody ['filter ' ]['_id ' ]) ) {
291
+
292
+ if ( preg_match (MongoDBHelper::OBJECT_ID_REGEX , $ decodedRequestBody ['filter ' ]['_id ' ]) ) {
293
+ $ decodedRequestBody ['filter ' ]['_id ' ] = new \MongoDB \BSON \ObjectId ($ decodedRequestBody ['filter ' ]['_id ' ]);
294
+ } elseif ( preg_match (MongoDBHelper::UINT_REGEX , $ decodedRequestBody ['filter ' ]['_id ' ]) ) {
295
+ $ decodedRequestBody ['filter ' ]['_id ' ] = intval ($ decodedRequestBody ['filter ' ]['_id ' ]);
296
+ }
297
+
294
298
}
295
299
296
300
foreach ($ decodedRequestBody ['update ' ]['$set ' ] as &$ updateValue ) {
Original file line number Diff line number Diff line change @@ -25,6 +25,13 @@ class MongoDBHelper {
25
25
*/
26
26
public const OBJECT_ID_REGEX = '/^[a-f\d]{24}$/i ' ;
27
27
28
+ /**
29
+ * Regular expression for an unsigned integer.
30
+ *
31
+ * @var string
32
+ */
33
+ public const UINT_REGEX = '/^(0|[1-9][0-9]*)$/ ' ;
34
+
28
35
/**
29
36
* Regular expression for an ISO date-time.
30
37
*
You can’t perform that action at this time.
0 commit comments