Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-mongodb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sinan
laravel-mongodb
Commits
6b291d74
Unverified
Commit
6b291d74
authored
Feb 23, 2020
by
Stas
Committed by
GitHub
Feb 23, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1966 from Giacomo92/pr_1534_1
[Updated PR#1534] UTCDateTime conversion now includes milliseconds
parents
3f5b1dc5
f3f14419
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
17 additions
and
15 deletions
+17
-15
DatabaseTokenRepository.php
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
+3
-2
Model.php
src/Jenssegers/Mongodb/Eloquent/Model.php
+4
-4
Builder.php
src/Jenssegers/Mongodb/Query/Builder.php
+4
-4
QueryBuilderTest.php
tests/QueryBuilderTest.php
+6
-5
No files found.
src/Jenssegers/Mongodb/Auth/DatabaseTokenRepository.php
View file @
6b291d74
...
...
@@ -5,6 +5,7 @@ namespace Jenssegers\Mongodb\Auth;
use
DateTime
;
use
DateTimeZone
;
use
Illuminate\Auth\Passwords\DatabaseTokenRepository
as
BaseDatabaseTokenRepository
;
use
Illuminate\Support\Facades\Date
;
use
MongoDB\BSON\UTCDateTime
;
class
DatabaseTokenRepository
extends
BaseDatabaseTokenRepository
...
...
@@ -17,7 +18,7 @@ class DatabaseTokenRepository extends BaseDatabaseTokenRepository
return
[
'email'
=>
$email
,
'token'
=>
$this
->
hasher
->
make
(
$token
),
'created_at'
=>
new
UTCDateTime
(
time
()
*
1000
),
'created_at'
=>
new
UTCDateTime
(
Date
::
now
()
->
format
(
'Uv'
)
),
];
}
...
...
@@ -37,7 +38,7 @@ class DatabaseTokenRepository extends BaseDatabaseTokenRepository
protected
function
tokenRecentlyCreated
(
$createdAt
)
{
$createdAt
=
$this
->
convertDateTime
(
$createdAt
);
return
parent
::
tokenRecentlyCreated
(
$createdAt
);
}
...
...
src/Jenssegers/Mongodb/Eloquent/Model.php
View file @
6b291d74
...
...
@@ -2,13 +2,13 @@
namespace
Jenssegers\Mongodb\Eloquent
;
use
Illuminate\Support\Carbon
;
use
DateTime
;
use
Illuminate\Contracts\Queue\QueueableCollection
;
use
Illuminate\Contracts\Queue\QueueableEntity
;
use
Illuminate\Database\Eloquent\Model
as
BaseModel
;
use
Illuminate\Database\Eloquent\Relations\Relation
;
use
Illuminate\Support\Arr
;
use
Illuminate\Support\Facades\Date
;
use
Illuminate\Support\Str
;
use
Jenssegers\Mongodb\Query\Builder
as
QueryBuilder
;
use
MongoDB\BSON\Binary
;
...
...
@@ -89,7 +89,7 @@ abstract class Model extends BaseModel
$value
=
parent
::
asDateTime
(
$value
);
}
return
new
UTCDateTime
(
$value
->
getTimestamp
()
*
1000
);
return
new
UTCDateTime
(
$value
->
format
(
'Uv'
)
);
}
/**
...
...
@@ -99,7 +99,7 @@ abstract class Model extends BaseModel
{
// Convert UTCDateTime instances.
if
(
$value
instanceof
UTCDateTime
)
{
return
Carbon
::
createFromTimestamp
(
$value
->
toDateTime
()
->
getTimestamp
(
));
return
Date
::
createFromTimestampMs
(
$value
->
toDateTime
()
->
format
(
'Uv'
));
}
return
parent
::
asDateTime
(
$value
);
...
...
@@ -118,7 +118,7 @@ abstract class Model extends BaseModel
*/
public
function
freshTimestamp
()
{
return
new
UTCDateTime
(
Carbon
::
now
(
));
return
new
UTCDateTime
(
Date
::
now
()
->
format
(
'Uv'
));
}
/**
...
...
src/Jenssegers/Mongodb/Query/Builder.php
View file @
6b291d74
...
...
@@ -294,7 +294,7 @@ class Builder extends BaseBuilder
}
}
}
// The _id field is mandatory when using grouping.
if
(
$group
&&
empty
(
$group
[
'_id'
]))
{
$group
[
'_id'
]
=
null
;
...
...
@@ -930,18 +930,18 @@ class Builder extends BaseBuilder
if
(
is_array
(
$where
[
'value'
]))
{
array_walk_recursive
(
$where
[
'value'
],
function
(
&
$item
,
$key
)
{
if
(
$item
instanceof
DateTime
)
{
$item
=
new
UTCDateTime
(
$item
->
getTimestamp
()
*
1000
);
$item
=
new
UTCDateTime
(
$item
->
format
(
'Uv'
)
);
}
});
}
else
{
if
(
$where
[
'value'
]
instanceof
DateTime
)
{
$where
[
'value'
]
=
new
UTCDateTime
(
$where
[
'value'
]
->
getTimestamp
()
*
1000
);
$where
[
'value'
]
=
new
UTCDateTime
(
$where
[
'value'
]
->
format
(
'Uv'
)
);
}
}
}
elseif
(
isset
(
$where
[
'values'
]))
{
array_walk_recursive
(
$where
[
'values'
],
function
(
&
$item
,
$key
)
{
if
(
$item
instanceof
DateTime
)
{
$item
=
new
UTCDateTime
(
$item
->
getTimestamp
()
*
1000
);
$item
=
new
UTCDateTime
(
$item
->
format
(
'Uv'
)
);
}
});
}
...
...
tests/QueryBuilderTest.php
View file @
6b291d74
<?php
declare
(
strict_types
=
1
);
use
Illuminate\Support\Facades\Date
;
use
Illuminate\Support\Facades\DB
;
use
Jenssegers\Mongodb\Collection
;
use
Jenssegers\Mongodb\Query\Builder
;
...
...
@@ -545,14 +546,14 @@ class QueryBuilderTest extends TestCase
public
function
testDates
()
{
DB
::
collection
(
'users'
)
->
insert
([
[
'name'
=>
'John Doe'
,
'birthday'
=>
new
UTCDateTime
(
1000
*
strtotime
(
"1980-01-01 00:00:00"
))],
[
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
UTCDateTime
(
1000
*
strtotime
(
"1981-01-01 00:00:00"
))],
[
'name'
=>
'Robert Roe'
,
'birthday'
=>
new
UTCDateTime
(
1000
*
strtotime
(
"1982-01-01 00:00:00"
))],
[
'name'
=>
'Mark Moe'
,
'birthday'
=>
new
UTCDateTime
(
1000
*
strtotime
(
"1983-01-01 00:00:00"
))],
[
'name'
=>
'John Doe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1980-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Jane Doe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1981-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Robert Roe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1982-01-01 00:00:00"
)
->
format
(
'Uv'
))],
[
'name'
=>
'Mark Moe'
,
'birthday'
=>
new
UTCDateTime
(
Date
::
parse
(
"1983-01-01 00:00:00"
)
->
format
(
'Uv'
))],
]);
$user
=
DB
::
collection
(
'users'
)
->
where
(
'birthday'
,
new
UTCDateTime
(
1000
*
strtotime
(
"1980-01-01 00:00:00"
)))
->
where
(
'birthday'
,
new
UTCDateTime
(
Date
::
parse
(
"1980-01-01 00:00:00"
)
->
format
(
'Uv'
)))
->
first
();
$this
->
assertEquals
(
'John Doe'
,
$user
[
'name'
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment