Skip to content

Commit 6362e2e

Browse files
authored
fix: Google 컨트롤러와 Google 서비스 간의 의존성 추가 (#25)
* feat: google API 기능 추가 * feat: google API 기능 추가 * fix: Google 컨트롤러와 Google 서비스 간 의존성 추가 * fix: Google 컨트롤러와 Google 서비스 간 의존성 추가
1 parent f285310 commit 6362e2e

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,44 @@
77
import com.google.api.services.sheets.v4.Sheets;
88
import com.google.api.services.sheets.v4.model.UpdateValuesResponse;
99
import com.google.api.services.sheets.v4.model.ValueRange;
10+
import com.google.auth.Credentials;
1011
import com.google.auth.http.HttpCredentialsAdapter;
1112
import com.google.auth.oauth2.GoogleCredentials;
1213
import dmu.dasom.api.domain.common.exception.CustomException;
1314
import dmu.dasom.api.domain.common.exception.ErrorCode;
15+
import lombok.RequiredArgsConstructor;
1416
import org.slf4j.Logger;
1517
import org.slf4j.LoggerFactory;
1618
import org.springframework.beans.factory.annotation.Value;
1719
import org.springframework.core.io.ClassPathResource;
1820
import org.springframework.stereotype.Service;
1921

22+
import java.io.ByteArrayInputStream;
2023
import java.io.IOException;
24+
import java.nio.charset.StandardCharsets;
2125
import java.security.GeneralSecurityException;
2226
import java.util.Collections;
2327
import java.util.List;
2428

29+
@RequiredArgsConstructor
2530
@Service
2631
public class GoogleApiService {
2732

2833
private static final Logger logger = LoggerFactory.getLogger(GoogleApiService.class);
2934
private static final String APPLICATION_NAME = "Recruit Form";
3035
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
31-
@Value("${google.credentials.file.path}")
32-
private String credentialsFilePath;
36+
@Value("${google.credentials.json}")
37+
private String credentialsJson;
3338
private Sheets sheetsService;
3439

35-
// 해당 메소드는 sheets의 인스턴스를 얻는데 사용
40+
// Google Sheets API 서비스 객체를 생성하는 메소드
3641
private Sheets getSheetsService() throws IOException, GeneralSecurityException{
3742
if(sheetsService == null){
43+
ByteArrayInputStream credentialsStream = new ByteArrayInputStream(credentialsJson.getBytes(StandardCharsets.UTF_8));
3844
GoogleCredentials credentials = GoogleCredentials
39-
.fromStream(new ClassPathResource(credentialsFilePath).getInputStream())
45+
.fromStream(credentialsStream)
4046
.createScoped(Collections.singletonList("https://www.googleapis.com/auth/spreadsheets"));
47+
4148
sheetsService = new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, new HttpCredentialsAdapter(credentials))
4249
.setApplicationName(APPLICATION_NAME)
4350
.build();

src/main/resources/application-credentials.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ jwt:
2121
refresh-token-expiration: ${JWT_REFRESH_TOKEN_EXPIRATION}
2222
google:
2323
credentials:
24-
path: ${GOOGLE_CREDENTIALS_PATH}
24+
json: ${GOOGLE_CREDENTIALS_JSON}
2525
spreadsheet:
2626
id: ${GOOGLE_SPREADSHEET_ID}

0 commit comments

Comments
 (0)