Repository navigation
v0.3.0
Added — SDK 헬퍼 (다단계 플로우 한 호출)
R011-S01 (16p 책에 35+ API 호출) / C08 (다단계 실패 컨텍스트) 대응.
새 메서드
client.helpers.createBookFromTemplate(input)— TEMPLATE 모드 책 + 표지 + 내지 N + finalize 한 호출client.helpers.uploadPdfAndOrder(input)— PDF_UPLOAD 모드 책 + PDF 2종 + finalize + 견적 + 주문 한 호출
새 예외 SweetbookHelperError
stage—HelperStage상수bookUid/orderUid— 부분 성공 후 cleanup 결정용partial— 단계별 부분 성공 정보contentIndex— 내지 삽입 실패 시 페이지 indexcause— 원SweetbookApiErroruserMessage()— cause 가 ApiError 면 위임
TypeScript
HelpersClient/CreateBookFromTemplateInput/UploadPdfAndOrderInput/BookBuildResult/PdfOrderBuildResult/SweetbookHelperError/HelperStage/HelperErrorCodes- Photos / Credits / Webhook 도 strong-typed 인터페이스 강화
Migration
v0.2.x → v0.3.0 은 추가 only. 기존 sub-client 동작 그대로 (하위 호환).
const { SweetbookClient, SweetbookHelperError, HelperStage } = require('bookprintapi-nodejs-sdk');
const c = new SweetbookClient({ apiKey: '...' });
try {
const result = await c.helpers.createBookFromTemplate({
bookSpec: { uid: 'PHOTOBOOK_A4_SC' },
cover: { templateUid: 'cv_xxx', params: { title: 'My Book' } },
contents: [
{ templateUid: 'p_xxx', params: { ... }, bindingFiles: { mainPhoto: file1 } },
],
options: { externalRef: 'ORDER-123' },
});
} catch (e) {
if (e instanceof SweetbookHelperError) {
if (e.bookUid && e.stage !== HelperStage.CONTENT_INSERT) {
await c.books.delete(e.bookUid);
}
}
throw e;
}Tests: npm test 16/16 통과