basic api

This commit is contained in:
2020-12-22 18:36:45 +01:00
parent e557cfa257
commit 07a73fbeef
3 changed files with 33 additions and 0 deletions

30
src/api.go Normal file
View File

@ -0,0 +1,30 @@
package main
import (
"net/http"
"encoding/json"
)
type accountApiResponse struct {
Username string `json:"username"`
DiscordUserId string `json:"discordUserId"`
Email string `json:"email"`
}
const apiPassword string = "hezgf42gfgwfg"
func accountApi(w http.ResponseWriter, r *http.Request) {
var accountKey string = r.FormValue("accountkey")
var password string = r.FormValue("password")
if password != secret.ApiToken {
http.Error(w, "Error 401 false password", 401)
return
}
var account accountApiResponse
var success bool
var usernameInter interface{}
usernameInter, success = sessions.GetStringKey(accountKey)
account.Username = usernameInter.(string)
if !success {
http.Error(w, "Error 400 invalid session", 400)
}
db.QueryRow("SELECT email,discordUserId FROM account WHERE username = ?", account.Username).Scan(&account.Email, &account.DiscordUserId)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(account)
}

View File

@ -32,6 +32,7 @@ func login(w http.ResponseWriter, r *http.Request) {
cookie := http.Cookie{
Name: sessionName,
Value: key,
Domain: "redstoneunion.de",
Expires: time.Now().Add(sessionTimeout),
HttpOnly: true,
Secure: true,

View File

@ -30,6 +30,7 @@ type secrets_json struct {
DiscordServerID string `json:"discordServerID"`
MoodleToken string `json:"moodleToken"`
GiteaToken string `json:"giteaToken"`
ApiToken string `json:"apiToken"`
}
type config_json struct {
CreateGiteaAccount bool `json:"createGiteaAccount"`
@ -81,6 +82,7 @@ func main() {
http.HandleFunc("/register", register)
http.HandleFunc("/submit", submit)
http.HandleFunc("/login", login)
http.HandleFunc("/api/accountinfo", accountApi)
http.ListenAndServe(":" + fmt.Sprint(config.Port), nil)
}