Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…ilter-service into testBranchMerge3
  • Loading branch information
BoyoungH committed Jul 14, 2024
2 parents b92bf59 + f99a218 commit ee231a5
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ public ResponseEntity<Page<FilterDto.ReadTemporaryDetailsInfoResponse>> readTemp
return ResponseEntity.ok(filterService.readTemporaryFilter(userId, page, size));
}

@Operation(summary = "임시 필터 삭제(미완성)")
@DeleteMapping("/{temporaryFilterId}")
@Operation(summary = "임시 필터 삭제")
@DeleteMapping("/temporary/{temporaryFilterId}")
public ResponseEntity<ResponseDto> deleteTemporaryFilter(
@RequestHeader("Authorization") String accessToken,
@PathVariable UUID temporaryFilterId) {
Expand All @@ -214,7 +214,7 @@ public ResponseEntity<ResponseDto> deleteTemporaryFilter(

return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
}
@Operation(summary = "필터 삭제(미완성)")
@Operation(summary = "필터 삭제")
@DeleteMapping("/{filterId}")
public ResponseEntity<ResponseDto> deleteFilter(
@RequestHeader("Authorization") String accessToken,
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/com/blackshoe/esthete/dto/FilterDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -248,19 +248,22 @@ public static class ReadTemporaryDetailsInfoResponse {
private AttributeResponse filterAttributes;
private RepresentationImgListResponse representationImgList;
private FilterTagListResponse filterTagList;
private LocalDateTime updatedAt;

@Builder
public ReadTemporaryDetailsInfoResponse(UUID temporaryFilterId,
String filterThumbnail,
AttributeResponse filterAttributes,
RepresentationImgListResponse representationImgList,
FilterTagListResponse filterTagList) {
FilterTagListResponse filterTagList,
LocalDateTime updatedAt) {
this.temporaryFilterId = temporaryFilterId;
this.filterThumbnail = filterThumbnail != null ? filterThumbnail : "";
this.filterAttributes = filterAttributes != null ? filterAttributes : new AttributeResponse(
String.valueOf(temporaryFilterId), 0f, 0f, 0f, 0f, 0f, 0f, 0f, 0f);
this.representationImgList = representationImgList != null ? representationImgList : new RepresentationImgListResponse(new ArrayList<>());
this.filterTagList = filterTagList != null ? filterTagList : new FilterTagListResponse(new ArrayList<>());
this.updatedAt = updatedAt != null ? updatedAt : LocalDateTime.now();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public class TemporaryFilter {
public void setThumbnailUrl(ThumbnailUrl thumbnailUrl){
this.thumbnailUrl = thumbnailUrl;
}

public void updateUser(User user){
this.user = user;
user.addTemporaryFilter(this);
Expand Down Expand Up @@ -100,6 +101,10 @@ public void prePersist() {
}
}

public void freeUser(){
this.user = null;
}

public void updateTemporaryFilterInfo(String name, String description){
this.name = name;
this.description = description;
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/com/blackshoe/esthete/entity/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public void addTemporaryFilter(TemporaryFilter temporaryFilter){
this.temporaryFilters.add(temporaryFilter);
}

// 임시필터 transfer 용도
public void deleteTemporaryFilter(TemporaryFilter temporaryFilter) {
this.temporaryFilters.add(temporaryFilter);
}
Expand All @@ -97,4 +98,12 @@ public void updateProfileImgUrl(String profileImgUrl) {
public void updateNickname(String nickname) {
this.nickname = nickname;
}

public void removeTemporaryFilter(TemporaryFilter temporaryFilter) {
this.temporaryFilters.remove(temporaryFilter);
}

public void removeFilter(Filter filter) {
this.filters.remove(filter);
}
}
31 changes: 31 additions & 0 deletions src/main/java/com/blackshoe/esthete/service/FilterServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -186,13 +186,43 @@ public FilterDto.FilterDetailsResponse getDetails(UUID filterId, UUID userId) {
}

@Override
@Transactional
public void deleteFilter(UUID userId, UUID filterId) {
final User user = userRepository.findByUserId(userId).orElseThrow(
() -> new UserException(UserErrorResult.NOT_FOUND_USER)
);

final Filter filter = filterRepository.findByFilterId(filterId).orElseThrow(
() -> new FilterException(FilterErrorResult.NOT_FOUND_FILTER)
);

if(!filter.getUser().equals(user)){
throw new FilterException(FilterErrorResult.NOT_FOUND_FILTER);

}else{
user.removeFilter(filter);
filterRepository.delete(filter);
}
}

@Override
@Transactional
public void deleteTemporaryFilter(UUID userId, UUID temporaryFilterId) {
final User user = userRepository.findByUserId(userId).orElseThrow(
() -> new UserException(UserErrorResult.NOT_FOUND_USER)
);
//5a0db2eb-f4bc-4fa3-ae47-8381ed0da1ab
final TemporaryFilter temporaryFilter = temporaryFilterRepository.findByTemporaryFilterId(temporaryFilterId).orElseThrow(
() -> new FilterException(FilterErrorResult.NOT_FOUND_FILTER)
);

if(!temporaryFilter.getUser().equals(user)){
throw new FilterException(FilterErrorResult.NOT_FOUND_FILTER);
}else{
user.removeTemporaryFilter(temporaryFilter);
temporaryFilterRepository.delete(temporaryFilter);

}
}

@Override
Expand Down Expand Up @@ -234,6 +264,7 @@ public Page<FilterDto.ReadTemporaryDetailsInfoResponse> readTemporaryFilter(UUID
.build())
.representationImgList(FilterDto.RepresentationImgListResponse.builder()
.build())
.updatedAt(temporaryFilter.getUpdatedAt())
.build();

readTemporaryDetailsInfoResponse.add(readTemporaryDetailsInfo);
Expand Down
28 changes: 16 additions & 12 deletions src/main/resources/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ INSERT INTO tags (tag_uuid, name) VALUES
ON DUPLICATE KEY UPDATE tag_uuid = tag_uuid;

INSERT INTO users (user_uuid, nickname, created_at, updated_at, user_id, profile_img_url) VALUES
(UNHEX(REPLACE('5a0db2eb-f4bc-4fa3-ae47-8381ed0da1ab', '-', '')), 'testuser', NOW(), NOW(), 1, 'default')
(UNHEX(REPLACE('5a0db2eb-f4bc-4fa3-ae47-8381ed0da1ab', '-', '')), 'testuser', NOW(), NOW(), 1, 'https://d1g6qszf7cmafu.cloudfront.net/default/profile.png')
ON DUPLICATE KEY UPDATE user_uuid = user_uuid;


Expand All @@ -41,16 +41,24 @@ ON DUPLICATE KEY UPDATE filter_uuid = filter_uuid;

INSERT INTO representation_img_urls (filter_id, representation_img_url_id, temporary_filter_id, representation_img_url_uuid, cloudfront_url, s3_url)
VALUES
(1, 1, NULL, UNHEX(REPLACE('62cc8b3f-4ddf-4518-beaa-63651df8403d', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/f74a870e-82e3-46fb-bcc5-f83613e7625d/representation/7c39a6a3-f5d3-4bc4-a102-deff81ae1592.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/a720245d-d592-432c-b874-8033cd1b3b2a/representation/6857bd1f-fef5-48e0-8ecb-1d4ee6fe96da.jpg'),
(1, 2, NULL, UNHEX(REPLACE('4db99727-e273-47dd-9dde-d06563e5c53e', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/ee25dcff-8579-4280-8094-1c7d4ab9b399/representation/32888a3a-d531-46b5-97a9-a49e6cc396b9.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/a720245d-d592-432c-b874-8033cd1b3b2a/representation/cf755b9d-74c1-4994-9fa1-0d45c5fe3d7b.webp'),
(1, 3, NULL, UNHEX(REPLACE('838f5b54-3134-4b54-9b41-857c74df7857', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/e003b0e5-7d50-40ad-becf-eafad7c6704e/representation/b0443667-991b-4e55-8dd4-0314e7eb0171.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/a720245d-d592-432c-b874-8033cd1b3b2a/representation/8619115d-d03d-4e1d-afc0-89fd4c72e0ea.jpg'),
(2, 4, NULL, UNHEX(REPLACE('8fe63e8c-153a-4ed7-b661-744d0a7c4bdc', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/049e3a23-b067-4b3c-96a0-9e4bf04f100d/representation/c48aac43-8062-4eef-9deb-0271f0deb3e8.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/7e9e3ad3-d328-4377-8cbf-813d4c69ceaa/representation/0437f09a-0713-4213-9183-9d32a7653d81.jpg')
(1, 1, NULL, UNHEX(REPLACE('62cc8b3f-4ddf-4518-beaa-63651df8403d', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo.png'),
(1, 2, NULL, UNHEX(REPLACE('4db99727-e273-47dd-9dde-d06563e5c53e', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo2.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo2.png'),
(1, 3, NULL, UNHEX(REPLACE('838f5b54-3134-4b54-9b41-857c74df7857', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo3.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo3.png'),
(2, 4, NULL, UNHEX(REPLACE('8fe63e8c-153a-4ed7-b661-744d0a7c4bdc', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo.png')
ON DUPLICATE KEY UPDATE representation_img_url_uuid = representation_img_url_uuid;

INSERT INTO temporary_filters (created_at, temporary_filter_id, updated_at, user_id, temporary_filter_uuid, description, name)
VALUES
(NOW(), 1, NOW(), 1, UNHEX(REPLACE('a720245d-d592-424c-b874-8033cd1b3b2a', '-', '')), 'testTemporaryFilter1description', 'testTemporaryFilter1'),
(NOW(), 2, NOW(), 1, UNHEX(REPLACE('7e9e3ad3-d328-2157-8cbf-813d4c69ceaa', '-', '')), 'testTemporaryFilter2description', 'testTemporaryFilter2')
ON DUPLICATE KEY UPDATE temporary_filter_uuid = temporary_filter_uuid;

INSERT INTO thumbnail_urls (filter_id, temporary_filter_id, thumbnail_url_id, thumbnail_url_uuid, cloudfront_url, s3_url)
VALUES
(1, NULL, 1, UNHEX(REPLACE('c1a9fbe6-a3d3-4134-be35-d11127f4e70f', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/049e3a23-b067-4b3c-96a0-9e4bf04f100d/thumbnail/7f2c27ea-4c4a-40cc-a4cf-0b5edb533d85.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/a720245d-d592-432c-b874-8033cd1b3b2a/thumbnail/13675aac-5091-4804-b2c0-9b7597aafbdc.jpg'),
(2, NULL, 2, UNHEX(REPLACE('c5081f94-d300-4c6c-b46d-6fc25d1d74ae', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/filter/0bb6f332-4847-47e9-890f-d5911596c132/thumbnail/24529dc0-9d69-46d2-826b-b4afc041b27b.jpg', 'https://blackshoe-esthete-s3.s3.amazonaws.com/filter/7e9e3ad3-d328-4377-8cbf-813d4c69ceaa/thumbnail/304d6328-d13f-4705-a9cd-ff5422c5a571.jpg')
(1, NULL, 1, UNHEX(REPLACE('c1a9fbe6-a3d3-4134-be35-d11127f4e70f', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-thumbnail.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-thumbnail.png'),
(2, NULL, 2, UNHEX(REPLACE('c5081f94-d300-4c6c-b46d-6fc25d1d74ae', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo2.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo2.png'),
(NULL, 1, 3, UNHEX(REPLACE('c1a9fbe6-aa36-4134-be35-d11127f4e70f', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-thumbnail.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-thumbnail.png'),
(NULL, 2, 4, UNHEX(REPLACE('c5081f94-db14-4c6c-b46d-6fc25d1d74ae', '-', '')), 'https://d1g6qszf7cmafu.cloudfront.net/test/test-photo2.png', 'https://esthete-bucket.s3.ap-northeast-2.amazonaws.com/test-photo2.png')
ON DUPLICATE KEY UPDATE thumbnail_url_uuid = thumbnail_url_uuid;

INSERT INTO attributes (brightness, contrast, exposure, hue, saturation, temperature, sharpness, gray_scale, attribute_id, created_at, filter_id, temporary_filter_id, updated_at)
Expand All @@ -70,9 +78,5 @@ VALUES
ON DUPLICATE KEY UPDATE filter_tag_id = filter_tag_id;


INSERT INTO temporary_filters (created_at, temporary_filter_id, updated_at, user_id, temporary_filter_uuid, description, name)
VALUES
(NOW(), 1, NOW(), 1, UNHEX(REPLACE('a720245d-d592-424c-b874-8033cd1b3b2a', '-', '')), 'testTemporaryFilter1description', 'testTemporaryFilter1'),
(NOW(), 2, NOW(), 1, UNHEX(REPLACE('7e9e3ad3-d328-2157-8cbf-813d4c69ceaa', '-', '')), 'testTemporaryFilter2description', 'testTemporaryFilter2')
ON DUPLICATE KEY UPDATE temporary_filter_uuid = temporary_filter_uuid;


4 changes: 2 additions & 2 deletions src/main/resources/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ CREATE TABLE IF NOT EXISTS `tags` (
CREATE TABLE IF NOT EXISTS `users` (
`user_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`user_uuid` BINARY(16) NOT NULL UNIQUE,
`profile_img_url` VARCHAR(250) NULL,
`profile_img_url` VARCHAR(250) NULL DEFAULT 'https://d1g6qszf7cmafu.cloudfront.net/default/profile.png',
`nickname` VARCHAR(50) NOT NULL,
`created_at` DATETIME(6) NULL,
`updated_at` DATETIME(6) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- `temporary_filters` 테이블 생성
-- `temporary_filters` 테이블 생성 test
CREATE TABLE IF NOT EXISTS `temporary_filters` (
`temporary_filter_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`temporary_filter_uuid` BINARY(16) NOT NULL UNIQUE,
Expand Down

0 comments on commit ee231a5

Please sign in to comment.