View Javadoc
1   package fr.ifremer.dali.service.administration.campaign;
2   
3   /*-
4    * #%L
5    * Dali :: Core
6    * %%
7    * Copyright (C) 2014 - 2017 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Affero General Public License as published by
11   * the Free Software Foundation, either version 3 of the License, or
12   * (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU Affero General Public License
20   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21   * #L%
22   */
23  
24  import fr.ifremer.quadrige3.core.security.AuthenticationInfo;
25  import fr.ifremer.dali.dto.SearchDateDTO;
26  import fr.ifremer.dali.dto.data.survey.CampaignDTO;
27  import org.springframework.security.access.prepost.PreAuthorize;
28  import org.springframework.transaction.annotation.Transactional;
29  
30  import java.util.Collection;
31  import java.util.Date;
32  import java.util.List;
33  
34  /**
35   * @author peck7 on 02/08/2017.
36   */
37  @Transactional(readOnly = true)
38  public interface CampaignService {
39  
40      List<CampaignDTO> getAllCampaigns();
41  
42      List<CampaignDTO> findCampaignsByCriteria(String name, SearchDateDTO startDateSearch, Date startDate1, Date startDate2, SearchDateDTO endDateSearch, Date endDate1, Date endDate2);
43  
44      List<CampaignDTO> findCampaignsIncludingDate(Date date);
45  
46      boolean checkCampaignNameDuplicates(Integer id, String name);
47  
48      @Transactional
49  //    @PreAuthorize("hasPermission(campaigns, T(fr.ifremer.dali.security.DaliPermissionType).SAVE_CAMPAIGN, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
50      @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
51      void saveCampaigns(AuthenticationInfo authenticationInfo, Collection<? extends CampaignDTO> campaigns);
52  
53      @Transactional
54  //    @PreAuthorize("hasPermission(campaignIds, T(fr.ifremer.dali.security.DaliPermissionType).DELETE_CAMPAIGN, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
55      @PreAuthorize("hasPermission(null, T(fr.ifremer.quadrige3.core.security.QuadrigeUserAuthority).USER)")
56      void deleteCampaign(AuthenticationInfo authenticationInfo, List<Integer> campaignIds);
57  
58      boolean isCampaignUsedByFilter(int campaignId);
59  
60      long countSurveysWithCampaign(int campaignId);
61  }