alfheim-website/main.go

96 lines
2.3 KiB
Go

//
// Created by vfs on 02.05.2024.
//
package main;
import "fmt";
import "log";
import "flag";
import "net/http";
import _ "github.com/lib/pq";
import "database/sql";
import "github.com/gorilla/sessions";
import "regexp";
//import "golang.org/x/crypto/bcrypt";
import "github.com/stripe/stripe-go/v78";
//import "github.com/stripe/stripe-go/v78/customer";
var users *Usermodel;
var key = []byte("super-secret-key");
var store = sessions.NewCookieStore(key);
var emailrx = regexp.MustCompile("/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/");
func main() {
addr := flag.String("addr", ":8080", "HTTP network address");
flag.Parse();
fmt.Println("Hello, Sailor!");
stripe.Key = "sk_test_51PGebgKUHKCjyTmc97rfDPcvew6EhqDz2qp3U7XoAMIilAU9IVo2NO4P7ylkTvbBafFVr94trha1VYY32jRWMw2K00Yq7YJXFf";
store.MaxAge(0);
db, err := sql.Open("postgres", "postgres://elves_database:iK2SoVbDhdCki5n3LxGyP6zKpLspt4@80.240.25.87/elves_database");
if err != nil {
log.Fatal(err);
}
defer db.Close();
users = &Usermodel{db};
mux := http.NewServeMux();
//rows, err := db.Query("SELECT * FROM accounts");
//if err != nil {;
// log.Fatal(err);
//};
//defer rows.Close();
//accounts := make([]*Account, 0);
//for rows.Next() {;
// acc := new(Account);
// err := rows.Scan(&acc.id, &acc.Username, &acc.password, &acc.Color);
// if err != nil {;
// log.Fatal(err);
// };
// accounts = append(accounts, acc);
//};
//if err = rows.Err(); err != nil {;
// log.Fatal(err);
//};
//for _, acc := range accounts {;
// fmt.Println(acc);
//};
mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))));
mux.HandleFunc("/favicon.ico", favicon);
mux.HandleFunc("/", home);
mux.HandleFunc("/login", login);
mux.HandleFunc("/logout", logout);
mux.HandleFunc("/register", register);
mux.HandleFunc("/account", require_authenticated_user(account));
mux.HandleFunc("/deleteaccount", require_authenticated_user(deleteaccount));
mux.HandleFunc("/subscribe", subscribe);
log.Fatal(http.ListenAndServe(*addr, secure_headers(mux)));
}
//cookie := http.Cookie{;
// Name: "exampleCookie",;
// Value: "Hello world!",;
// Path: "/",;
// HttpOnly: true,;
// Secure: true,;
// SameSite: http.SameSiteLaxMode,;
//};
//http.SetCookie(w, &cookie);