feat: 블록체인(chain) 통합 및 내부 API 추가
All checks were successful
Server CI/CD / deploy (push) Successful in 7s
All checks were successful
Server CI/CD / deploy (push) Successful in 7s
- internal/chain 패키지 추가 (client, handler, service, repository, model) - 체인 연동 엔드포인트: 지갑 조회, 잔액, 자산, 인벤토리, 마켓 등 - 관리자 전용 체인 엔드포인트: 민팅, 보상, 템플릿 등록 - 게임 서버용 내부 API (/api/internal/chain/*) + ServerAuth 미들웨어 - 회원가입 시 블록체인 월렛 자동 생성 - 체인 관련 환경변수 및 InternalAPIKey 설정 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ package routes
|
||||
import (
|
||||
"a301_server/internal/announcement"
|
||||
"a301_server/internal/auth"
|
||||
"a301_server/internal/chain"
|
||||
"a301_server/internal/download"
|
||||
"a301_server/pkg/middleware"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
@@ -13,6 +14,7 @@ func Register(
|
||||
authH *auth.Handler,
|
||||
annH *announcement.Handler,
|
||||
dlH *download.Handler,
|
||||
chainH *chain.Handler,
|
||||
) {
|
||||
api := app.Group("/api")
|
||||
|
||||
@@ -43,4 +45,37 @@ func Register(
|
||||
dl.Get("/launcher", dlH.ServeLauncher)
|
||||
dl.Post("/upload/game", middleware.Auth, middleware.AdminOnly, dlH.Upload)
|
||||
dl.Post("/upload/launcher", middleware.Auth, middleware.AdminOnly, dlH.UploadLauncher)
|
||||
|
||||
// Chain - Queries (authenticated)
|
||||
ch := api.Group("/chain", middleware.Auth)
|
||||
ch.Get("/wallet", chainH.GetWalletInfo)
|
||||
ch.Get("/balance", chainH.GetBalance)
|
||||
ch.Get("/assets", chainH.GetAssets)
|
||||
ch.Get("/asset/:id", chainH.GetAsset)
|
||||
ch.Get("/inventory", chainH.GetInventory)
|
||||
ch.Get("/market", chainH.GetMarketListings)
|
||||
ch.Get("/market/:id", chainH.GetMarketListing)
|
||||
|
||||
// Chain - User Transactions (authenticated)
|
||||
ch.Post("/transfer", chainH.Transfer)
|
||||
ch.Post("/asset/transfer", chainH.TransferAsset)
|
||||
ch.Post("/market/list", chainH.ListOnMarket)
|
||||
ch.Post("/market/buy", chainH.BuyFromMarket)
|
||||
ch.Post("/market/cancel", chainH.CancelListing)
|
||||
ch.Post("/inventory/equip", chainH.EquipItem)
|
||||
ch.Post("/inventory/unequip", chainH.UnequipItem)
|
||||
|
||||
// Chain - Admin Transactions (admin only)
|
||||
chainAdmin := api.Group("/chain/admin", middleware.Auth, middleware.AdminOnly)
|
||||
chainAdmin.Post("/mint", chainH.MintAsset)
|
||||
chainAdmin.Post("/reward", chainH.GrantReward)
|
||||
chainAdmin.Post("/template", chainH.RegisterTemplate)
|
||||
|
||||
// Internal - Game server endpoints (API key auth, username-based)
|
||||
internal := api.Group("/internal/chain", middleware.ServerAuth)
|
||||
internal.Post("/reward", chainH.InternalGrantReward)
|
||||
internal.Post("/mint", chainH.InternalMintAsset)
|
||||
internal.Get("/balance", chainH.InternalGetBalance)
|
||||
internal.Get("/assets", chainH.InternalGetAssets)
|
||||
internal.Get("/inventory", chainH.InternalGetInventory)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user