Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getCustomerContext example
$qb
->
andWhere
(
'token = :token'
)
;
$qb
->
setParameter
(
'token',
$token
)
;
$qb
->
setMaxResults
(
1
)
;
}
$data
=
$qb
->
executeQuery
(
)
->
fetchAllAssociative
(
)
;
if
(
empty
(
$data
)
)
{
return
[
]
;
}
$customerContext
=
$salesChannelId
&&
$customerId
?
$this
->
getCustomerContext
(
$data
,
$salesChannelId
,
$customerId
)
: null;
$context
=
$customerContext
??
array_shift
(
$data
)
;
$updatedAt
=
new
\
DateTimeImmutable
(
$context
[
'updated_at'
]
)
;
$expiredTime
=
$updatedAt
->
add
(
new
\
DateInterval
(
$this
->lifetimeInterval
)
)
;
$payload
=
array_filter
(
json_decode
(
(string)
$context
[
'payload'
]
, true, 512, \JSON_THROW_ON_ERROR
)
)
;
$now
=
new
\
DateTimeImmutable
(
)
;
if
(
$expiredTime
<
$now
)
{
// context is expired
$payload
=
[
'expired' => true
]
;
}