Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] 삭제 파일 rebase - #63 #64

Merged
merged 3 commits into from
Jul 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading