Skip to content

Commit d6878aa

Browse files
authored
refactor/OPS-338 : 아카이브 mock 데이터 입력 (#82)
* refactor/OPS-338 : 아카이브 mock 데이터 입력 * refactor/OPS-338 : 아카이브 mock 데이터 입력 * refactor/OPS-338 : mock 추가로 인한 testcase 수정
1 parent 2512ccd commit d6878aa

File tree

6 files changed

+122
-3
lines changed

6 files changed

+122
-3
lines changed

src/main/java/org/tuna/zoopzoop/backend/domain/archive/folder/repository/FolderRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,8 @@ public interface FolderRepository extends JpaRepository<Folder, Integer>{
5858
""")
5959
Optional<Folder> findByIdAndMemberId(@Param("folderId") Integer folderId,
6060
@Param("memberId") Integer memberId);
61+
62+
Optional<Folder> findByArchiveIdAndName(Integer archiveId, String name);
63+
64+
List<Folder> findAllByArchiveId(Integer archiveId);
6165
}

src/main/java/org/tuna/zoopzoop/backend/domain/datasource/repository/DataSourceRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,7 @@ public interface DataSourceRepository extends JpaRepository<DataSource, Integer>
3939
""")
4040
List<Integer> findExistingIdsInMember(@Param("memberId") Integer memberId, @Param("ids") Collection<Integer> ids);
4141

42+
Optional<DataSource> findByFolderIdAndTitle(Integer folderId, String title);
43+
4244
}
4345

src/main/java/org/tuna/zoopzoop/backend/domain/graph/entity/Node.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ public class Node extends BaseEntity {
2626

2727
@ElementCollection
2828
@CollectionTable(name = "node_data", joinColumns = @JoinColumn(name = "node_id"))
29-
@MapKeyColumn(name = "key")
30-
@Column(name = "value")
29+
@MapKeyColumn(name = "data_key")
30+
@Column(name = "data_value")
3131
private Map<String, String> data = new HashMap<>();
3232

3333
@Column
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package org.tuna.zoopzoop.backend.global.initData;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.boot.ApplicationRunner;
6+
import org.springframework.context.annotation.Bean;
7+
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.context.annotation.Lazy;
9+
import org.springframework.transaction.annotation.Transactional;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
11+
12+
import org.tuna.zoopzoop.backend.domain.archive.archive.entity.PersonalArchive;
13+
import org.tuna.zoopzoop.backend.domain.archive.folder.entity.Folder;
14+
import org.tuna.zoopzoop.backend.domain.archive.folder.repository.FolderRepository;
15+
import org.tuna.zoopzoop.backend.domain.datasource.entity.Category;
16+
import org.tuna.zoopzoop.backend.domain.datasource.entity.DataSource;
17+
import org.tuna.zoopzoop.backend.domain.datasource.repository.DataSourceRepository;
18+
import org.tuna.zoopzoop.backend.domain.member.entity.Member;
19+
import org.tuna.zoopzoop.backend.domain.member.enums.Provider;
20+
import org.tuna.zoopzoop.backend.domain.member.repository.MemberRepository;
21+
22+
import java.time.LocalDate;
23+
import java.util.List;
24+
25+
@Configuration
26+
@RequiredArgsConstructor
27+
@ConditionalOnProperty(value = "app.seed.enabled", havingValue = "true")
28+
public class PersonalArchiveInitData {
29+
30+
private final MemberRepository memberRepository;
31+
private final FolderRepository folderRepository;
32+
private final DataSourceRepository dataSourceRepository;
33+
34+
@Autowired @Lazy
35+
private PersonalArchiveInitData self;
36+
37+
@Bean
38+
ApplicationRunner archiveInitRunner() {
39+
return args -> self.initAll(); // 프록시 경유
40+
}
41+
42+
@Transactional
43+
public void initAll() {
44+
System.out.println(">>> seed initAll start");
45+
46+
final String providerKeyEmail = "[email protected]";
47+
48+
Member member = memberRepository
49+
.findByProviderAndProviderKey(Provider.KAKAO, providerKeyEmail)
50+
.orElseGet(() -> memberRepository.save(
51+
Member.builder()
52+
.name("kjjeaus")
53+
.providerKey(providerKeyEmail)
54+
.provider(Provider.KAKAO)
55+
.profileImageUrl("https://img.example.com/profile.png")
56+
.build()
57+
));
58+
59+
PersonalArchive pa = member.getPersonalArchive();
60+
61+
folderRepository.findByArchiveIdAndName(pa.getArchive().getId(), "default")
62+
.orElseGet(() -> {
63+
Folder df = pa.getArchive().getFolders().stream()
64+
.filter(Folder::isDefault)
65+
.findFirst()
66+
.orElse(new Folder("default"));
67+
df.setArchive(pa.getArchive());
68+
df.setDefault(true);
69+
return folderRepository.save(df);
70+
});
71+
72+
for (String name : List.of("inbox","research","ai","reading-list")) {
73+
folderRepository.findByArchiveIdAndName(pa.getArchive().getId(), name)
74+
.orElseGet(() -> {
75+
Folder f = new Folder(name);
76+
f.setDefault(false);
77+
f.setArchive(pa.getArchive());
78+
return folderRepository.save(f);
79+
});
80+
}
81+
82+
List<Folder> persistedFolders = folderRepository.findAllByArchiveId(pa.getArchive().getId());
83+
84+
for (Folder folder : persistedFolders) {
85+
for (int i = 1; i <= 3; i++) {
86+
String title = folder.getName() + "-자료" + i;
87+
if (dataSourceRepository.findByFolderIdAndTitle(folder.getId(), title).isPresent()) continue;
88+
89+
DataSource ds = new DataSource();
90+
ds.setFolder(folder);
91+
ds.setTitle(title);
92+
ds.setSummary("초기 목데이터");
93+
ds.setDataCreatedDate(LocalDate.now().minusDays(i));
94+
ds.setSourceUrl("https://example.com/" + folder.getName() + "/" + i);
95+
ds.setImageUrl("https://example.com/img/" + i + ".png");
96+
ds.setSource("Seed");
97+
ds.setCategory(Category.IT);
98+
ds.setActive(true);
99+
100+
dataSourceRepository.save(ds);
101+
}
102+
}
103+
104+
System.out.println(">>> seed initAll end");
105+
}
106+
107+
}

src/main/resources/application.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,9 @@ logging:
4545
org.springframework.transaction.interceptor: TRACE
4646
com.back: DEBUG
4747
server:
48-
port: 8080
48+
port: 8080
49+
50+
51+
app:
52+
seed:
53+
enabled: true

src/test/java/org/tuna/zoopzoop/backend/domain/member/controller/MemberControllerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class MemberControllerTest {
4040

4141
@BeforeAll
4242
void setUp() {
43+
memberRepository.deleteAll();
4344
Member member1 = memberService.createMember(
4445
"test1",
4546
"url",

0 commit comments

Comments
 (0)