Class AnnouncementServiceImpl
- java.lang.Object
-
- ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl<java.lang.Long,Announcement>
-
- ca.corefacility.bioinformatics.irida.service.impl.AnnouncementServiceImpl
-
- All Implemented Interfaces:
AnnouncementService,CRUDService<java.lang.Long,Announcement>
@Service public class AnnouncementServiceImpl extends CRUDServiceImpl<java.lang.Long,Announcement> implements AnnouncementService
Service for managing @{link Announcements}
-
-
Field Summary
-
Fields inherited from class ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl
CREATED_DATE_SORT_PROPERTY, repository, validator, valueType
-
-
Constructor Summary
Constructors Constructor Description AnnouncementServiceImpl(AnnouncementRepository announcementRepository, AnnouncementUserJoinRepository announcementUserJoinRepository, UserRepository userRepository, javax.validation.Validator validator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<Announcement,java.lang.Long>countReadsForAllAnnouncements()Get a map where the keys areAnnouncements and the values areIntegers representing the number ofUsers who have read that announcement.java.lang.LongcountReadsForOneAnnouncement(Announcement announcement)Get a count of the number ofUsers who have readAnnouncementAnnouncementcreate(Announcement announcement)Create a new object in the persistence store.voiddelete(java.lang.Long id)Delete the object with the specified identifier from the database.java.util.List<Announcement>getAllAnnouncements()Get a list of all of theAnnouncements that currently existjava.util.List<Announcement>getAnnouncementsCreatedByUser(User user)Get a list ofAnnouncements created by specific adminUserjava.util.List<AnnouncementUserReadDetails>getAnnouncementsForUser(User user)Get a list ofAnnouncements that have been read and unread byUserjava.util.List<AnnouncementUserJoin>getReadAnnouncementsForUser(User user)Get a list ofAnnouncements that have been read byUserjava.util.List<AnnouncementUserJoin>getReadUsersForAnnouncement(Announcement announcement)Get all of theJoins describing users that have comfirmed they've read a particularAnnouncementjava.util.List<Announcement>getUnreadAnnouncementsForUser(User user)Get a list ofAnnouncements that have not been read byUserjava.util.List<User>getUnreadUsersForAnnouncement(Announcement announcement)Get a list of all of theUsers that have not confirmed they've read theAnnouncementAnnouncementUserJoinmarkAnnouncementAsReadByUser(Announcement announcement, User user)Mark anAnnouncementobject as read by aUservoidmarkAnnouncementAsUnreadByUser(Announcement announcement, User user)Mark anAnnouncementas unread by aUserAnnouncementread(java.lang.Long id)Read the object type by unique identifier.org.springframework.data.domain.Page<Announcement>search(org.springframework.data.jpa.domain.Specification<Announcement> specification, org.springframework.data.domain.Pageable request)Search for an entity ofTypeandPageRequestAnnouncementupdate(Announcement announcement)Update an object-
Methods inherited from class ca.corefacility.bioinformatics.irida.service.impl.CRUDServiceImpl
count, exists, findAll, findRevisions, findRevisions, list, list, list, readMultiple, search, updateFields, updateMultiple
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ca.corefacility.bioinformatics.irida.service.CRUDService
count, exists, findAll, findRevisions, findRevisions, list, list, list, readMultiple, search, updateFields, updateMultiple
-
-
-
-
Constructor Detail
-
AnnouncementServiceImpl
@Autowired public AnnouncementServiceImpl(AnnouncementRepository announcementRepository, AnnouncementUserJoinRepository announcementUserJoinRepository, UserRepository userRepository, javax.validation.Validator validator)
-
-
Method Detail
-
create
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public Announcement create(Announcement announcement)Create a new object in the persistence store.- Specified by:
createin interfaceCRUDService<java.lang.Long,Announcement>- Overrides:
createin classCRUDServiceImpl<java.lang.Long,Announcement>- Parameters:
announcement- The object to persist.- Returns:
- The object as it was persisted in the database. May modify the identifier of the object when returned.
-
delete
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public void delete(java.lang.Long id)Delete the object with the specified identifier from the database.- Specified by:
deletein interfaceCRUDService<java.lang.Long,Announcement>- Overrides:
deletein classCRUDServiceImpl<java.lang.Long,Announcement>- Parameters:
id- The identifier of the object to delete.
-
update
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public Announcement update(Announcement announcement)Update an object- Specified by:
updatein interfaceCRUDService<java.lang.Long,Announcement>- Overrides:
updatein classCRUDServiceImpl<java.lang.Long,Announcement>- Parameters:
announcement- The object to update- Returns:
- The updated object
-
read
@PreAuthorize("hasAnyRole(\'ROLE_USER\')") public Announcement read(java.lang.Long id)Read the object type by unique identifier.- Specified by:
readin interfaceCRUDService<java.lang.Long,Announcement>- Overrides:
readin classCRUDServiceImpl<java.lang.Long,Announcement>- Parameters:
id- The unique identifier for this object.- Returns:
- The object corresponding to the unique identifier.
-
search
@PreAuthorize("hasAnyRole(\'ROLE_USER\')") public org.springframework.data.domain.Page<Announcement> search(org.springframework.data.jpa.domain.Specification<Announcement> specification, org.springframework.data.domain.Pageable request)Search for an entity ofTypeandPageRequest- Specified by:
searchin interfaceCRUDService<java.lang.Long,Announcement>- Overrides:
searchin classCRUDServiceImpl<java.lang.Long,Announcement>- Parameters:
specification- The searchSpecificationrequest- ThePageRequest- Returns:
- a
PageofType
-
markAnnouncementAsReadByUser
@PreAuthorize("hasAnyRole(\'ROLE_USER\')") public AnnouncementUserJoin markAnnouncementAsReadByUser(Announcement announcement, User user) throws EntityExistsExceptionMark anAnnouncementobject as read by aUser- Specified by:
markAnnouncementAsReadByUserin interfaceAnnouncementService- Parameters:
announcement- The announcement to markuser- the user who's read the announcement- Returns:
- An
AnnouncementUserJoinobject representing the relationship between the announcement and the user - Throws:
EntityExistsException
-
markAnnouncementAsUnreadByUser
@PreAuthorize("hasAnyRole(\'ROLE_USER\')") public void markAnnouncementAsUnreadByUser(Announcement announcement, User user) throws EntityNotFoundExceptionMark anAnnouncementas unread by aUser- Specified by:
markAnnouncementAsUnreadByUserin interfaceAnnouncementService- Parameters:
announcement- the announcement to markuser- the user to mark the announcement for- Throws:
EntityNotFoundException
-
getReadUsersForAnnouncement
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public java.util.List<AnnouncementUserJoin> getReadUsersForAnnouncement(Announcement announcement) throws EntityNotFoundExceptionGet all of theJoins describing users that have comfirmed they've read a particularAnnouncement- Specified by:
getReadUsersForAnnouncementin interfaceAnnouncementService- Parameters:
announcement- TheAnnouncementfor which we want to load users that have read it- Returns:
- List of
Users that have read the announcement - Throws:
EntityNotFoundException
-
getUnreadUsersForAnnouncement
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public java.util.List<User> getUnreadUsersForAnnouncement(Announcement announcement) throws EntityNotFoundExceptionGet a list of all of theUsers that have not confirmed they've read theAnnouncement- Specified by:
getUnreadUsersForAnnouncementin interfaceAnnouncementService- Parameters:
announcement- The- Returns:
- List of
Users that haven't confirmed they've read the announcement - Throws:
EntityNotFoundException
-
getAnnouncementsForUser
@PreAuthorize("hasPermission(#user, \'canUpdateUser\')") public java.util.List<AnnouncementUserReadDetails> getAnnouncementsForUser(User user)Get a list ofAnnouncements that have been read and unread byUser- Specified by:
getAnnouncementsForUserin interfaceAnnouncementService- Parameters:
user-Userfor whom we want to get unread announcements- Returns:
- list of
AnnouncementUserReadDetailsobjects representing announcements read and unread by a user
-
getReadAnnouncementsForUser
@PreAuthorize("hasPermission(#user, \'canUpdateUser\')") public java.util.List<AnnouncementUserJoin> getReadAnnouncementsForUser(User user)Get a list ofAnnouncements that have been read byUser- Specified by:
getReadAnnouncementsForUserin interfaceAnnouncementService- Parameters:
user-Userfor whom we want to get unread announcements- Returns:
- list of
Joinobjects representing announcements marked as read by a user
-
getUnreadAnnouncementsForUser
@PreAuthorize("hasPermission(#user, \'canUpdateUser\')") public java.util.List<Announcement> getUnreadAnnouncementsForUser(User user)Get a list ofAnnouncements that have not been read byUser- Specified by:
getUnreadAnnouncementsForUserin interfaceAnnouncementService- Parameters:
user-Userfor whom we want to get unread announcements- Returns:
- List of
Announcements that have not been read by the user
-
getAllAnnouncements
@PreAuthorize("hasAnyRole(\'ROLE_USER\')") public java.util.List<Announcement> getAllAnnouncements()Get a list of all of theAnnouncements that currently exist- Specified by:
getAllAnnouncementsin interfaceAnnouncementService- Returns:
- List of
Announcements
-
getAnnouncementsCreatedByUser
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public java.util.List<Announcement> getAnnouncementsCreatedByUser(User user)Get a list ofAnnouncements created by specific adminUser- Specified by:
getAnnouncementsCreatedByUserin interfaceAnnouncementService- Parameters:
user- The adminUserwho created the announcements- Returns:
- List of announcements created by the admin, empty list if
Useris not an admin
-
countReadsForOneAnnouncement
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public java.lang.Long countReadsForOneAnnouncement(Announcement announcement)Get a count of the number ofUsers who have readAnnouncement- Specified by:
countReadsForOneAnnouncementin interfaceAnnouncementService- Parameters:
announcement-Announcementfor which we want the number of users who have read it- Returns:
- number of users who have read
Announcement
-
countReadsForAllAnnouncements
@PreAuthorize("hasRole(\'ROLE_ADMIN\')") public java.util.Map<Announcement,java.lang.Long> countReadsForAllAnnouncements()Get a map where the keys areAnnouncements and the values areIntegers representing the number ofUsers who have read that announcement.- Specified by:
countReadsForAllAnnouncementsin interfaceAnnouncementService- Returns:
- A Map of announcements and counts of users who have read that announcement
-
-