@yolo-croket-dev/amqp-access 0.7.380 → 0.7.382
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/excel-upload-server/dto/ad-performance-report/command/create-ad-performance-report-excel.dto.d.ts +9 -0
- package/excel-upload-server/dto/ad-performance-report/index.d.ts +1 -0
- package/excel-upload-server/dto/ad-performance-report/index.js +1 -0
- package/excel-upload-server/dto/ad-performance-report/query/get-ad-performance-report-job.dto.d.ts +28 -0
- package/excel-upload-server/dto/ad-performance-report/query/get-ad-performance-report-job.dto.js +25 -0
- package/excel-upload-server/dto/ad-performance-report/query/index.d.ts +1 -0
- package/excel-upload-server/dto/ad-performance-report/query/index.js +17 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/create-naver-search-ad-excel-job.dto.d.ts +14 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/create-naver-search-ad-excel-job.dto.js +28 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.d.ts +1 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.js +1 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/index.d.ts +1 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/index.js +1 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/get-naver-search-ad-excel-external-job.dto.d.ts +9 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/get-naver-search-ad-excel-external-job.dto.js +29 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/get-naver-search-ad-excel-job.dto.d.ts +26 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/get-naver-search-ad-excel-job.dto.js +43 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/index.d.ts +2 -0
- package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/query/index.js +18 -0
- package/excel-upload-server/services/amqp.ad-performance-report.service.d.ts +5 -1
- package/excel-upload-server/services/amqp.ad-performance-report.service.js +8 -0
- package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.d.ts +7 -1
- package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.js +12 -0
- package/order-server/amqp.order-server.module.js +3 -0
- package/order-server/dto/buyma-order/command/buyma-order.dto.d.ts +110 -0
- package/order-server/dto/buyma-order/command/buyma-order.dto.js +476 -0
- package/order-server/dto/buyma-order/index.d.ts +2 -0
- package/order-server/dto/buyma-order/index.js +18 -0
- package/order-server/dto/buyma-order/query/buyma-order.dto.d.ts +79 -0
- package/order-server/dto/buyma-order/query/buyma-order.dto.js +115 -0
- package/order-server/dto/index.d.ts +1 -0
- package/order-server/dto/index.js +1 -0
- package/order-server/services/amqp.buyma-order.service.d.ts +17 -0
- package/order-server/services/amqp.buyma-order.service.js +60 -0
- package/order-server/services/index.d.ts +1 -0
- package/order-server/services/index.js +1 -0
- package/package.json +2 -2
- package/user-service/services/amqp.signup-certification.service.d.ts +0 -14
- package/user-service/services/amqp.signup-certification.service.js +0 -38
|
@@ -38,3 +38,12 @@ export interface CreateAdPerformanceReportExcelResult {
|
|
|
38
38
|
sheets: AdPerformanceReportExcelSheetResult[];
|
|
39
39
|
warnings: string[];
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @author 홍준
|
|
43
|
+
* @description 외부 생성 API의 작업 접수 결과입니다.
|
|
44
|
+
* @process 큐에 등록한 UUID와 queued 상태를 반환합니다.
|
|
45
|
+
*/
|
|
46
|
+
export interface CreateExternalAdPerformanceReportJobResult {
|
|
47
|
+
jobId: string;
|
|
48
|
+
status: 'queued';
|
|
49
|
+
}
|
package/excel-upload-server/dto/ad-performance-report/query/get-ad-performance-report-job.dto.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CreateAdPerformanceReportExcelResult } from '../command';
|
|
2
|
+
/**
|
|
3
|
+
* @author 홍준
|
|
4
|
+
* @description 외부 연동 계정이 생성한 광고 성과 리포트 작업 조회 요청입니다.
|
|
5
|
+
* @process UUID 작업 ID 검증 → 작업 소유자와 상태 확인
|
|
6
|
+
*/
|
|
7
|
+
export declare class GetAdPerformanceReportJobPayload {
|
|
8
|
+
jobId: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @author 홍준
|
|
12
|
+
* @description 생성 중에는 상태를, 완료 시 다운로드 정보와 채널별 경고를 반환합니다.
|
|
13
|
+
* @process 작업 상태에 따라 완료 결과 또는 공개 오류를 반환합니다.
|
|
14
|
+
*/
|
|
15
|
+
export type GetAdPerformanceReportJobResult = {
|
|
16
|
+
jobId: string;
|
|
17
|
+
status: 'queued' | 'processing';
|
|
18
|
+
} | ({
|
|
19
|
+
jobId: string;
|
|
20
|
+
status: 'completed';
|
|
21
|
+
} & CreateAdPerformanceReportExcelResult) | {
|
|
22
|
+
jobId: string;
|
|
23
|
+
status: 'failed';
|
|
24
|
+
error: {
|
|
25
|
+
code: string;
|
|
26
|
+
message: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
package/excel-upload-server/dto/ad-performance-report/query/get-ad-performance-report-job.dto.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GetAdPerformanceReportJobPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
/**
|
|
15
|
+
* @author 홍준
|
|
16
|
+
* @description 외부 연동 계정이 생성한 광고 성과 리포트 작업 조회 요청입니다.
|
|
17
|
+
* @process UUID 작업 ID 검증 → 작업 소유자와 상태 확인
|
|
18
|
+
*/
|
|
19
|
+
class GetAdPerformanceReportJobPayload {
|
|
20
|
+
}
|
|
21
|
+
exports.GetAdPerformanceReportJobPayload = GetAdPerformanceReportJobPayload;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsUUID)('4'),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], GetAdPerformanceReportJobPayload.prototype, "jobId", void 0);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './get-ad-performance-report-job.dto';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./get-ad-performance-report-job.dto"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RunNaverSearchAdExcelFullProcessPayload } from './run-naver-search-ad-excel-full-process.dto';
|
|
2
|
+
/**
|
|
3
|
+
* @author jun
|
|
4
|
+
* @description 기존 조회 조건으로 네이버 SA 리포트 작업을 등록합니다.
|
|
5
|
+
* @process 조건 검증 → 큐 등록 → 작업 ID 반환
|
|
6
|
+
*/
|
|
7
|
+
export declare class CreateNaverSearchAdExcelJobPayload extends RunNaverSearchAdExcelFullProcessPayload {
|
|
8
|
+
/** Gateway 인증 결과에서만 채우는 자동화 서비스 식별자입니다. 관리자 작업에는 없습니다. */
|
|
9
|
+
reportClientId?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface CreateNaverSearchAdExcelJobResult {
|
|
12
|
+
jobId: string;
|
|
13
|
+
status: 'queued';
|
|
14
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CreateNaverSearchAdExcelJobPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const run_naver_search_ad_excel_full_process_dto_1 = require("./run-naver-search-ad-excel-full-process.dto");
|
|
15
|
+
/**
|
|
16
|
+
* @author jun
|
|
17
|
+
* @description 기존 조회 조건으로 네이버 SA 리포트 작업을 등록합니다.
|
|
18
|
+
* @process 조건 검증 → 큐 등록 → 작업 ID 반환
|
|
19
|
+
*/
|
|
20
|
+
class CreateNaverSearchAdExcelJobPayload extends run_naver_search_ad_excel_full_process_dto_1.RunNaverSearchAdExcelFullProcessPayload {
|
|
21
|
+
}
|
|
22
|
+
exports.CreateNaverSearchAdExcelJobPayload = CreateNaverSearchAdExcelJobPayload;
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsOptional)(),
|
|
25
|
+
(0, class_validator_1.IsString)(),
|
|
26
|
+
(0, class_validator_1.Matches)(/^[a-zA-Z0-9_-]{1,64}$/),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], CreateNaverSearchAdExcelJobPayload.prototype, "reportClientId", void 0);
|
package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ export * from './generate-naver-search-ad-excel.dto';
|
|
|
2
2
|
export * from './run-naver-search-ad-excel-full-process.dto';
|
|
3
3
|
export * from './create-naver-search-ad-power-link-bulk.dto';
|
|
4
4
|
export * from './delete-naver-search-ad-adgroup-bulk.dto';
|
|
5
|
+
export * from './create-naver-search-ad-excel-job.dto';
|
package/excel-upload-server/dto/naver-search-ad.modules/naver-search-ad-excel/command/index.js
CHANGED
|
@@ -18,3 +18,4 @@ __exportStar(require("./generate-naver-search-ad-excel.dto"), exports);
|
|
|
18
18
|
__exportStar(require("./run-naver-search-ad-excel-full-process.dto"), exports);
|
|
19
19
|
__exportStar(require("./create-naver-search-ad-power-link-bulk.dto"), exports);
|
|
20
20
|
__exportStar(require("./delete-naver-search-ad-adgroup-bulk.dto"), exports);
|
|
21
|
+
__exportStar(require("./create-naver-search-ad-excel-job.dto"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GetNaverSearchAdExcelJobPayload, NaverSearchAdExcelJobAccessPayload } from './get-naver-search-ad-excel-job.dto';
|
|
2
|
+
/**
|
|
3
|
+
* @author jun
|
|
4
|
+
* @description 자동화 조회 RPC는 인증 범위를 필수로 받습니다.
|
|
5
|
+
* @process 별도 라우팅 → 필수 권한 범위 검증 → 작업 소유자·계정 확인
|
|
6
|
+
*/
|
|
7
|
+
export declare class GetNaverSearchAdExcelExternalJobPayload extends GetNaverSearchAdExcelJobPayload {
|
|
8
|
+
reportAccess: NaverSearchAdExcelJobAccessPayload;
|
|
9
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GetNaverSearchAdExcelExternalJobPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const get_naver_search_ad_excel_job_dto_1 = require("./get-naver-search-ad-excel-job.dto");
|
|
16
|
+
/**
|
|
17
|
+
* @author jun
|
|
18
|
+
* @description 자동화 조회 RPC는 인증 범위를 필수로 받습니다.
|
|
19
|
+
* @process 별도 라우팅 → 필수 권한 범위 검증 → 작업 소유자·계정 확인
|
|
20
|
+
*/
|
|
21
|
+
class GetNaverSearchAdExcelExternalJobPayload extends get_naver_search_ad_excel_job_dto_1.GetNaverSearchAdExcelJobPayload {
|
|
22
|
+
}
|
|
23
|
+
exports.GetNaverSearchAdExcelExternalJobPayload = GetNaverSearchAdExcelExternalJobPayload;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsDefined)(),
|
|
26
|
+
(0, class_validator_1.ValidateNested)(),
|
|
27
|
+
(0, class_transformer_1.Type)(() => get_naver_search_ad_excel_job_dto_1.NaverSearchAdExcelJobAccessPayload),
|
|
28
|
+
__metadata("design:type", get_naver_search_ad_excel_job_dto_1.NaverSearchAdExcelJobAccessPayload)
|
|
29
|
+
], GetNaverSearchAdExcelExternalJobPayload.prototype, "reportAccess", void 0);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { NaverSearchAdAccountEnum } from '@yolo-croket-dev/entity-v2/naver-search-ad.modules/naver-search-ad-excel';
|
|
2
|
+
/** @author jun @description Gateway 인증 결과에 따른 자동화 리포트 조회 범위입니다. @process 인증 → 작업 소유자·계정 확인 */
|
|
3
|
+
export declare class NaverSearchAdExcelJobAccessPayload {
|
|
4
|
+
clientId: string;
|
|
5
|
+
accounts: NaverSearchAdAccountEnum[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @author jun
|
|
9
|
+
* @description 네이버 SA 리포트 작업의 상태와 완료된 파일 주소를 조회합니다.
|
|
10
|
+
* @process 작업 ID 검증 → 상태 조회 → 공개 응답 반환
|
|
11
|
+
*/
|
|
12
|
+
export declare class GetNaverSearchAdExcelJobPayload {
|
|
13
|
+
jobId: string;
|
|
14
|
+
}
|
|
15
|
+
export type NaverSearchAdExcelJobStatus = 'queued' | 'processing' | 'completed' | 'failed';
|
|
16
|
+
export interface GetNaverSearchAdExcelJobResult {
|
|
17
|
+
jobId: string;
|
|
18
|
+
status: NaverSearchAdExcelJobStatus;
|
|
19
|
+
/** 파일 업로드가 완료된 경우에만 반환합니다. */
|
|
20
|
+
downloadUrl?: string;
|
|
21
|
+
/** 작업 실패 시 공개 가능한 코드와 안내 문구만 반환합니다. */
|
|
22
|
+
error?: {
|
|
23
|
+
code: string;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GetNaverSearchAdExcelJobPayload = exports.NaverSearchAdExcelJobAccessPayload = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const naver_search_ad_excel_1 = require("@yolo-croket-dev/entity-v2/naver-search-ad.modules/naver-search-ad-excel");
|
|
15
|
+
/** @author jun @description Gateway 인증 결과에 따른 자동화 리포트 조회 범위입니다. @process 인증 → 작업 소유자·계정 확인 */
|
|
16
|
+
class NaverSearchAdExcelJobAccessPayload {
|
|
17
|
+
}
|
|
18
|
+
exports.NaverSearchAdExcelJobAccessPayload = NaverSearchAdExcelJobAccessPayload;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, class_validator_1.IsString)(),
|
|
21
|
+
(0, class_validator_1.Matches)(/^[a-zA-Z0-9_-]{1,64}$/),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], NaverSearchAdExcelJobAccessPayload.prototype, "clientId", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsArray)(),
|
|
26
|
+
(0, class_validator_1.ArrayNotEmpty)(),
|
|
27
|
+
(0, class_validator_1.IsEnum)(naver_search_ad_excel_1.NaverSearchAdAccountEnum, { each: true }),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], NaverSearchAdExcelJobAccessPayload.prototype, "accounts", void 0);
|
|
30
|
+
/**
|
|
31
|
+
* @author jun
|
|
32
|
+
* @description 네이버 SA 리포트 작업의 상태와 완료된 파일 주소를 조회합니다.
|
|
33
|
+
* @process 작업 ID 검증 → 상태 조회 → 공개 응답 반환
|
|
34
|
+
*/
|
|
35
|
+
class GetNaverSearchAdExcelJobPayload {
|
|
36
|
+
}
|
|
37
|
+
exports.GetNaverSearchAdExcelJobPayload = GetNaverSearchAdExcelJobPayload;
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, class_validator_1.IsString)(),
|
|
40
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
41
|
+
(0, class_validator_1.MaxLength)(128),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], GetNaverSearchAdExcelJobPayload.prototype, "jobId", void 0);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./get-naver-search-ad-excel-job.dto"), exports);
|
|
18
|
+
__exportStar(require("./get-naver-search-ad-excel-external-job.dto"), exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ClientProxy } from '@nestjs/microservices';
|
|
2
2
|
import { AbstractParam } from '@yolo-croket-dev/core';
|
|
3
|
-
import { CreateAdPerformanceReportExcelPayload, CreateAdPerformanceReportExcelJobResult, CreateSnsRoasReportExcelPayload, CreateSnsRoasReportExcelResult } from '../dto';
|
|
3
|
+
import { GetAdPerformanceReportJobPayload, GetAdPerformanceReportJobResult, CreateExternalAdPerformanceReportJobResult, CreateAdPerformanceReportExcelPayload, CreateAdPerformanceReportExcelJobResult, CreateSnsRoasReportExcelPayload, CreateSnsRoasReportExcelResult } from '../dto';
|
|
4
4
|
/**
|
|
5
5
|
* @description Excel Upload Server의 광고 성과 리포트 생성 기능을 호출합니다.
|
|
6
6
|
* @process 요청 Payload를 광고 성과 리포트 메시지 패턴으로 전달하고 작업 등록 결과를 반환합니다.
|
|
@@ -10,5 +10,9 @@ export declare class AmqpAdPerformanceReportService {
|
|
|
10
10
|
private readonly amqpManager;
|
|
11
11
|
constructor(client: ClientProxy);
|
|
12
12
|
createAdPerformanceReportExcel(payload: CreateAdPerformanceReportExcelPayload, param: AbstractParam): Promise<CreateAdPerformanceReportExcelJobResult>;
|
|
13
|
+
/** @author 홍준 @description 외부 리포트를 생성합니다. @process 인증 param을 전용 생성 RPC에 전달합니다. */
|
|
14
|
+
createExternalAdPerformanceReport(payload: CreateAdPerformanceReportExcelPayload, param: AbstractParam): Promise<CreateExternalAdPerformanceReportJobResult>;
|
|
15
|
+
/** @author 홍준 @description 본인 리포트 작업을 조회합니다. @process 작업 ID와 인증 param을 전용 조회 RPC에 전달합니다. */
|
|
16
|
+
getAdPerformanceReportJob(payload: GetAdPerformanceReportJobPayload, param: AbstractParam): Promise<GetAdPerformanceReportJobResult>;
|
|
13
17
|
createSnsRoasReportExcel(payload: CreateSnsRoasReportExcelPayload, param: AbstractParam): Promise<CreateSnsRoasReportExcelResult>;
|
|
14
18
|
}
|
|
@@ -28,6 +28,14 @@ let AmqpAdPerformanceReportService = class AmqpAdPerformanceReportService {
|
|
|
28
28
|
async createAdPerformanceReportExcel(payload, param) {
|
|
29
29
|
return this.amqpManager.call('채널별 광고 성과 통합 엑셀 생성', 'ad-performance-report.create-excel', payload, param, { isErrorThrowing: true });
|
|
30
30
|
}
|
|
31
|
+
/** @author 홍준 @description 외부 리포트를 생성합니다. @process 인증 param을 전용 생성 RPC에 전달합니다. */
|
|
32
|
+
async createExternalAdPerformanceReport(payload, param) {
|
|
33
|
+
return this.amqpManager.call('외부 광고 성과 통합 리포트 생성', 'ad-performance-report.create-external-excel', payload, param, { isErrorThrowing: true });
|
|
34
|
+
}
|
|
35
|
+
/** @author 홍준 @description 본인 리포트 작업을 조회합니다. @process 작업 ID와 인증 param을 전용 조회 RPC에 전달합니다. */
|
|
36
|
+
async getAdPerformanceReportJob(payload, param) {
|
|
37
|
+
return this.amqpManager.call('외부 광고 성과 통합 리포트 작업 조회', 'ad-performance-report.get.external-job', payload, param, { isErrorThrowing: true });
|
|
38
|
+
}
|
|
31
39
|
async createSnsRoasReportExcel(payload, param) {
|
|
32
40
|
return this.amqpManager.call('SNS ROAS 광고 성과 엑셀 생성', 'ad-performance-report.create-sns-roas-excel', payload, param, { isErrorThrowing: true });
|
|
33
41
|
}
|
package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { ClientProxy } from '@nestjs/microservices';
|
|
2
2
|
import { AbstractParam } from '@yolo-croket-dev/core/interfaces';
|
|
3
3
|
import { CreateNaverSearchAdPowerLinkBulkPayload, DeleteNaverSearchAdAdgroupBulkPayload } from '@yolo-croket-dev/amqp-access/excel-upload-server/dto/naver-search-ad.modules';
|
|
4
|
-
import { GenerateNaverSearchAdExcelPayload, GenerateNaverSearchAdExcelResult, RunNaverSearchAdExcelFullProcessPayload } from '../../dto/naver-search-ad.modules/naver-search-ad-excel';
|
|
4
|
+
import { GenerateNaverSearchAdExcelPayload, GenerateNaverSearchAdExcelResult, RunNaverSearchAdExcelFullProcessPayload, CreateNaverSearchAdExcelJobPayload, CreateNaverSearchAdExcelJobResult, GetNaverSearchAdExcelJobPayload, GetNaverSearchAdExcelExternalJobPayload, GetNaverSearchAdExcelJobResult } from '../../dto/naver-search-ad.modules/naver-search-ad-excel';
|
|
5
5
|
export declare class AmqpNaverSearchAdExcelService {
|
|
6
6
|
private readonly client;
|
|
7
7
|
private readonly amqpManager;
|
|
8
8
|
constructor(client: ClientProxy);
|
|
9
9
|
generateNaverSearchAdExcel(payload: GenerateNaverSearchAdExcelPayload, param: AbstractParam): Promise<GenerateNaverSearchAdExcelResult>;
|
|
10
|
+
/** @description 리포트 큐 등록이 성공한 후 작업 ID를 반환합니다. */
|
|
11
|
+
createNaverSearchAdExcelJob(payload: CreateNaverSearchAdExcelJobPayload, param: AbstractParam): Promise<CreateNaverSearchAdExcelJobResult>;
|
|
12
|
+
/** @description 작업 상태와 완료된 다운로드 URL을 조회합니다. */
|
|
13
|
+
getNaverSearchAdExcelJob(payload: GetNaverSearchAdExcelJobPayload, param: AbstractParam): Promise<GetNaverSearchAdExcelJobResult>;
|
|
14
|
+
/** @description 구버전 서버가 권한 범위를 무시하지 않도록 자동화 조회 라우트를 분리합니다. */
|
|
15
|
+
getNaverSearchAdExcelExternalJob(payload: GetNaverSearchAdExcelExternalJobPayload, param: AbstractParam): Promise<GetNaverSearchAdExcelJobResult>;
|
|
10
16
|
/**
|
|
11
17
|
* 네이버 검색광고 엑셀 전체 프로세스 실행 요청 (fire & forget)
|
|
12
18
|
* excel-upload-server가 order-server를 직접 호출하여 처리
|
package/excel-upload-server/services/naver-search-ad.modules/amqp.naver-search-ad-excel.service.js
CHANGED
|
@@ -24,6 +24,18 @@ let AmqpNaverSearchAdExcelService = class AmqpNaverSearchAdExcelService {
|
|
|
24
24
|
async generateNaverSearchAdExcel(payload, param) {
|
|
25
25
|
return this.amqpManager.call('네이버 검색 광고 엑셀 생성', 'naver-search-ad-excel.generate.excel', payload, param, { isErrorThrowing: true });
|
|
26
26
|
}
|
|
27
|
+
/** @description 리포트 큐 등록이 성공한 후 작업 ID를 반환합니다. */
|
|
28
|
+
async createNaverSearchAdExcelJob(payload, param) {
|
|
29
|
+
return this.amqpManager.call('네이버 SA 리포트 작업 등록', 'naver-search-ad-excel.create.job', payload, param, { isErrorThrowing: true });
|
|
30
|
+
}
|
|
31
|
+
/** @description 작업 상태와 완료된 다운로드 URL을 조회합니다. */
|
|
32
|
+
async getNaverSearchAdExcelJob(payload, param) {
|
|
33
|
+
return this.amqpManager.call('네이버 SA 리포트 작업 조회', 'naver-search-ad-excel.get.job', payload, param, { isErrorThrowing: true });
|
|
34
|
+
}
|
|
35
|
+
/** @description 구버전 서버가 권한 범위를 무시하지 않도록 자동화 조회 라우트를 분리합니다. */
|
|
36
|
+
async getNaverSearchAdExcelExternalJob(payload, param) {
|
|
37
|
+
return this.amqpManager.call('네이버 SA 자동화 리포트 작업 조회', 'naver-search-ad-excel.get.external-job', payload, param, { isErrorThrowing: true });
|
|
38
|
+
}
|
|
27
39
|
/**
|
|
28
40
|
* 네이버 검색광고 엑셀 전체 프로세스 실행 요청 (fire & forget)
|
|
29
41
|
* excel-upload-server가 order-server를 직접 호출하여 처리
|
|
@@ -8,6 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.AmqpOrderServerModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
+
const amqp_buyma_order_service_1 = require("./services/amqp.buyma-order.service");
|
|
11
12
|
const amqp_admin_settlement_limit_service_1 = require("./services/amqp.admin-settlement-limit.service");
|
|
12
13
|
const amqp_order_server_provider_1 = require("./amqp.order-server.provider");
|
|
13
14
|
const amqp_order_server_service_1 = require("./amqp.order-server.service");
|
|
@@ -18,6 +19,7 @@ exports.AmqpOrderServerModule = AmqpOrderServerModule;
|
|
|
18
19
|
exports.AmqpOrderServerModule = AmqpOrderServerModule = __decorate([
|
|
19
20
|
(0, common_1.Module)({
|
|
20
21
|
providers: [
|
|
22
|
+
amqp_buyma_order_service_1.AmqpBuymaOrderService,
|
|
21
23
|
amqp_admin_settlement_limit_service_1.AmqpAdminSettlementLimitService,
|
|
22
24
|
amqp_order_server_provider_1.OrderServerProvider,
|
|
23
25
|
amqp_order_server_service_1.AmqpOrderServer,
|
|
@@ -48,6 +50,7 @@ exports.AmqpOrderServerModule = AmqpOrderServerModule = __decorate([
|
|
|
48
50
|
services_1.AmqpCustomsService,
|
|
49
51
|
],
|
|
50
52
|
exports: [
|
|
53
|
+
amqp_buyma_order_service_1.AmqpBuymaOrderService,
|
|
51
54
|
amqp_admin_settlement_limit_service_1.AmqpAdminSettlementLimitService,
|
|
52
55
|
amqp_order_server_provider_1.OrderServerProvider,
|
|
53
56
|
amqp_order_server_service_1.AmqpOrderServer,
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { BuymaOrderEntity, BuymaOrderStatus, BuymaProcurementWorkStatus } from '@yolo-croket-dev/entity-v2';
|
|
2
|
+
export declare class BuymaMoneyPayload {
|
|
3
|
+
amount: number;
|
|
4
|
+
currency: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class BuymaRecipientPayload {
|
|
7
|
+
name?: string | null;
|
|
8
|
+
phone?: string | null;
|
|
9
|
+
countryCode?: string | null;
|
|
10
|
+
postalCode?: string | null;
|
|
11
|
+
address1?: string | null;
|
|
12
|
+
address2?: string | null;
|
|
13
|
+
address3?: string | null;
|
|
14
|
+
address4?: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare class BuymaProductMetadataPayload {
|
|
17
|
+
storeName?: string | null;
|
|
18
|
+
sourceCountry?: string | null;
|
|
19
|
+
croketName?: string | null;
|
|
20
|
+
buymaName?: string | null;
|
|
21
|
+
brandName?: string | null;
|
|
22
|
+
optionName?: string | null;
|
|
23
|
+
weightGrams?: number | null;
|
|
24
|
+
croketItemUrl?: string | null;
|
|
25
|
+
buymaItemUrl?: string | null;
|
|
26
|
+
}
|
|
27
|
+
export declare class BuymaLocalShipmentPayload {
|
|
28
|
+
invoiceRegisteredAt?: string | null;
|
|
29
|
+
carrierName?: string | null;
|
|
30
|
+
trackingNumber?: string | null;
|
|
31
|
+
}
|
|
32
|
+
export declare class BuymaProcurementDetailsPayload {
|
|
33
|
+
croketProductPrice?: BuymaMoneyPayload | null;
|
|
34
|
+
croketShippingCost?: BuymaMoneyPayload | null;
|
|
35
|
+
purchaseCost?: BuymaMoneyPayload | null;
|
|
36
|
+
sellerSettlementCost?: BuymaMoneyPayload | null;
|
|
37
|
+
sourceStatus?: string | null;
|
|
38
|
+
localShipment?: BuymaLocalShipmentPayload | null;
|
|
39
|
+
}
|
|
40
|
+
export declare class BuymaInternationalShipmentPayload {
|
|
41
|
+
carrierName: string;
|
|
42
|
+
trackingNumber: string;
|
|
43
|
+
trackingUrl?: string | null;
|
|
44
|
+
shippingCost?: BuymaMoneyPayload | null;
|
|
45
|
+
}
|
|
46
|
+
export declare class BuymaManualFieldsPayload {
|
|
47
|
+
buyerName?: string | null;
|
|
48
|
+
recipient?: BuymaRecipientPayload;
|
|
49
|
+
productMetadata?: BuymaProductMetadataPayload;
|
|
50
|
+
productRevenue?: BuymaMoneyPayload | null;
|
|
51
|
+
shippingRevenue?: BuymaMoneyPayload | null;
|
|
52
|
+
reportedTotalRevenue?: BuymaMoneyPayload | null;
|
|
53
|
+
procurementWorkStatus?: BuymaProcurementWorkStatus;
|
|
54
|
+
procurementDetails?: BuymaProcurementDetailsPayload;
|
|
55
|
+
internationalShipment?: BuymaInternationalShipmentPayload | null;
|
|
56
|
+
stockSecuredNotified?: boolean | null;
|
|
57
|
+
forwarderDispatchNotified?: boolean | null;
|
|
58
|
+
holdReason?: string | null;
|
|
59
|
+
memo?: string | null;
|
|
60
|
+
slackThreadUrls?: string[];
|
|
61
|
+
}
|
|
62
|
+
export declare class BuymaOrderCommandPayload {
|
|
63
|
+
orderId: string;
|
|
64
|
+
expectedRevision: number;
|
|
65
|
+
/** Gateway가 인증된 관리자에서 채운다. HTTP body의 값은 사용하지 않는다. */
|
|
66
|
+
actorId: string;
|
|
67
|
+
reason: string;
|
|
68
|
+
}
|
|
69
|
+
export declare class UpdateBuymaOrderPayload extends BuymaOrderCommandPayload {
|
|
70
|
+
fields: BuymaManualFieldsPayload;
|
|
71
|
+
}
|
|
72
|
+
export declare class ConfirmBuymaPaymentPayload extends BuymaOrderCommandPayload {
|
|
73
|
+
paidAt?: string | null;
|
|
74
|
+
}
|
|
75
|
+
export declare class ConnectBuymaProcurementPayload extends BuymaOrderCommandPayload {
|
|
76
|
+
operation?: 'LINK' | 'REPLACE' | 'RELEASE';
|
|
77
|
+
croketOptionName?: string;
|
|
78
|
+
stockReusableConfirmed?: boolean;
|
|
79
|
+
previousCroketOptionName?: string;
|
|
80
|
+
source: 'CROKET' | 'MANUAL';
|
|
81
|
+
orderUrl: string;
|
|
82
|
+
purchasedInfoId?: string;
|
|
83
|
+
alternative?: boolean;
|
|
84
|
+
productAndOptionConfirmed: boolean;
|
|
85
|
+
purchaseCost?: BuymaMoneyPayload | null;
|
|
86
|
+
}
|
|
87
|
+
export declare class ChangeBuymaOrderStatusPayload extends BuymaOrderCommandPayload {
|
|
88
|
+
orderStatus: Exclude<BuymaOrderStatus, 'REFUNDED'>;
|
|
89
|
+
fullQuantityDelivered?: boolean;
|
|
90
|
+
deliveredAt?: string | null;
|
|
91
|
+
}
|
|
92
|
+
export declare class RecordBuymaRefundPayload extends BuymaOrderCommandPayload {
|
|
93
|
+
amount: BuymaMoneyPayload;
|
|
94
|
+
refundedAt: string;
|
|
95
|
+
fullRefundConfirmed: boolean;
|
|
96
|
+
}
|
|
97
|
+
export declare class ReceiveBuymaWebhookPayload {
|
|
98
|
+
buymaAccountId: string;
|
|
99
|
+
eventType: 'order/create' | 'order/update';
|
|
100
|
+
rawJson: string;
|
|
101
|
+
rawSha256: string;
|
|
102
|
+
}
|
|
103
|
+
export interface UpdateBuymaOrderResult {
|
|
104
|
+
item: BuymaOrderEntity;
|
|
105
|
+
}
|
|
106
|
+
export interface ReceiveBuymaWebhookResult {
|
|
107
|
+
orderId: string;
|
|
108
|
+
duplicate: boolean;
|
|
109
|
+
result: 'APPLIED' | 'EXCLUDED';
|
|
110
|
+
}
|