Skip to content

Commit

Permalink
공공데이터 API 관련 정보 저장 기능 구현 (#52)
Browse files Browse the repository at this point in the history
* chore: 불필요한 코드 제거

* feat: 공공데이터 API 정보 저장 기능 구현
  • Loading branch information
Hanjaemo authored Apr 24, 2024
1 parent a8122da commit c46d83e
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ public class PublicDataApiController {
@Value("${public-data.api.key}")
private String apiKey;

@PostMapping("/public-data/info")
public ApiResponse<Integer> savePublicDataApiInfo(@RequestBody List<SavePublicDataApiInfoRequest> requests) {
publicDataService.savePublicDataApiInfo(requests);
return ApiResponse.ok(requests.size());
}

@PostMapping("/public-data/load")
public ApiResponse<Long> loadPublicData(@RequestBody List<LoadPublicDataRequest> requests) {
long loadedDataCount = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package contest.collectingbox.module.publicdata;

import contest.collectingbox.module.collectingbox.domain.Tag;
import jakarta.persistence.*;
import lombok.*;

@Entity
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class PublicDataApiInfo {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String sido;

@Column(nullable = false)
private String sigungu;

@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Tag tag;

@Column(nullable = false)
private String callAddress;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package contest.collectingbox.module.publicdata;

import org.springframework.data.jpa.repository.JpaRepository;

public interface PublicDataApiInfoRepository extends JpaRepository<PublicDataApiInfo, Long> {
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,23 @@
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Slf4j
@Component
@RequiredArgsConstructor
public class PublicDataService {

private final PublicDataApiInfoRepository publicDataApiInfoRepository;
private final PublicDataExtract publicDataExtract;
private final KakaoApiManager kakaoApiManager;

public void savePublicDataApiInfo(List<SavePublicDataApiInfoRequest> requests) {
for (SavePublicDataApiInfoRequest request : requests) {
publicDataApiInfoRepository.save(request.toEntity());
}
}

public long loadPublicData(JSONObject jsonObject, Tag tag) {
long loadedDataCount = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package contest.collectingbox.module.publicdata;

import contest.collectingbox.module.collectingbox.domain.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class SavePublicDataApiInfoRequest {
private String sido;
private String sigungu;
private Tag tag;
private String callAddress;

public PublicDataApiInfo toEntity() {
return PublicDataApiInfo.builder()
.sido(sido)
.sigungu(sigungu)
.tag(tag)
.callAddress(callAddress)
.build();
}
}
2 changes: 1 addition & 1 deletion src/main/resources/config

0 comments on commit c46d83e

Please sign in to comment.