interface item_repository_interface implements repository_interface

Methods

create(item_dto_interface $dto)

Create a new item from a DTO.

item_interface|null
find_by_id(int $id)

Find an item by ID.

update(item_dto_interface $dto)

Update an existing item from a DTO.

void
delete(int $id)

Delete an item and all related metadata.

array
get_metadata(int $itemid)

Get all metadata associated with an item.

void
save_metadata(int $itemid, array $metadata)

Save (insert/update) metadata entries.

array
find_by_metadata(string $key, string $value)

Search items by metadata key/value pair.

array
find_by_type(string $type)

Find all items of a given TYPE.

Details

at line 57
item_interface create(item_dto_interface $dto)

Create a new item from a DTO.

Must be atomic: Item + Metadata in a single transaction.

Parameters

item_dto_interface $dto

Return Value

item_interface

Exceptions

JsonException

at line 68
item_interface|null find_by_id(int $id)

Find an item by ID.

Parameters

int $id

Return Value

item_interface|null

Exceptions

dml_exception

at line 80
item_interface update(item_dto_interface $dto)

Update an existing item from a DTO.

Must be atomic: Item + Metadata in a single transaction.

Parameters

item_dto_interface $dto

Return Value

item_interface

Exceptions

moodle_exception

at line 89
void delete(int $id)

Delete an item and all related metadata.

Parameters

int $id

Return Value

void

Exceptions

dml_transaction_exception

at line 100
array get_metadata(int $itemid)

Get all metadata associated with an item.

Parameters

int $itemid

Return Value

array

Exceptions

dml_exception

at line 111
void save_metadata(int $itemid, array $metadata)

Save (insert/update) metadata entries.

Keys not provided must remain untouched.

Parameters

int $itemid
array $metadata

Return Value

void

Exceptions

JsonException

at line 123
array find_by_metadata(string $key, string $value)

Search items by metadata key/value pair.

Parameters

string $key
string $value

Return Value

array

Exceptions

dml_exception

at line 135
array find_by_type(string $type)

Find all items of a given TYPE.

Must use efficient metadata loading to avoid N+1.

Parameters

string $type

Return Value

array

Exceptions

dml_exception