Use IDFM website instead of official API

This commit is contained in:
nemunaire 2022-10-23 00:13:02 +02:00
commit c458a32d7b
4 changed files with 195 additions and 134 deletions

View file

@ -2,6 +2,7 @@ package api
import (
"encoding/json"
"flag"
"net/http"
"net/url"
"time"
@ -9,6 +10,14 @@ import (
"github.com/gin-gonic/gin"
)
const IDFM2_BASEURL = "https://prim.iledefrance-mobilites.fr/marketplace"
var IDFM_TOKEN = ""
func init() {
flag.StringVar(&IDFM_TOKEN, "token-IDFM", IDFM_TOKEN, "Token to access IDFM API")
}
type IDFMTraffic struct {
Siri struct {
ServiceDelivery struct {
@ -78,7 +87,7 @@ func declareTrafficRoutes(router *gin.RouterGroup) {
router.GET("/traffic/:type/:code", func(c *gin.Context) {
code := convertLineType(string(c.Param("code")))
rurl, err := url.JoinPath(IDFM_BASEURL, "general-message")
rurl, err := url.JoinPath(IDFM2_BASEURL, "general-message")
if err != nil {
c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": err.Error()})
return
@ -91,7 +100,7 @@ func declareTrafficRoutes(router *gin.RouterGroup) {
}
reqquery := url.Values{}
reqquery.Add("LineRef", code)
reqquery.Add("LineRef", "STIF:Line::"+code+":")
requrl.RawQuery = reqquery.Encode()
req, err := http.NewRequest("GET", requrl.String(), nil)