반응형
오늘의 잡담 (충청도 다녀온 얘기)
더보기








오늘은 충청도에 트레킹을 다녀왔어욤

핫또그

폭포를 봤읍니다
월이산에 있는 옥계폭포였음

여긴 와인이 특산물이더라구요
와인 아이스크림 먹어봤는데 생각보다 넘 맛있었음

트레킹 코스인 월류봉 도착

9km 정도 걸음

버섯농가에서 키우는 애옹이 망고
엄청 프렌들리함 ㅋㅋㅋㅋ

물은 다 얼어 있다

반야사까지 갔다가 귀가 완료
아 진도 안 나가니까 막막하다? 빡이친다?
제가 요즘 하고 있는 건요
게시물 서랍장에서 게시물 꺼내올 때 누가 썼는지도 보여줘야 되니까 관련 유저 정보도 유저 서랍장에서 같이 꺼내와야 하거든요.
그 작업을 하고 있답니다.
페이지 별로 필요한 정보들을 한 번에 가져오도록.. 뭐 그렇고 그런.. 넵
그래서 오늘까지는요
- 이벤트 리스트 조회 (제목, 글쓴이 검색 가능)
- 이벤트 디테일 조회
- 이벤트 발행
이 가능해졌습니다.
🚀 요약
작업 시간: 3시간
✅ 페이지별 필요한 엔드포인트 구현 (진행중)
🚀 페이지별 필요한 API 엔드포인트 구현
이벤트 리스트 조회 (제목, 글쓴이 검색 가능)
public async Task<IEnumerable<EventDto>> GetEventListAsync(string searchType, string searchText)
{
var eventList = await _context.Events
.Include(e => e.User)
.Include(e => e.Category)
.ToListAsync();
if (!string.IsNullOrEmpty(searchText) && eventList != null)
{
switch (searchType)
{
case "Title":
eventList = eventList.Where(e => e.Title.Contains(searchText)).ToList();
break;
case "Writer":
eventList = eventList.Where(e => e.User != null &&
e.User.Username != null &&
e.User.Username.Contains(searchText)).ToList();
break;
// case "Participant":
// eventList = eventList.Where(e => e.Participants.Contains(/* ? */))
// .ToList();
// break;
default:
break;
}
}
if (eventList == null)
return [];
var eventListWithImages = eventList.Select(e => new EventDto
{
Title = e.Title,
Content = e.Content,
Date = e.Date,
Participants = e.Participants,
CreatedAt = e.CreatedAt,
User = e.User != null ? new UserDto
{
Id = e.User.Id,
Username = e.User.Username,
ProfileImageUrl = e.User.ProfileImageUrl
} : null,
Category = e.Category != null ? new CategoryDto
{
Id = e.Category.Id,
Name = e.Category.Name
} : null,
EventImageList = _context.EventImages.ToList()
}).ToList();
return eventListWithImages;
}
참여자 검색은 내가 user id 리스트를 그냥 컬럼 하나에 다 때려넣어놔서 일단 어떻게 분리할지 생각을 좀 해봐야 할 듯
이벤트 디테일 조회
public async Task<EventDto?> GetEventByIdAsync(int eventId)
{
var eventItem = await _context.Events
.Include(e => e.User)
.Include(e => e.Category)
.Where(e => e.Id == eventId)
.FirstOrDefaultAsync();
if (eventItem == null)
{
return null;
}
var eventItemWithImages = new EventDto
{
Title = eventItem.Title,
Content = eventItem.Content,
Date = eventItem.Date,
Participants = eventItem.Participants,
CreatedAt = eventItem.CreatedAt,
User = eventItem.User != null ? new UserDto
{
Id = eventItem.User.Id,
Username = eventItem.User.Username,
ProfileImageUrl = eventItem.User.ProfileImageUrl
} : null,
Category = eventItem.Category != null ? new CategoryDto
{
Id = eventItem.Category.Id,
Name = eventItem.Category.Name
} : null,
EventImageList = _context.EventImages
.Where(ei => ei.EventId == eventItem.Id)
.ToList()
};
return eventItemWithImages;
}
아.. 이미지 이렇게 가져오는 게 최선이었을까..
나의 최선이긴 했는데 객관적으로 최선인지 모르겠음 아 몰라몰라
이벤트 발행
public async Task<Event> CreateEventAsync(EventDto eventDto)
{
var newEvent = new Event
{
UserId = eventDto.UserId,
CategoryId = eventDto.CategoryId,
Title = eventDto.Title ?? "",
Content = eventDto.Content,
Date = eventDto.Date,
EventImageList = eventDto.EventImageList
};
_context.Events.Add(newEvent);
await _context.SaveChangesAsync();
return newEvent;
}
포스트맨으로 데이터 잘 들어가는 것까지 확인 완~
반응형