api.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package route
  2. import (
  3. "crawler/controller"
  4. "crawler/service"
  5. "fmt"
  6. "time"
  7. "github.com/gin-gonic/gin"
  8. )
  9. var (
  10. MovieController = new(controller.Movie)
  11. CompanyController = new(controller.Company)
  12. CronController = new(controller.Cron)
  13. G2AController = new(controller.G2A)
  14. )
  15. // 라우터 설정
  16. func SetRoute(app *gin.Engine) {
  17. NoRoute(app) // 404
  18. CronRoute(app) // Cron schedule
  19. MovieRoute(app) // 영화 API
  20. CompanyRoute(app) // 영화사 API
  21. G2ARoute(app) // G2A API
  22. defer func() {
  23. if c := recover(); c != nil {
  24. fmt.Println("Recover route execute !!")
  25. }
  26. }()
  27. app.GET("/ping", func(c *gin.Context) {
  28. c.JSON(200, gin.H{
  29. "message": "pong",
  30. })
  31. })
  32. app.GET("/db", func(c *gin.Context) {
  33. t := time.Now()
  34. var x int
  35. _ = service.DB_MOVIEW.SQLDB.QueryRow("SELECT 1").Scan(&x)
  36. c.JSON(200, gin.H{"ms": time.Since(t).Milliseconds()})
  37. })
  38. }
  39. func NoRoute(app *gin.Engine) {
  40. app.NoRoute(func(c *gin.Context) {
  41. c.File("index.html")
  42. })
  43. }
  44. func MovieRoute(app *gin.Engine) {
  45. r := app.Group("/movie")
  46. r.GET("/searchDailyBoxOfficeList", MovieController.SearchDailyBoxOfficeList)
  47. r.GET("/searchWeeklyBoxOfficeList", MovieController.SearchWeeklyBoxOfficeList)
  48. r.GET("/searchMovieList", MovieController.SearchMovieList)
  49. r.GET("/searchDailyInfo", MovieController.SearchDailyInfo)
  50. r.GET("/searchWeeklyInfo", MovieController.SearchWeeklyInfo)
  51. r.GET("/searchMovieInfo", MovieController.SearchMovieInfo)
  52. }
  53. func CompanyRoute(app *gin.Engine) {
  54. r := app.Group("/company")
  55. r.GET("/searchCompanyList", CompanyController.SearchCompanyList)
  56. r.GET("/searchCompanyInfo", CompanyController.SearchCompanyInfo)
  57. }
  58. func CronRoute(app *gin.Engine) {
  59. r := app.Group("/cron")
  60. r.GET("/list", CronController.List)
  61. r.GET("/info", CronController.Info)
  62. r.GET("/detail", CronController.Detail)
  63. r.GET("/companyList", CronController.CompanyList)
  64. r.GET("/companyInfo", CronController.CompanyInfo)
  65. //r.GET("/stats", CronController.Stats)
  66. }
  67. func G2ARoute(app *gin.Engine) {
  68. r := app.Group("/g2a")
  69. r.GET("/products", G2AController.Products)
  70. r.GET("/checkOutOfStock", G2AController.CheckOutOfStock)
  71. r.GET("/order", G2AController.Order)
  72. }