lodestar-sdk
v0.1.1
Published
Lodestar backend SDK with direct PostgreSQL access
Readme
lodestar-sdk
lodestar-sdk 是以 TypeORM 直連 PostgreSQL 的 backend SDK,整合原本 lodestar-app-backend 與 lodestar-server 的核心商業流程(Order、Payment、Auth、Discount、App Settings)。
安裝
npm install環境變數
POSTGRES_URL:PostgreSQL 連線字串JWT_SECRET:SDK 發行 access token 使用
快速開始
import { createLodestarSDK } from 'lodestar-sdk'
const sdk = createLodestarSDK({
url: process.env.POSTGRES_URL || '',
jwtSecret: process.env.JWT_SECRET || 'dev-secret',
})
await sdk.initialize()
const appSettings = await sdk.appService.getAppSettings('app-id')
await sdk.destroy()主要服務
appService:getApp(),getAppSettings()authService:registerMember(),login(),verifyAccessToken()orderService:createOrder(),getOrderById()paymentService:markPaymentSuccess(),getShouldIssueInvoicePaymentLogs(),issueInvoice()discountService:redeemCoupon(),redeemVoucher()programService:getProgramById(),getProgramPlanById()podcastService:getPodcastProgramById(),getPodcastProgramAudios()activityService:getActivityTicketById(),getActivitySessions()appointmentService:getAppointmentPlanById(),getAppointmentSchedules()triggerService:markOrderProductDelivered(),appendOrderDeliverable()
範例
npm run example:create-order
npm run example:get-app
npm run example:get-order
npm run example:auth
npm run example:discount
npm run examples:develop範例檔案位於 examples/:
examples/create-order.tsexamples/get-app.tsexamples/get-order.tsexamples/auth-register-login.tsexamples/discount-redeem.ts
examples:develop 會依序執行:
example:create-orderexample:get-orderexample:authexample:discount
請先設定 develop DB 連線環境變數(可由 .env.example 載入):
set -a
source .env.example
set +a測試
npm test使用 develop DB 進行整合測試
export RUN_INTEGRATION=1
npm run test:integration說明:
- 請將
POSTGRES_URL指向 develop PostgreSQL。 - 若 develop DB 缺少測試資料,可先執行
npm run db:seed匯入seeds/01-core-seed.sql。
功能覆蓋報告
npm run parity:report報告會輸出到 docs/FEATURE_PARITY_REPORT.md,用來追蹤 lodestar-app-backend / lodestar-server 到 lodestar-sdk 的功能覆蓋差距。
測試涵蓋:
- 訂單建立流程(order_log/order_product/order_discount/payment_log 關聯)
- 付款成功狀態更新
- 會員註冊與登入 token 發行
- coupon/voucher 核銷流程
