Skip to content

Commit

Permalink
[fix] 삭제 파일 rebase - #63
Browse files Browse the repository at this point in the history
  • Loading branch information
rlarlgnszx committed Jul 11, 2024
1 parent bef4ae2 commit 416b323
Show file tree
Hide file tree
Showing 48 changed files with 752 additions and 144 deletions.
10 changes: 9 additions & 1 deletion .github/workflows/CICD-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,15 @@ jobs:
echo "${{ secrets.CD_APPLICATION }}" > ./application.yml
cat ./application.yml
working-directory: ${{ env.working-directory }}


- name: AuthKey_39CUV6ST46.p8 생성
run: |
mkdir -p dateroad-external/src/main/resources/static && cd $_
touch ./AuthKey_39CUV6ST46.p8
echo "${{ secrets.CD_APPLICATION }}" > ./AuthKey_39CUV6ST46.p8
cat ./AuthKey_39CUV6ST46.p8
working-directory: ${{ env.working-directory }}

- name: 빌드
run: |
chmod +x gradlew
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,7 @@ out/

### Yml ###
dateroad-api/src/main/resources/application.yml
dateroad-api/src/test/resources/application.yml
dateroad-api/src/test/resources/application.yml

### File ###
**/static/*.p8
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
package org.dateroad.advertisment.dto.response;

import java.util.List;
import lombok.AccessLevel;
import lombok.Builder;
import org.dateroad.advertisement.domain.AdTagType;
import org.dateroad.advertisement.domain.Advertisment;

@Builder(access = AccessLevel.PRIVATE)
public record AdvGetAllRes(
List<AdvertismentDtoRes> advertismentDtoResList
) {
public static AdvGetAllRes of(List<AdvertismentDtoRes> advertismentDtoResList) {
return AdvGetAllRes.builder()
.advertismentDtoResList(advertismentDtoResList)
.build();
}

@Builder(access = AccessLevel.PRIVATE)
public record AdvertismentDtoRes(
Long advertismentId,
String thumbnail,
String title,
AdTagType tag
){
) {
public static AdvertismentDtoRes of(Advertisment advertisment) {
return new AdvertismentDtoRes(advertisment.getId(), advertisment.getTitle(), advertisment.getThumbnail(), advertisment.getTag());
return AdvertismentDtoRes.builder()
.advertismentId(advertisment.getId())
.thumbnail(advertisment.getThumbnail())
.title(advertisment.getTitle())
.tag(advertisment.getTag())
.build();
}
}
public static AdvGetAllRes of(List<AdvertismentDtoRes> advertismentDtoResList) {
return new AdvGetAllRes(advertismentDtoResList);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import org.dateroad.auth.filter.JwtAuthenticationFilter;
import org.dateroad.auth.jwt.JwtProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
package org.dateroad.course.service;

import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.Path;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.BiFunction;
import org.dateroad.course.dto.request.CourseGetAllReq;
import org.dateroad.date.domain.Course;
import org.springframework.data.jpa.domain.Specification;

public class CourseSpecifications {
public static Specification<Course> filterByCriteria(CourseGetAllReq courseGetAllReq) {
String city = courseGetAllReq.city();
String country = courseGetAllReq.country();
Integer cost = courseGetAllReq.cost();
return (root, query, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();

if (city != null && !city.isEmpty()) {
predicates.add(criteriaBuilder.equal(root.get("city"), city));
}

if (country != null && !country.isEmpty()) {
predicates.add(criteriaBuilder.equal(root.get("country"), country));
}

if (cost != null) {
predicates.add(criteriaBuilder.lessThanOrEqualTo(root.get("cost"), cost));
}

addPredicate(predicates, criteriaBuilder, root, "city", courseGetAllReq.city(), criteriaBuilder::equal);
addPredicate(predicates, criteriaBuilder, root, "country", courseGetAllReq.country(), criteriaBuilder::equal);
addPredicate(predicates, criteriaBuilder, root, "cost", courseGetAllReq.cost(), criteriaBuilder::lessThanOrEqualTo);
return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
};
}

private static <T> void addPredicate(List<Predicate> predicates, CriteriaBuilder criteriaBuilder, Root<?> root,
String attributeName, T value,
BiFunction<Path<T>, T, Predicate> predicateFunction) {
Optional.ofNullable(value)
.ifPresent(val -> predicates.add(
predicateFunction.apply(root.get(attributeName), val))
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.dateroad.date.api;

import lombok.RequiredArgsConstructor;
import org.dateroad.auth.argumentresolve.UserId;
import org.dateroad.date.dto.request.DateCreateReq;
import org.dateroad.date.dto.response.DateDetailRes;
import org.dateroad.date.service.DateService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RequiredArgsConstructor
@RequestMapping("/api/v1/dates")
@RestController
public class DateController {
private final DateService dateService;

@PostMapping
public ResponseEntity<Void> createDate(@UserId final Long userId,
@RequestBody final DateCreateReq dateCreateReq) {
dateService.createDate(userId, dateCreateReq);
return ResponseEntity.status(HttpStatus.CREATED).build();
}

@GetMapping("/{dateId}")
public ResponseEntity<DateDetailRes> getDateDetail(@RequestHeader final Long userId,
@PathVariable final Long dateId) {
DateDetailRes dateDetailRes = dateService.getDateDetail(userId, dateId);
return ResponseEntity.ok(dateDetailRes);
}

@DeleteMapping("/{dateId}")
public ResponseEntity<Void> deleteDate(@UserId final Long userId,
@PathVariable final Long dateId) {
dateService.deleteDate(userId, dateId);
return ResponseEntity.ok().build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.dateroad.date.dto.request;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

public record DateCreateReq(
String title,
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd", timezone = "Asia/Seoul")
LocalDate date,
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "Asia/Seoul")
LocalTime startAt,
List<TagCreateReq> tags,
String country,
String city,
List<PlaceCreateReq> places
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.dateroad.date.dto.request;

public record PlaceCreateReq(
String name,
float duration,
int sequence
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.dateroad.date.dto.request;

import org.dateroad.tag.domain.DateTagType;

public record TagCreateReq(
DateTagType tag
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package org.dateroad.date.dto.response;

import lombok.AccessLevel;
import lombok.Builder;
import org.dateroad.date.domain.Date;
import org.dateroad.place.domain.DatePlace;
import org.dateroad.tag.domain.DateTag;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

@Builder(access = AccessLevel.PRIVATE)
public record DateDetailRes(
Long dateId,
String title,
LocalTime startAt,
String city,
List<TagGetRes> tags,
LocalDate date,
List<PlaceGetRes> places
) {

public static DateDetailRes of(Date date, List<DateTag> tags, List<DatePlace> places) {

List<TagGetRes> tagGetRes = tags.stream()
.map(TagGetRes::of)
.toList();

List<PlaceGetRes> placeGetRes = places.stream()
.map(PlaceGetRes::of)
.toList();

return DateDetailRes.builder()
.dateId(date.getId())
.title(date.getTitle())
.startAt(date.getStartAt())
.tags(tagGetRes)
.date(date.getDate())
.places(placeGetRes)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.dateroad.date.dto.response;

import lombok.AccessLevel;
import lombok.Builder;
import org.dateroad.place.domain.DatePlace;

@Builder(access = AccessLevel.PRIVATE)

public record PlaceGetRes(
String name,
float duration,
int sequence
) {
public static PlaceGetRes of(DatePlace datePlace) {
return PlaceGetRes.builder()
.name(datePlace.getName())
.duration(datePlace.getDuration())
.sequence(datePlace.getSequence())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.dateroad.date.dto.response;

import lombok.AccessLevel;
import lombok.Builder;
import org.dateroad.tag.domain.DateTag;
import org.dateroad.tag.domain.DateTagType;

@Builder(access = AccessLevel.PRIVATE)
public record TagGetRes(
DateTagType tag
) {
public static TagGetRes of(DateTag dateTag) {
return TagGetRes.builder()
.tag(dateTag.getDateTagType())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.dateroad.date.service;

import org.dateroad.date.domain.Date;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DateRepository extends JpaRepository<Date, Long> {
}
Loading

0 comments on commit 416b323

Please sign in to comment.