123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package com.aip.gateway.api.service.impl;
- import com.aip.gateway.api.aip.model.SetFileInfo;
- import com.aip.gateway.api.aip.utils.AipFileUtils;
- import com.aip.gateway.api.model.app.CheckAip;
- import com.aip.gateway.api.model.request.RequestStream;
- import com.aip.gateway.api.model.request.RequestStreamAllSet;
- import com.aip.gateway.api.model.request.RequestStreamDel;
- import com.aip.gateway.api.model.request.RequestStreamSet;
- import com.aip.gateway.api.model.response.ResponseInfo;
- import com.aip.gateway.api.model.response.ResponseStream;
- import com.aip.gateway.api.repository.AipFileRepository;
- import com.aip.gateway.api.repository.AppRepository;
- import com.aip.gateway.api.service.IApiStreamService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import java.util.Base64;
- @Slf4j
- @Service
- public class ApiStreamService extends AbstractAipService implements IApiStreamService {
- public ApiStreamService(AppRepository repo, AipFileRepository aipFile) {
- super(repo, aipFile);
- }
- @Override
- public ResponseInfo getInfo(RequestStream req) {
- try {
- String tempOrgFileName = getRequestFileName(req.getApiGuid() + AipFileUtils.getExtension(req.getDispFileName()));
- String actualFileName = getActualFileName(req.getApiGuid() + AipFileUtils.getExtension(req.getDispFileName()));
- String newFileExt = getSupportedFileType(req.getDispFileName());
- if (newFileExt == null) {
- return new ResponseInfo(102, "지원하지 않는 파일형식 입니다.");
- }
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, tempOrgFileName)) {
- return new ResponseInfo(110, "작업 중에 파일 시스템 오류가 발생했습니다.");
- }
- try {
- return responseGetFileInfo(this.aipFile.getManager().getFileInfo(tempOrgFileName, actualFileName), req.getDispFileName());
- }
- finally {
- AipFileUtils.delete(tempOrgFileName);
- }
- //AipFileStream fileStream = new AipFileStream(req.getFileData());
- //return responseGetFileInfo(this.aipFile.getManager().getFileInfo(fileStream, actualFileName), req.getDispFileName());
- }
- catch (Exception e) {
- return responseInfoException(e);
- }
- }
- @Override
- public ResponseStream setLabel(RequestStreamSet req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().setLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getAipGuid(), "", req.getComment());
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- @Override
- public ResponseStream delLabel(RequestStreamDel req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().deleteLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment(), false);
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- @Override
- public ResponseStream setProtection(RequestStreamSet req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().setProtection(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getAipGuid(), req.getComment());
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- @Override
- public ResponseStream delProtection(RequestStreamDel req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().deleteProtection(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment());
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- @Override
- public ResponseStream setLabelProtection(RequestStreamAllSet req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().setLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getLabelGuid(), req.getTemplateGuid(), req.getComment());
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- @Override
- public ResponseStream delLabelProtection(RequestStreamDel req) {
- CheckAip check = checkAipRequest(req.getApiGuid(), req.getDispFileName(), "", true);
- if (check.getErrorCode() != 0) {
- return new ResponseStream(check.getErrorCode(), check.getErrorMessage(), check.getDispFileName());
- }
- try {
- byte[] fileDataArr = Base64.getDecoder().decode(req.getFileData());
- if (!AipFileUtils.streamToFile(fileDataArr, check.getReqFileName())) {
- return responseStreamFail(req.getDispFileName());
- }
- try {
- SetFileInfo result = this.aipFile.getManager().deleteLabel(check.getReqFileName(), check.getActualFileName(), req.getEmail(), req.getComment(), true);
- return responseSetStream(result, req.getDispFileName(), check.getActualFileName());
- }
- finally {
- AipFileUtils.delete(check.getReqFileName());
- AipFileUtils.delete(check.getActualFileName());
- }
- }
- catch (Exception e) {
- return responseStreamException(e, req.getDispFileName());
- }
- }
- }
|