PHP Class Wallabag\CoreBundle\Repository\EntryRepository

Inheritance: extends Doctrine\ORM\EntityRepository
Show file Open project: wallabag/wallabag

Public Methods

Method Description
countAllEntriesByUserIdAndTagId ( integer $userId, integer $tagId ) : integer Count all entries for a tag and a user.
countAllEntriesByUsername ( integer $userId ) : integer Count all entries for a user.
findAllByTagId ( integer $userId, integer $tagId ) : array Find all entries that are attached to a give tag id.
findByUrlAndUserId ( $url, $userId ) : Entry | boolean Find an entry by its url and its owner.
findDistinctLanguageByUser ( integer $userId ) : array Find distinct language for a given user.
findEntries ( integer $userId, boolean $isArchived = null, boolean $isStarred = null, string $sort = 'created', string $order = 'ASC', integer $since, string $tags = '' ) : array Find Entries.
findOneByUsernameAndNotArchived ( string $username ) : Entry Used only in test case to get the right entry associated to the right user.
findOneWithTags ( integer $userId ) : Entry Fetch an entry with a tag. Only used for tests.
getBuilderForAllByUser ( integer $userId ) : QueryBuilder Retrieves all entries for a user.
getBuilderForArchiveByUser ( integer $userId ) : QueryBuilder Retrieves read entries for a user.
getBuilderForStarredByUser ( integer $userId ) : QueryBuilder Retrieves starred entries for a user.
getBuilderForUnreadByUser ( integer $userId ) : QueryBuilder Retrieves unread entries for a user.
getBuilderForUntaggedByUser ( integer $userId ) : QueryBuilder Retrieves untagged entries for a user.
removeTag ( integer $userId, Wallabag\CoreBundle\Entity\Tag $tag ) Remove a tag from all user entries.
removeTags ( integer $userId, Array $tags ) Remove tags from all user entries.

Private Methods

Method Description
getBuilderByUser ( integer $userId ) : QueryBuilder Return a query builder to used by other getBuilderFor* method.

Method Details

countAllEntriesByUserIdAndTagId() public method

Count all entries for a tag and a user.
public countAllEntriesByUserIdAndTagId ( integer $userId, integer $tagId ) : integer
$userId integer
$tagId integer
return integer

countAllEntriesByUsername() public method

Count all entries for a user.
public countAllEntriesByUsername ( integer $userId ) : integer
$userId integer
return integer

findAllByTagId() public method

Find all entries that are attached to a give tag id.
public findAllByTagId ( integer $userId, integer $tagId ) : array
$userId integer
$tagId integer
return array

findByUrlAndUserId() public method

If it exists, return the entry otherwise return false.
public findByUrlAndUserId ( $url, $userId ) : Entry | boolean
$url
$userId
return Entry | boolean

findDistinctLanguageByUser() public method

Used to build the filter language list.
public findDistinctLanguageByUser ( integer $userId ) : array
$userId integer User id
return array

findEntries() public method

Find Entries.
public findEntries ( integer $userId, boolean $isArchived = null, boolean $isStarred = null, string $sort = 'created', string $order = 'ASC', integer $since, string $tags = '' ) : array
$userId integer
$isArchived boolean
$isStarred boolean
$sort string
$order string
$since integer
$tags string
return array

findOneByUsernameAndNotArchived() public method

Used only in test case to get the right entry associated to the right user.
public findOneByUsernameAndNotArchived ( string $username ) : Entry
$username string
return Entry

findOneWithTags() public method

Fetch an entry with a tag. Only used for tests.
public findOneWithTags ( integer $userId ) : Entry
$userId integer
return Entry

getBuilderForAllByUser() public method

Retrieves all entries for a user.
public getBuilderForAllByUser ( integer $userId ) : QueryBuilder
$userId integer
return QueryBuilder

getBuilderForArchiveByUser() public method

Retrieves read entries for a user.
public getBuilderForArchiveByUser ( integer $userId ) : QueryBuilder
$userId integer
return QueryBuilder

getBuilderForStarredByUser() public method

Retrieves starred entries for a user.
public getBuilderForStarredByUser ( integer $userId ) : QueryBuilder
$userId integer
return QueryBuilder

getBuilderForUnreadByUser() public method

Retrieves unread entries for a user.
public getBuilderForUnreadByUser ( integer $userId ) : QueryBuilder
$userId integer
return QueryBuilder

getBuilderForUntaggedByUser() public method

Retrieves untagged entries for a user.
public getBuilderForUntaggedByUser ( integer $userId ) : QueryBuilder
$userId integer
return QueryBuilder

removeTag() public method

We need to loop on each entry attached to the given tag to remove it, since Doctrine doesn't know EntryTag entity because it's a ManyToMany relation. It could be faster with one query but I don't know how to retrieve the table name entry_tag which can have a prefix: DELETE et FROM entry_tag et WHERE et.entry_id IN ( SELECT e.id FROM entry e WHERE e.user_id = :userId ) AND et.tag_id = :tagId
public removeTag ( integer $userId, Wallabag\CoreBundle\Entity\Tag $tag )
$userId integer
$tag Wallabag\CoreBundle\Entity\Tag

removeTags() public method

Remove tags from all user entries.
public removeTags ( integer $userId, Array $tags )
$userId integer
$tags Array