Raid Instances showing up on calendar
This commit is contained in:
@@ -20,8 +20,10 @@ import com.mattrixwv.raidbuilder.annotation.GameAuthorization;
|
||||
import com.mattrixwv.raidbuilder.annotation.RaidGroupAuthorization;
|
||||
import com.mattrixwv.raidbuilder.entity.GameCalendarEvent;
|
||||
import com.mattrixwv.raidbuilder.entity.RaidGroupCalendarEvent;
|
||||
import com.mattrixwv.raidbuilder.entity.RaidInstanceCalendarEvent;
|
||||
import com.mattrixwv.raidbuilder.service.GameCalendarEventService;
|
||||
import com.mattrixwv.raidbuilder.service.RaidGroupCalendarEventService;
|
||||
import com.mattrixwv.raidbuilder.service.RaidInstanceService;
|
||||
import com.mattrixwv.raidbuilder.util.DatabaseTypeUtil.AccountPermissionType;
|
||||
import com.mattrixwv.raidbuilder.util.DatabaseTypeUtil.GamePermissionType;
|
||||
import com.mattrixwv.raidbuilder.util.DatabaseTypeUtil.RaidGroupPermissionType;
|
||||
@@ -38,8 +40,10 @@ public class CalendarController{
|
||||
private final ObjectMapper mapper;
|
||||
private final GameCalendarEventService gceService;
|
||||
private final RaidGroupCalendarEventService rgceService;
|
||||
private final RaidInstanceService raidInstanceService;
|
||||
|
||||
|
||||
//! Game
|
||||
@GetMapping("/game/{gameId}")
|
||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||
public List<GameCalendarEvent> getGameCalendarEvents(@PathVariable("gameId") UUID gameId){
|
||||
@@ -97,7 +101,7 @@ public class CalendarController{
|
||||
}
|
||||
|
||||
|
||||
//!Calendar
|
||||
//! Raid Group
|
||||
@GetMapping("/raidGroup/{raidGroupId}")
|
||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER, RaidGroupPermissionType.RAIDER})
|
||||
@@ -154,4 +158,15 @@ public class CalendarController{
|
||||
|
||||
return returnNode;
|
||||
}
|
||||
|
||||
//! Raid Instance
|
||||
@GetMapping("/raidGroup/{raidGroupId}/raidInstance")
|
||||
@AccountAuthorization(permissions = {AccountPermissionType.ADMIN, AccountPermissionType.USER})
|
||||
@RaidGroupAuthorization(permissions = {RaidGroupPermissionType.ADMIN, RaidGroupPermissionType.LEADER, RaidGroupPermissionType.RAIDER})
|
||||
public List<RaidInstanceCalendarEvent> getGameCalendarEventsByRaidInstance(@PathVariable("raidGroupId") UUID raidGroupId){
|
||||
log.info("Getting calendar events for raid group {}", raidGroupId);
|
||||
|
||||
|
||||
return raidInstanceService.findAllByRaidGroupId(raidGroupId).stream().map(instance -> new RaidInstanceCalendarEvent(instance)).toList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.mattrixwv.raidbuilder.entity;
|
||||
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.UUID;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RaidInstanceCalendarEvent{
|
||||
private UUID calendarEventId;
|
||||
private UUID raidInstanceId;
|
||||
private String eventName;
|
||||
private String eventDescription;
|
||||
private ZonedDateTime eventStartDate;
|
||||
private ZonedDateTime eventEndDate;
|
||||
|
||||
|
||||
public RaidInstanceCalendarEvent(RaidInstance raidInstance){
|
||||
this.calendarEventId = raidInstance.getRaidInstanceId();
|
||||
this.raidInstanceId = raidInstance.getRaidInstanceId();
|
||||
this.eventName = raidInstance.getRaidInstanceName();
|
||||
this.eventDescription = "Raid Instance " + raidInstance.getRaidInstanceName();
|
||||
this.eventStartDate = raidInstance.getRaidStartDate();
|
||||
this.eventEndDate = raidInstance.getRaidEndDate();
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ public interface RaidInstanceRepository extends RaidInstanceCustomRepository, Jp
|
||||
public void deleteAllByRaidLayoutIdIn(Iterable<UUID> raidLayoutIds);
|
||||
|
||||
|
||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId);
|
||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, PageRequest pageRequest);
|
||||
public List<RaidInstance> findAllByRaidGroupIdAndRaidInstanceNameContainingIgnoreCase(UUID raidGroupId, String searchTerm, PageRequest pageRequest);
|
||||
public List<RaidInstance> findAllByRaidGroupIdAndRaidEndDateAfter(UUID raidGroupId, ZonedDateTime raidEndDate, PageRequest pageRequest);
|
||||
|
||||
@@ -58,6 +58,10 @@ public class RaidInstanceService{
|
||||
return raidInstanceRepository.findById(raidInstanceId).orElse(null);
|
||||
}
|
||||
|
||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId){
|
||||
return raidInstanceRepository.findAllByRaidGroupId(raidGroupId);
|
||||
}
|
||||
|
||||
public List<RaidInstance> findAllByRaidGroupId(UUID raidGroupId, int page, int pageSize){
|
||||
return raidInstanceRepository.findAllByRaidGroupId(raidGroupId, PageRequest.of(page, pageSize, Sort.by("raidInstanceName").ascending()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user