package qa.qcri.aidr.manager.service; import java.util.Date; import java.util.List; import org.json.simple.JSONArray; import qa.qcri.aidr.common.values.UsageType; import qa.qcri.aidr.manager.dto.CollectionBriefInfo; import qa.qcri.aidr.manager.dto.CollectionDetailsInfo; import qa.qcri.aidr.manager.dto.CollectionStatsInfo; import qa.qcri.aidr.manager.dto.CollectionSummaryInfo; import qa.qcri.aidr.manager.dto.CollectionUpdateInfo; import qa.qcri.aidr.manager.dto.FetcherRequestDTO; import qa.qcri.aidr.manager.exception.AidrException; import qa.qcri.aidr.manager.persistence.entities.Collection; import qa.qcri.aidr.manager.persistence.entities.UserAccount; import qa.qcri.aidr.manager.util.SMS; public interface CollectionService { public Integer getPublicCollectionsCount(Enum statusValue) throws Exception; public List<Collection> findAllForPublic(Integer start, Integer limit, Enum statusValue) throws Exception; public boolean updateCollection(CollectionUpdateInfo collection, Long userId) throws Exception; public void update(Collection collection) throws Exception; public void delete(Collection collection) throws Exception; public Collection create(CollectionDetailsInfo collectionInfo, UserAccount user) throws Exception; public Collection findById(Long id) throws Exception; public Collection findByCode(String code) throws Exception; public List<Collection> findAll(Integer start, Integer limit, UserAccount user, boolean onlyTrashed) throws Exception; public Integer getCollectionsCount(UserAccount user, boolean onlyTrashed) throws Exception; public List<Collection> searchByName(String query, Long userId) throws Exception; public Boolean exist(String code) throws Exception; public Boolean existName(String name) throws Exception; public Collection getRunningCollectionStatusByUser(Long userId) throws Exception; public Collection updateAndGetRunningCollectionStatusByUser(Long userId) throws Exception; public Collection start(Long collectionId) throws Exception; public Collection stop(Long collectionId, Long userId) throws Exception; public Collection statusById(Long collectionId, Long userId) throws Exception; public Collection stopAidrFetcher(Collection collection, Long userId) throws Exception; public Collection startFetcher(FetcherRequestDTO fetcherRequest, Collection Collection) throws Exception; public boolean pingCollector() throws AidrException; public FetcherRequestDTO prepareFetcherRequest(Collection dbCollection); public Collection statusByCollection(Collection collection, Long userId) throws Exception; public List<Collection> getRunningCollections() throws Exception; public List<Collection> getRunningCollections(Integer start, Integer limit, String terms, String sortColumn, String sortDirection) throws Exception; public Long getRunningCollectionsCount(String terms) throws Exception; public List<Collection> getStoppedCollections(Integer start, Integer limit, String terms, String sortColumn, String sortDirection) throws Exception; public Long getStoppedCollectionsCount(String terms) throws Exception; public Boolean isValidToken(String token) throws Exception; public List<Collection> geAllCollectionByUser(Long userId) throws Exception; public Collection findTrashedByCode(String code) throws Exception; public Collection findTrashedById(Long id) throws Exception; public String getFollowTwitterIDs(String followList, String userName); public String getFollowTwitterScreenNames(String followList, String userName); public boolean enableClassifier(String code, UserAccount currentUser); public Boolean pushSMS(String collectionCode, SMS sms); public Boolean isValidAPIKey(String code, String apiKey) throws Exception; public List<CollectionSummaryInfo> getAllCollectionDataByUsage(UsageType usageType); public List<CollectionBriefInfo> getMicromappersFilteredCollections(boolean micromappersEnabled); Long getTotalCollectionsCount(); public Long getRunningCollectionsCount(); Long getRunningCollectionDataCount(); CollectionStatsInfo getCollectionStatistics(); public List<String> fetchEligibleFacebookCollectionsToReRun(); public void rerunFacebookCollection(String code); List<Collection> getUnexpectedlyStoppedCollections(Date today); int getRunningCollectionsCountFromCollector(); JSONArray searchFacebookProfiles(String keyword, Integer offset, Integer limit, UserAccount userEntity); }