Skip to content

v0.3.0

Choose a tag to compare

@southglory southglory released this 07 May 03:07
· 4 commits to master since this release

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 — 내지 삽입 실패 시 페이지 index
  • cause — 원 SweetbookApiError
  • userMessage() — 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 통과