diff --git a/server/.gradle/8.8/checksums/checksums.lock b/server/.gradle/8.8/checksums/checksums.lock index 2deb92a..6e8c6c8 100644 Binary files a/server/.gradle/8.8/checksums/checksums.lock and b/server/.gradle/8.8/checksums/checksums.lock differ diff --git a/server/.gradle/8.8/checksums/md5-checksums.bin b/server/.gradle/8.8/checksums/md5-checksums.bin index 4e0dc6f..03fda42 100644 Binary files a/server/.gradle/8.8/checksums/md5-checksums.bin and b/server/.gradle/8.8/checksums/md5-checksums.bin differ diff --git a/server/.gradle/8.8/checksums/sha1-checksums.bin b/server/.gradle/8.8/checksums/sha1-checksums.bin index 596969f..b5e763a 100644 Binary files a/server/.gradle/8.8/checksums/sha1-checksums.bin and b/server/.gradle/8.8/checksums/sha1-checksums.bin differ diff --git a/server/.gradle/8.8/executionHistory/executionHistory.bin b/server/.gradle/8.8/executionHistory/executionHistory.bin index 2f6c455..a9ba397 100644 Binary files a/server/.gradle/8.8/executionHistory/executionHistory.bin and b/server/.gradle/8.8/executionHistory/executionHistory.bin differ diff --git a/server/.gradle/8.8/executionHistory/executionHistory.lock b/server/.gradle/8.8/executionHistory/executionHistory.lock index a5d09a5..edd473e 100644 Binary files a/server/.gradle/8.8/executionHistory/executionHistory.lock and b/server/.gradle/8.8/executionHistory/executionHistory.lock differ diff --git a/server/.gradle/8.8/fileHashes/fileHashes.bin b/server/.gradle/8.8/fileHashes/fileHashes.bin index cad7597..30d3817 100644 Binary files a/server/.gradle/8.8/fileHashes/fileHashes.bin and b/server/.gradle/8.8/fileHashes/fileHashes.bin differ diff --git a/server/.gradle/8.8/fileHashes/fileHashes.lock b/server/.gradle/8.8/fileHashes/fileHashes.lock index 6f98c68..8329e5b 100644 Binary files a/server/.gradle/8.8/fileHashes/fileHashes.lock and b/server/.gradle/8.8/fileHashes/fileHashes.lock differ diff --git a/server/.gradle/8.8/fileHashes/resourceHashesCache.bin b/server/.gradle/8.8/fileHashes/resourceHashesCache.bin index d8b2368..e5f7b81 100644 Binary files a/server/.gradle/8.8/fileHashes/resourceHashesCache.bin and b/server/.gradle/8.8/fileHashes/resourceHashesCache.bin differ diff --git a/server/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/server/.gradle/buildOutputCleanup/buildOutputCleanup.lock index c3e5ca0..3329301 100644 Binary files a/server/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/server/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/server/.gradle/file-system.probe b/server/.gradle/file-system.probe index 24d90e8..70d8cc7 100644 Binary files a/server/.gradle/file-system.probe and b/server/.gradle/file-system.probe differ diff --git a/server/build.gradle b/server/build.gradle index b687077..a49dd34 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -45,6 +45,8 @@ dependencies { implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2' + + implementation 'com.opencsv:opencsv:5.7.1' } tasks.named('test') { diff --git a/server/build/classes/java/main/com/example/hackathon/dataset/application/DataService.class b/server/build/classes/java/main/com/example/hackathon/dataset/application/DataService.class new file mode 100644 index 0000000..3b513ef Binary files /dev/null and b/server/build/classes/java/main/com/example/hackathon/dataset/application/DataService.class differ diff --git a/server/build/classes/java/main/com/example/hackathon/dataset/controller/DataController.class b/server/build/classes/java/main/com/example/hackathon/dataset/controller/DataController.class new file mode 100644 index 0000000..8f773eb Binary files /dev/null and b/server/build/classes/java/main/com/example/hackathon/dataset/controller/DataController.class differ diff --git a/server/build/classes/java/main/com/example/hackathon/dataset/domain/Data.class b/server/build/classes/java/main/com/example/hackathon/dataset/domain/Data.class new file mode 100644 index 0000000..787743e Binary files /dev/null and b/server/build/classes/java/main/com/example/hackathon/dataset/domain/Data.class differ diff --git a/server/build/classes/java/main/com/example/hackathon/dataset/repository/DataRepository.class b/server/build/classes/java/main/com/example/hackathon/dataset/repository/DataRepository.class new file mode 100644 index 0000000..4ff850a Binary files /dev/null and b/server/build/classes/java/main/com/example/hackathon/dataset/repository/DataRepository.class differ diff --git a/server/build/resources/main/application.properties b/server/build/resources/main/application.properties index 3a77dcc..dd9e05e 100644 --- a/server/build/resources/main/application.properties +++ b/server/build/resources/main/application.properties @@ -55,14 +55,26 @@ #app.cors.allowedOrigins=http://localhost:3000,http://localhost:8080,https://port-0-hackathon-be-lyqylohp8957ca6e.sel5.cloudtype.app/ #app.oauth2.authorizedRedirectUris=http://localhost:3000/oauth2/redirect,myandroidapp://oauth2/redirect,myiosapp://oauth2/redirect -#Spring Data JPA -spring.datasource.url=jdbc:mysql://localhost:3306/hackathon?createDatabaseIfNotExist=true +spring.datasource.url=jdbc:mariadb://svc.sel5.cloudtype.app:31837/hackathon?characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root -spring.datasource.password=0322 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.password=0322! +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update +spring.jpa.hibernate.ddl-auto=create + +app.auth.tokenSecret=04ca023b39512e46d0c2cf4b48d5aac61d34302994c87ed4eff225dcf3b0a218739f3897051a057f9b846a69ea2927a587044164b7bae5e1306219d50b588cb1 +app.auth.tokenExpirationMsec = 864000000 +app.cors.allowedOrigins=https://glog-beta.vercel.app,http://localhost:3000,http://localhost:8080 +app.oauth2.authorizedRedirectUris=https://glog-beta.vercel.app/oauth2/redirect,http://localhost:3000/oauth2/redirect,myandroidapp://oauth2/redirect,myiosapp://oauth2/redirect +app.GitHub.gitHubToken=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 + +#AWS +cloud.aws.credentials.accessKey=AKIA6ODUZVK7N2P6RB6C +cloud.aws.credentials.secretKey=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 +cloud.aws.s3.bucket=glog-image-bucket +cloud.aws.region.static=ap-northeast-2 +cloud.aws.stack.auto=false # spring boot 2.5.x to use script spring.sql.init.mode=always @@ -81,15 +93,8 @@ spring.security.oauth2.client.registration.github.client-secret=40bbeeda1c6175ec spring.security.oauth2.client.registration.github.redirect-uri=http://localhost:8080/oauth2/callback/github spring.security.oauth2.client.registration.github.scope=user:email,read:user -app.auth.tokenSecret=04ca023b39512e46d0c2cf4b48d5aac61d34302994c87ed4eff225dcf3b0a218739f3897051a057f9b846a69ea2927a587044164b7bae5e1306219d50b588cb1 -app.auth.tokenExpirationMsec = 864000000 -app.cors.allowedOrigins=https://glog-beta.vercel.app,http://localhost:3000,http://localhost:8080 -app.oauth2.authorizedRedirectUris=https://glog-beta.vercel.app/oauth2/redirect,http://localhost:3000/oauth2/redirect,myandroidapp://oauth2/redirect,myiosapp://oauth2/redirect -app.GitHub.gitHubToken=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 +# ?? ??? ?? ?? ?? (10MB? ??) +spring.servlet.multipart.max-file-size=10MB -#AWS -cloud.aws.credentials.accessKey=AKIA6ODUZVK7N2P6RB6C -cloud.aws.credentials.secretKey=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 -cloud.aws.s3.bucket=glog-image-bucket -cloud.aws.region.static=ap-northeast-2 -cloud.aws.stack.auto=false \ No newline at end of file +# ?? ??? ?? ?? ?? (10MB? ??) +spring.servlet.multipart.max-request-size=10MB diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsController.class.uniqueId9 b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsController.class.uniqueId9 new file mode 100644 index 0000000..780673c Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsController.class.uniqueId9 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsS3Config.class.uniqueId3 b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsS3Config.class.uniqueId3 new file mode 100644 index 0000000..25aef80 Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsS3Config.class.uniqueId3 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsUtils.class.uniqueId1 b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsUtils.class.uniqueId1 new file mode 100644 index 0000000..050e6c4 Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/AwsUtils.class.uniqueId1 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/HackathonApplication.class.uniqueId6 b/server/build/tmp/compileJava/compileTransaction/stash-dir/HackathonApplication.class.uniqueId6 new file mode 100644 index 0000000..9fd839c Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/HackathonApplication.class.uniqueId6 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationFailureHandler.class.uniqueId4 b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationFailureHandler.class.uniqueId4 new file mode 100644 index 0000000..fe994bb Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationFailureHandler.class.uniqueId4 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationSuccessHandler.class.uniqueId0 b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationSuccessHandler.class.uniqueId0 new file mode 100644 index 0000000..e137455 Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2AuthenticationSuccessHandler.class.uniqueId0 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2UserInfoFactory.class.uniqueId5 b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2UserInfoFactory.class.uniqueId5 new file mode 100644 index 0000000..c574a74 Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/OAuth2UserInfoFactory.class.uniqueId5 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId0 b/server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId8 similarity index 70% rename from server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId0 rename to server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId8 index f88b625..839ed12 100644 Binary files a/server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId0 and b/server/build/tmp/compileJava/compileTransaction/stash-dir/SecurityConfig.class.uniqueId8 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/TokenAuthenticationFilter.class.uniqueId2 b/server/build/tmp/compileJava/compileTransaction/stash-dir/TokenAuthenticationFilter.class.uniqueId2 new file mode 100644 index 0000000..39a455e Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/TokenAuthenticationFilter.class.uniqueId2 differ diff --git a/server/build/tmp/compileJava/compileTransaction/stash-dir/WebMvcConfig.class.uniqueId7 b/server/build/tmp/compileJava/compileTransaction/stash-dir/WebMvcConfig.class.uniqueId7 new file mode 100644 index 0000000..a9694c2 Binary files /dev/null and b/server/build/tmp/compileJava/compileTransaction/stash-dir/WebMvcConfig.class.uniqueId7 differ diff --git a/server/build/tmp/compileJava/previous-compilation-data.bin b/server/build/tmp/compileJava/previous-compilation-data.bin index e209b7a..223018f 100644 Binary files a/server/build/tmp/compileJava/previous-compilation-data.bin and b/server/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/server/src/main/java/com/example/hackathon/dataset/application/DataService.java b/server/src/main/java/com/example/hackathon/dataset/application/DataService.java new file mode 100644 index 0000000..8baa5cc --- /dev/null +++ b/server/src/main/java/com/example/hackathon/dataset/application/DataService.java @@ -0,0 +1,45 @@ +package com.example.hackathon.dataset.application; + +import com.example.hackathon.dataset.domain.Data; +import com.example.hackathon.dataset.repository.DataRepository; +import com.opencsv.CSVReader; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +@Service +@AllArgsConstructor +public class DataService { + private final DataRepository dataRepository; + public void saveCsv(MultipartFile file) { + try (CSVReader reader = new CSVReader(new InputStreamReader(file.getInputStream()))) { + String[] nextLine; + List entities = new ArrayList<>(); + + while ((nextLine = reader.readNext()) != null) { + Data entity = new Data(); + entity.setMediaType(nextLine[1]); + entity.setTitleName(nextLine[2]); + entity.setPlaceName(nextLine[3]); + entity.setPlaceTypel(nextLine[4]); + entity.setPlaceOverview(nextLine[5]); + entity.setOpenTime(nextLine[6]); + entity.setRestDay(nextLine[8]); + entity.setAddress(nextLine[9]); + entity.setMapY(nextLine[10]); + entity.setMapX(nextLine[11]); + entity.setTel(nextLine[12]); + + entities.add(entity); + } + + dataRepository.saveAll(entities); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/server/src/main/java/com/example/hackathon/dataset/controller/DataController.java b/server/src/main/java/com/example/hackathon/dataset/controller/DataController.java new file mode 100644 index 0000000..6cb3f8d --- /dev/null +++ b/server/src/main/java/com/example/hackathon/dataset/controller/DataController.java @@ -0,0 +1,27 @@ +package com.example.hackathon.dataset.controller; + +import com.example.hackathon.dataset.application.DataService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +@RestController +@AllArgsConstructor +@RequestMapping("/api/csv") +public class DataController { + + private final DataService dataService; + + @PostMapping("/upload") + public String uploadCSV(@RequestParam("file") MultipartFile file) { + try { + dataService.saveCsv(file); + return "File uploaded and data saved successfully!"; + } catch (Exception e) { + return "Failed to upload and save data: " + e.getMessage(); + } + } +} \ No newline at end of file diff --git a/server/src/main/java/com/example/hackathon/dataset/domain/Data.java b/server/src/main/java/com/example/hackathon/dataset/domain/Data.java new file mode 100644 index 0000000..c419f42 --- /dev/null +++ b/server/src/main/java/com/example/hackathon/dataset/domain/Data.java @@ -0,0 +1,36 @@ +package com.example.hackathon.dataset.domain; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Entity +public class Data { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + @Column(name = "mediaType") + private String mediaType; + @Column(name = "titleName") + private String titleName; + @Column(name = "placeName") + private String placeName; + @Column(name = "placeTypel") + private String placeTypel; + @Column(name = "placeOverview") + private String placeOverview; + @Column(name = "openTime") + private String openTime; + @Column(name = "restDay") + private String restDay; + @Column(name = "address") + private String address; + @Column(name = "mapY") + private String mapY; + @Column(name = "mapX") + private String mapX; + @Column(name = "tel") + private String tel; +} diff --git a/server/src/main/java/com/example/hackathon/dataset/repository/DataRepository.java b/server/src/main/java/com/example/hackathon/dataset/repository/DataRepository.java new file mode 100644 index 0000000..191e599 --- /dev/null +++ b/server/src/main/java/com/example/hackathon/dataset/repository/DataRepository.java @@ -0,0 +1,7 @@ +package com.example.hackathon.dataset.repository; + +import com.example.hackathon.dataset.domain.Data; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface DataRepository extends JpaRepository { +}