Merge pull request #11 from navi-ppl/Tp-55555/sourceMap
Tp 55555/source map
This commit is contained in:
@@ -14,3 +14,8 @@ func InitReleaseRepository(dbClient *gorm.DB) *gorm.DB {
|
||||
dbClient.AutoMigrate(&db.Release{})
|
||||
return dbClient
|
||||
}
|
||||
|
||||
func InitSourceMapRepository(dbClient *gorm.DB) *gorm.DB {
|
||||
dbClient.AutoMigrate(&db.SourcMap{})
|
||||
return dbClient
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"cybertron/pkg/kafka/producer"
|
||||
"cybertron/pkg/log"
|
||||
"cybertron/service"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
@@ -26,14 +27,16 @@ type Dependencies struct {
|
||||
type Service struct {
|
||||
DocumentService *document.HttpClient
|
||||
ProjectService *service.ProjectCreator
|
||||
SourceMapService *service.SourceMapService
|
||||
ReleaseService *service.ReleaseService
|
||||
ExceptionService *service.ExceptionService
|
||||
S3Client *aws.Actions
|
||||
S3Client *aws.Actions
|
||||
// Add your service here
|
||||
}
|
||||
|
||||
type Handler struct {
|
||||
ProjectHandler *handler.ProjectHandler
|
||||
SourceMapHandler *handler.SourceMapHandler
|
||||
ReleaseHandler *handler.ReleasesHandler
|
||||
ExceptionHandler *handler.ExceptionHandler
|
||||
}
|
||||
@@ -53,11 +56,12 @@ func InitDependencies() *Dependencies {
|
||||
|
||||
documentServiceClient := document.NewDocumentServiceHttpClient(httpClient, logger, configs.GetDocumentServiceHttpClientConfigs())
|
||||
projectServiceClient := service.NewProjectCreator(logger, dbClient, s3Client, kafkaProducer)
|
||||
sourceMapServiceClient := service.NewSourceMapService(dbClient)
|
||||
releaseServiceClient := service.NewReleaseService(logger, dbClient)
|
||||
exceptionServiceClient := service.NewExceptionService(logger, dbClient, kafkaProducer)
|
||||
|
||||
services := initServices(documentServiceClient, projectServiceClient, releaseServiceClient, exceptionServiceClient)
|
||||
handlers := initHandlers(projectServiceClient, releaseServiceClient, exceptionServiceClient)
|
||||
services := initServices(documentServiceClient, projectServiceClient, sourceMapServiceClient, releaseServiceClient, exceptionServiceClient)
|
||||
handlers := initHandlers(projectServiceClient, sourceMapServiceClient, releaseServiceClient, exceptionServiceClient)
|
||||
return &Dependencies{
|
||||
Service: services,
|
||||
DBClient: dbClient,
|
||||
@@ -67,10 +71,11 @@ func InitDependencies() *Dependencies {
|
||||
}
|
||||
}
|
||||
|
||||
func initServices(documentService *document.HttpClient, projectService *service.ProjectCreator, releaseService *service.ReleaseService, exceptionService *service.ExceptionService) *Service {
|
||||
func initServices(documentService *document.HttpClient, projectService *service.ProjectCreator, sourceMapService *service.SourceMapService, releaseService *service.ReleaseService, exceptionService *service.ExceptionService) *Service {
|
||||
return &Service{
|
||||
DocumentService: documentService,
|
||||
ProjectService: projectService,
|
||||
SourceMapService: sourceMapService,
|
||||
ReleaseService: releaseService,
|
||||
ExceptionService: exceptionService,
|
||||
}
|
||||
@@ -83,12 +88,14 @@ func initRepositories(dbClient *gorm.DB) *Repositories {
|
||||
}
|
||||
}
|
||||
|
||||
func initHandlers(projectService *service.ProjectCreator, releaseService *service.ReleaseService, exceotionService *service.ExceptionService) *Handler {
|
||||
func initHandlers(projectService *service.ProjectCreator, sourceMapService *service.SourceMapService, releaseService *service.ReleaseService, exceotionService *service.ExceptionService) *Handler {
|
||||
projectHandler := handler.NewProjectHandler(projectService)
|
||||
sourceMapHandler := handler.NewSourceMapHandler(sourceMapService)
|
||||
releaseHandler := handler.NewReleaseHandler(releaseService)
|
||||
exceptionHandler := handler.NewExceptionHandler(exceotionService)
|
||||
return &Handler{
|
||||
ProjectHandler: projectHandler,
|
||||
SourceMapHandler: sourceMapHandler,
|
||||
ReleaseHandler: releaseHandler,
|
||||
ExceptionHandler: exceptionHandler,
|
||||
}
|
||||
|
||||
27
internal/transport/handler/sourceMap.go
Normal file
27
internal/transport/handler/sourceMap.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"cybertron/service"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type SourceMapHandler struct {
|
||||
sourceMapService *service.SourceMapService
|
||||
}
|
||||
|
||||
func NewSourceMapHandler(sourceMapService *service.SourceMapService) *SourceMapHandler {
|
||||
return &SourceMapHandler{
|
||||
sourceMapService: sourceMapService,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *SourceMapHandler) GetSourceMap(c *gin.Context) {
|
||||
sourceMap := h.sourceMapService.GetSourceMap()
|
||||
c.JSON(http.StatusOK, sourceMap)
|
||||
}
|
||||
|
||||
func (h *SourceMapHandler) StoreSourceMap(c *gin.Context) {
|
||||
h.sourceMapService.StoreSourceMap(c)
|
||||
}
|
||||
16
internal/transport/router/sourceMap.go
Normal file
16
internal/transport/router/sourceMap.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"cybertron/internal/transport/handler"
|
||||
"cybertron/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func SourceMapRouter(r *gin.Engine, dbClient *gorm.DB) {
|
||||
sourceMapService := service.NewSourceMapService(dbClient)
|
||||
sourceMapHandler := handler.NewSourceMapHandler(sourceMapService)
|
||||
r.GET("/uploadsourcemap", sourceMapHandler.GetSourceMap)
|
||||
r.POST("/storesourcemap", sourceMapHandler.StoreSourceMap)
|
||||
}
|
||||
@@ -31,6 +31,7 @@ func NewServer(dep *dependencies.Dependencies) *Server {
|
||||
func (s *Server) router() {
|
||||
router.ReadinessRouter(s.gin)
|
||||
router.ProjectRouter(s.gin, s.dependencies)
|
||||
router.SourceMapRouter(s.gin, s.dependencies.DBClient)
|
||||
router.ReleasesRouter(s.gin, s.dependencies)
|
||||
router.ExceptionRouter(s.gin, s.dependencies)
|
||||
}
|
||||
|
||||
@@ -5,5 +5,6 @@ import "gorm.io/gorm"
|
||||
type SourceMap struct {
|
||||
gorm.Model
|
||||
ReleaseReferenceId string `gorm:"primaryKey"`
|
||||
SourceMapZipUrl string `gorm:"column:name"`
|
||||
ProjectReferenceId string `gorm:"column:project_reference_id"`
|
||||
SourceMapZipUrl string `gorm:"column:source_map_zip_url"`
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"github.com/google/uuid"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Release struct {
|
||||
gorm.Model
|
||||
ReleaseId uuid.UUID
|
||||
ProjectReferenceId string `gorm:"primaryKey"`
|
||||
ReleaseVersion string `gorm:"column:name"`
|
||||
SourceMapUrl string
|
||||
}
|
||||
56
service/sourceMap.go
Normal file
56
service/sourceMap.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"cybertron/models/db"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type SourceMapService struct {
|
||||
dbClient *gorm.DB
|
||||
}
|
||||
|
||||
func NewSourceMapService(dbClient *gorm.DB) *SourceMapService {
|
||||
return &SourceMapService{
|
||||
dbClient: dbClient,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *SourceMapService) GetSourceMap() db.SourceMap {
|
||||
//fetching SourceMap from a client API
|
||||
sourceMap := db.SourceMap{
|
||||
Model: gorm.Model{
|
||||
ID: 1,
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
DeletedAt: gorm.DeletedAt{},
|
||||
},
|
||||
ReleaseReferenceId: "some-release-ref-id",
|
||||
ProjectReferenceId: "some-project-ref-id",
|
||||
SourceMapZipUrl: "http://example.com/sourcemap.zip",
|
||||
}
|
||||
|
||||
return sourceMap
|
||||
}
|
||||
|
||||
func (s *SourceMapService) StoreSourceMap(c *gin.Context) {
|
||||
var sourceMap db.SourceMap
|
||||
if err := c.ShouldBindJSON(&sourceMap); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
result := s.dbClient.Create(&db.SourceMap{
|
||||
ReleaseReferenceId: sourceMap.ReleaseReferenceId,
|
||||
ProjectReferenceId: sourceMap.ProjectReferenceId,
|
||||
SourceMapZipUrl: sourceMap.SourceMapZipUrl,
|
||||
})
|
||||
|
||||
if result.Error != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to store source map"})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"status": "Source map stored successfully"})
|
||||
}
|
||||
Reference in New Issue
Block a user