Continue improving comments & use of structured logs

This commit is contained in:
2023-12-24 20:01:56 -06:00
parent 81e60ed4b7
commit 09f973c46a
4 changed files with 22 additions and 23 deletions

22
api.go
View File

@@ -3,7 +3,6 @@ package main
import (
"bytes"
"encoding/json"
"io"
"strconv"
"strings"
"time"
@@ -38,11 +37,10 @@ func GetTerms(search string, offset int, max int) ([]Term, error) {
}
// print the response body
body, _ := io.ReadAll(res.Body)
log.Printf("Response Body: %s", body)
// _body, _ := io.ReadAll(res.Body)
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -69,7 +67,7 @@ func GetPartOfTerms(search string, term int, offset int, max int) ([]TermParts,
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -97,7 +95,7 @@ func GetInstructor(search string, term int, offset int, max int) []Instructor {
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -121,7 +119,7 @@ func GetClassDetails(term int, crn int) *ClassDetails {
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -151,7 +149,7 @@ func Search(subject string, keyword string, term string, startDate time.Time, en
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -179,7 +177,7 @@ func GetSubjects(search string, term int, offset int, max int) []Subject {
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -207,7 +205,7 @@ func GetCampuses(search string, term int, offset int, max int) []Campus {
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -235,7 +233,7 @@ func GetInstructionalMethods(search string, term int, offset int, max int) ([]In
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Printf("ERR Response was not JSON: %s", res.Header.Get("Content-Type"))
}
@@ -258,7 +256,7 @@ func GetCourseMeetingTime(term int, crn int) (*MeetingTimeResponse, error) {
}
// Assert that the response is JSON
if !ContainsContentType(res.Header.Get("Content-Type"), "application/json") {
if !ContainsContentType(res, "application/json") {
log.Fatal().Msgf("Response was not JSON: %s", res.Header.Get("Content-Type"))
}

View File

@@ -42,9 +42,9 @@ func AddUserAgent(req *http.Request) {
req.Header.Add("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36")
}
func ContainsContentType(header string, search string) bool {
func ContainsContentType(response *http.Response, search string) bool {
// Split on commas, check if any of the types match
for _, content_type := range strings.Split(header, ";") {
for _, content_type := range strings.Split(response.Header.Get("Content-Type"), ";") {
if content_type == search {
return true
}
@@ -67,8 +67,9 @@ func Nonce() string {
return strconv.Itoa(int(time.Now().UnixMilli()))
}
// doRequest performs & logs the request, logging and returning the response
func doRequest(req *http.Request) (*http.Response, error) {
log.Debug().Str("method", req.Method).Msg("Request")
log.Debug().Str("method", strings.TrimRight(req.Method, " ")).Str("url", req.URL.String()).Str("query", req.URL.RawQuery).Str("content-type", req.Header.Get("Content-Type")).Msg("Request")
res, err := client.Do(req)
if err != nil {
log.Err(err).Str("method", req.Method).Msg("Request Failed")

View File

@@ -63,11 +63,11 @@ func init() {
envVarSplit := strings.Split(envVar, "=")
environmentDict.Str(envVarSplit[0], envVarSplit[1])
})
log.Info().Dict("env", environmentDict).Msg("env")
if isDevelopment {
log.Logger = zerolog.New(logOut{}).With().Timestamp().Logger()
}
log.Info().Dict("env", environmentDict).Msg("env")
discordgo.Logger = func(msgL, caller int, format string, a ...interface{}) {
pc, file, line, _ := runtime.Caller(caller)
@@ -146,7 +146,7 @@ func main() {
lo.ForEach(commandDefinitions, func(cmd *discordgo.ApplicationCommand, _ int) {
arr.Str(cmd.Name)
})
log.Info().Array("commands", zerolog.Arr()).Msg("Registering commands")
log.Info().Array("commands", arr).Msg("Registering commands")
// Register commands
registeredCommands := make([]*discordgo.ApplicationCommand, len(commandDefinitions))

View File

@@ -21,12 +21,12 @@ func setup() {
}
// Validate that cookies were set
baseURL_parsed, err := url.Parse(baseURL)
baseUrlParsed, err := url.Parse(baseURL)
if err != nil {
log.Fatal().Msgf("Failed to parse baseURL: %s", baseURL)
log.Fatal().Str("baseURL", baseURL).Err(err).Msg("Failed to parse baseURL")
}
current_cookies := client.Jar.Cookies(baseURL_parsed)
current_cookies := client.Jar.Cookies(baseUrlParsed)
required_cookies := map[string]bool{
"JSESSIONID": false,
"SSB_COOKIE": false,
@@ -41,12 +41,12 @@ func setup() {
}
// Check if all required cookies were set
for cookie_name, cookie_set := range required_cookies {
for cookieName, cookie_set := range required_cookies {
if !cookie_set {
log.Error().Msgf("Required cookie %s was not set", cookie_name)
log.Warn().Str("cookieName", cookieName).Msg("Required cookie not set")
}
}
log.Info().Msg("All cookies acquired. Session setup complete.")
log.Debug().Msg("All required cookies set, session setup complete")
// TODO: Validate that the session allows access to termSelection
}