Skip to content

Commit

Permalink
✨ feat: 조직 검색 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
seheonnn committed Feb 7, 2024
1 parent 03b0426 commit bc92e25
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 4 deletions.
6 changes: 4 additions & 2 deletions out/production/resources/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ INSERT INTO organization (organization_name,
manager_available_day,
manager_available_hour,
manager_contact_preference,
organization_status)
organization_status,
organization_image_url)
VALUES ('팀 스포너스',
'[email protected]',
'$2a$10$tzrzG/BSFrrye7Kbm4qPYuP6jaQcj5TX5ER1.X/THqkudiSjtEmWW',
Expand All @@ -25,7 +26,8 @@ VALUES ('팀 스포너스',
'월-금',
'09:00-18:00',
'EMAIL',
'ACTIVE');
'ACTIVE',
'https://sponus.s3.ap-northeast-2.amazonaws.com/images/56d5e787-8ac2-4162-be41-e55db05d8d8b.png');

INSERT INTO announcement (announcement_title,
announcement_type,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sponus.sponusbe.domain.organization.controller;

import java.util.List;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
Expand All @@ -14,6 +16,7 @@
import com.sponus.sponusbe.domain.organization.dto.OrganizationDetailGetResponse;
import com.sponus.sponusbe.domain.organization.dto.OrganizationJoinRequest;
import com.sponus.sponusbe.domain.organization.dto.OrganizationJoinResponse;
import com.sponus.sponusbe.domain.organization.dto.OrganizationSummaryResponse;
import com.sponus.sponusbe.domain.organization.dto.OrganizationUpdateRequest;
import com.sponus.sponusbe.domain.organization.entity.Organization;
import com.sponus.sponusbe.domain.organization.service.OrganizationQueryService;
Expand Down Expand Up @@ -73,4 +76,9 @@ public ApiResponse<OrganizationDetailGetResponse> getOrganization(@PathVariable
public ApiResponse<String> sendEmail(@RequestParam("email") String email) throws Exception {
return ApiResponse.onSuccess(organizationService.sendEmail(email));
}

@GetMapping
public ApiResponse<List<OrganizationSummaryResponse>> searchOrganization(@RequestParam("search") String keyword) {
return ApiResponse.onSuccess(organizationService.searchOrganization(keyword));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.sponus.sponusbe.domain.organization.dto;

import java.util.List;

import com.sponus.sponusbe.domain.organization.entity.Organization;
import com.sponus.sponusbe.domain.tag.dto.TagGetResponse;

import lombok.Builder;

@Builder
public record OrganizationSummaryResponse(
Long id,
String name,
String image,
List<TagGetResponse> tags
) {
public static OrganizationSummaryResponse from(Organization organization) {
List<TagGetResponse> tags = TagGetResponse.getTagResponse(organization);

return OrganizationSummaryResponse.builder()
.id(organization.getId())
.name(organization.getName())
.image(organization.getImageUrl())
.tags(tags)
.build();
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.sponus.sponusbe.domain.organization.repository;

import java.util.List;
import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
Expand All @@ -9,4 +10,6 @@
public interface OrganizationRepository extends JpaRepository<Organization, Long> {

Optional<Organization> findOrganizationByEmail(String email);

List<Organization> findByNameContains(String name);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static com.sponus.sponusbe.domain.organization.exception.OrganizationErrorCode.*;

import java.util.List;
import java.util.Random;

import org.springframework.mail.javamail.JavaMailSender;
Expand All @@ -11,6 +12,7 @@

import com.sponus.sponusbe.domain.organization.dto.OrganizationJoinRequest;
import com.sponus.sponusbe.domain.organization.dto.OrganizationJoinResponse;
import com.sponus.sponusbe.domain.organization.dto.OrganizationSummaryResponse;
import com.sponus.sponusbe.domain.organization.dto.OrganizationUpdateRequest;
import com.sponus.sponusbe.domain.organization.entity.Organization;
import com.sponus.sponusbe.domain.organization.exception.OrganizationException;
Expand Down Expand Up @@ -101,4 +103,11 @@ public static String createEmailCode() {
}
return code.toString();
}

public List<OrganizationSummaryResponse> searchOrganization(String keyword) {
return organizationRepository.findByNameContains(keyword)
.stream()
.map(OrganizationSummaryResponse::from)
.toList();
}
}
6 changes: 4 additions & 2 deletions src/main/resources/data.sql
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ INSERT INTO organization (organization_name,
manager_available_day,
manager_available_hour,
manager_contact_preference,
organization_status)
organization_status,
organization_image_url)
VALUES ('팀 스포너스',
'[email protected]',
'$2a$10$tzrzG/BSFrrye7Kbm4qPYuP6jaQcj5TX5ER1.X/THqkudiSjtEmWW',
Expand All @@ -25,7 +26,8 @@ VALUES ('팀 스포너스',
'월-금',
'09:00-18:00',
'EMAIL',
'ACTIVE');
'ACTIVE',
'https://sponus.s3.ap-northeast-2.amazonaws.com/images/56d5e787-8ac2-4162-be41-e55db05d8d8b.png');

INSERT INTO announcement (announcement_title,
announcement_type,
Expand Down

0 comments on commit bc92e25

Please sign in to comment.