package main import ( "encoding/json" "fmt" "github.com/gorilla/mux" "io/ioutil" "log" "net/http" ) func newTerm(w http.ResponseWriter, req *http.Request) { body, err := ioutil.ReadAll(req.Body) if err != nil { panic(err) } log.Println(string(body)) var term term_struct err = json.Unmarshal(body, &term) if err != nil { panic(err) } for i := 0; i < len(term.Months); i++ { daysIn(term.Months[i], term.Year) } } func addRow(data string) { tx, err := db.Begin() if err != nil { log.Fatal(err) } defer tx.Rollback() stmt, err := tx.Prepare("INSERT INTO calendar (date, status, contractNo) VALUES ( $1, 'available', '');") if err != nil { log.Fatal(err) } defer stmt.Close() // danger! for i := 0; i < 1; i++ { _, err = stmt.Exec(data) if err != nil { log.Fatal(err) } } err = tx.Commit() if err != nil { log.Fatal(err) } } func getTerms(w http.ResponseWriter, r *http.Request) { enableCors(&w) terms := []Term{} rows, err := db.Query("SELECT * FROM calendar;") if err != nil { return } defer rows.Close() for rows.Next() { term := Term{} err = rows.Scan( &term.Id, &term.Date, &term.Status, &term.Contractno, ) if err != nil { return } terms = append(terms, term) } fmt.Println(terms) out, err := json.Marshal(terms) if err != nil { http.Error(w, err.Error(), 500) return } fmt.Fprint(w, string(out)) } func getTerm(w http.ResponseWriter, r *http.Request) { enableCors(&w) vars := mux.Vars(r) terms := []Term{} stmt, err := db.Prepare("SELECT * FROM calendar WHERE EXTRACT(MONTH FROM date) = $1 AND EXTRACT(YEAR FROM date) = $2 ORDER BY date ASC;") if err != nil { log.Fatal(err) } defer stmt.Close() rows, err := stmt.Query(vars["month"], vars["year"]) if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { term := Term{} err = rows.Scan( &term.Id, &term.Date, &term.Status, &term.Contractno, ) if err != nil { return } terms = append(terms, term) } if err = rows.Err(); err != nil { log.Fatal(err) } out, err := json.Marshal(terms) if err != nil { http.Error(w, err.Error(), 500) return } fmt.Fprint(w, string(out)) } func postTest(w http.ResponseWriter, req *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Headers", "Content-Type") body, err := ioutil.ReadAll(req.Body) if err != nil { panic(err) } fmt.Println("postTest") log.Println(string(body)); } func deleteTest(w http.ResponseWriter, req *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "*") w.Header().Set("Access-Control-Allow-Headers", "content-Type") //body, err := ioutil.ReadAll(req.Body) //if err != nil { // panic(err) //} fmt.Println("deleteTest"); //log.Println(string(body)); }