CoolCMS API

AdvertRepository extends ApiRepository
in package
uses AdvertConfirmByKeyTrait, SaveTrait, RegisterEventTrait, AdvertExpirationTrait, AdvertPasswordResetTrait

FinalYes

Front repository that reads through the Api bridge and uses the query cache when the service has it enabled (`cache.config.enabledServices`).

This is the deliberate opposite of ApiRepository: the front end only displays data, so a 5 minute old number is at most cosmetic, whereas the admin reads it into a form that is written back to the DB.

->useCache(false) on the query object overrides the policy for one query; it travels to the payload as ApiBridge::PARAM_USE_CACHE.

IMPORTANT: null is passed on as null (no opinion), not as true. If this layer substituted true, it would override QueryCacheContext, and reads through a front manager inside an admin request (AssetManager, ThemeManager, UserManager) would still be served from the cache. The true default therefore lives in the bridge.

Table of Contents

Properties

$apiEndpoint  : string
Api presenter path (e.g. `api/system/page`); set by each concrete repository.
$bridge  : ApiBridge

Methods

__construct()  : mixed
confirmByKey()  : Result
extendExpiration()  : Result
find()  : array<string|int, mixed>
findAll()  : array<string|int, mixed>
findBy()  : array<string|int, mixed>
redeemManageKey()  : Result
Redeems the key from the advert management link in the insertion email.
registerEvent()  : Result
resetPassword()  : Result
save()  : Result
search()  : array<string, mixed>
Runs the fulltext search through the Api endpoint `search` ({@see \App\Core\Traits\Api\Presenters\SearchTrait}). `orderBys = null` means ES sorts and pages by relevance; filled `orderBys` (manual user choice) means the DB sorts, pages and counts over the ES id set (manual sorting overrides the score). Returns the raw payload `{items, totalCount, _references, fromEs, highlights}`.
sendPasswordReset()  : Result
updateColumns()  : Result
failSoftRead()  : array<string|int, mixed>
Normalizes a bridge response to plain data; a failed envelope or a non-array gives `[]`.
getApiCallSource()  : string
Returns the caller branch ({@see \App\Core\Bridge\ApiBridge::PARAM_SOURCE}); implemented by the Front and Admin base `ApiRepository`.

Properties

$apiEndpoint

Api presenter path (e.g. `api/system/page`); set by each concrete repository.

protected string $apiEndpoint = 'api/bazaar/advert'

Methods

find()

public find(int $id[, string|array<string|int, mixed> $includes = [] ][, bool|null $useCache = null ]) : array<string|int, mixed>
Parameters
$id : int
$includes : string|array<string|int, mixed> = []
$useCache : bool|null = null
Return values
array<string|int, mixed>

findAll()

public findAll([array<string|int, mixed>|null $filters = [] ][, array<string|int, mixed>|null $orderBys = null ][, int|null $offset = null ][, int|null $limit = null ][, array<string|int, mixed>|null $columns = null ][, bool $computeTotalCount = false ][, string|array<string|int, mixed> $includes = [] ][, bool|null $useCache = null ]) : array<string|int, mixed>
Parameters
$filters : array<string|int, mixed>|null = []
$orderBys : array<string|int, mixed>|null = null
$offset : int|null = null
$limit : int|null = null
$columns : array<string|int, mixed>|null = null
$computeTotalCount : bool = false
$includes : string|array<string|int, mixed> = []
$useCache : bool|null = null
Return values
array<string|int, mixed>

findBy()

public findBy([array<string|int, mixed>|null $filters = [] ][, string|array<string|int, mixed> $includes = [] ][, bool|null $useCache = null ]) : array<string|int, mixed>
Parameters
$filters : array<string|int, mixed>|null = []
$includes : string|array<string|int, mixed> = []
$useCache : bool|null = null
Return values
array<string|int, mixed>

redeemManageKey()

Redeems the key from the advert management link in the insertion email.

public redeemManageKey(int $advertId, string $key) : Result

Calls <apiEndpoint>/redeemManageKey (internal Api action without action*(), grant guest); the Api verifies the digest, the expiration and the password binding (ManageKeyTrait).

Parameters
$advertId : int
$key : string
Return values
Result

registerEvent()

public registerEvent(array<string|int, int> $ids, string $property) : Result
Parameters
$ids : array<string|int, int>
$property : string
Return values
Result

resetPassword()

public resetPassword(int $advertId, string $key, string $password) : Result
Parameters
$advertId : int
$key : string
$password : string
Return values
Result

save()

public save(array<string, mixed> $data[, array<string, mixed> $meta = [] ][, array<int, string> $skipFields = [] ]) : Result
Parameters
$data : array<string, mixed>

extracted entity payload

$meta : array<string, mixed> = []
$skipFields : array<int, string> = []
Return values
Result

Runs the fulltext search through the Api endpoint `search` ({@see \App\Core\Traits\Api\Presenters\SearchTrait}). `orderBys = null` means ES sorts and pages by relevance; filled `orderBys` (manual user choice) means the DB sorts, pages and counts over the ES id set (manual sorting overrides the score). Returns the raw payload `{items, totalCount, _references, fromEs, highlights}`.

public search(string $search, string|null $languageAlias[, array<int, object|array<string, mixed>> $filters = [] ][, array<string, mixed>|null $orderBys = null ][, int|null $offset = null ][, int|null $limit = null ][, string|array<int, string> $includes = [] ]) : array<string, mixed>
Parameters
$search : string
$languageAlias : string|null
$filters : array<int, object|array<string, mixed>> = []

visibility and parameter filters (ready objects)

$orderBys : array<string, mixed>|null = null
$offset : int|null = null
$limit : int|null = null
$includes : string|array<int, string> = []
Return values
array<string, mixed> —

payload, or [] on failure or deny (fail-soft)

updateColumns()

public updateColumns(array<string|int, mixed> $ids, array<string, mixed> $values) : Result
Parameters
$ids : array<string|int, mixed>

ids or composite-id arrays

$values : array<string, mixed>

property name => new value

Return values
Result

failSoftRead()

Normalizes a bridge response to plain data; a failed envelope or a non-array gives `[]`.

protected failSoftRead(mixed $response, string $endpoint) : array<string|int, mixed>

NOTE: it does not log on purpose. ApiBridge::call(), which sees both the endpoint and the caller, has already written the API_FAILSOFT source=bridge line; a second copy would turn one failure into three lines in auth.log.

Parameters
$response : mixed
$endpoint : string

only for call readability; the log takes the endpoint from the bridge

Return values
array<string|int, mixed>

getApiCallSource()

Returns the caller branch ({@see \App\Core\Bridge\ApiBridge::PARAM_SOURCE}); implemented by the Front and Admin base `ApiRepository`.

protected abstract getApiCallSource() : string
Return values
string
On this page

Search results