Some checks failed
dev test / test (push) Successful in 7s
dev test / vulnCheck (push) Successful in 12s
dev test / Ci-Lint (push) Successful in 10s
${{ github.actor }} executed Build Push Prod / build (push) Failing after 42s
${{ github.actor }} executed Build Push Prod / deploy (push) Has been skipped
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
package api
|
|
|
|
import (
|
|
"html/template"
|
|
"log/slog"
|
|
"net/http"
|
|
"time"
|
|
|
|
"git.maximotejeda.com/maximo/us-dop-api/internal/domain"
|
|
"git.maximotejeda.com/maximo/us-dop-api/internal/ports"
|
|
|
|
)
|
|
|
|
type API struct {
|
|
http.ServeMux
|
|
dolar ports.DolarService
|
|
log *slog.Logger
|
|
templ template.Template
|
|
}
|
|
|
|
type SearchResult struct {
|
|
InstRequested string `json:"institution_requested"`
|
|
Date time.Time `json:"date"`
|
|
TimeAmount string `json:"time_amount"`
|
|
TimeFrame string `json:"time_frame"`
|
|
Results []*domain.History `josn:"results"`
|
|
}
|
|
|
|
func NewApiHandler( dolar ports.DolarService, log *slog.Logger, templ template.Template) *API {
|
|
log = log.With("api", "insti")
|
|
api := &API{
|
|
log: log,
|
|
dolar: dolar,
|
|
templ: templ,
|
|
}
|
|
api.HandleFunc("POST /api/instituciones/history", api.GetInstitutionHistory) // general handler to get banks, agents and others histories
|
|
// api.HandleFunc("GET /api/instituciones/{inst}", nil) // return the card of just one institution with details
|
|
api.HandleFunc("GET /api/{inst}/", api.GetInstNames)
|
|
api.HandleFunc("GET /api/latest/all", api.GetAllLatestPrice)
|
|
api.HandleFunc("GET /api/control/select", api.GetHistoryPage)
|
|
api.HandleFunc("GET /api/control/compare", api.GetComparisonPage)
|
|
return api
|
|
}
|
|
|
|
// instParseHTML
|
|
//
|
|
// Can be much tipe of html part of a list, a form, a card etc...
|
|
/* func instParseHTML(SearchResult) string {
|
|
return "html"
|
|
}*/
|