Created
September 17, 2019 08:08
-
-
Save anta40/35da1632d0f8b8ce41e130e7e8e1f017 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"database/sql" | |
"encoding/json" | |
"fmt" | |
"log" | |
"net/http" | |
"time" | |
"github.com/gorilla/mux" | |
_ "github.com/lib/pq" | |
) | |
const ( | |
host = "localhost" | |
port = 2019 | |
user = "postgres" | |
password = "dbadmin" | |
dbname = "pg-dev-01" | |
) | |
type Response struct { | |
Status int `json:"status"` | |
Message string `json:"message"` | |
Token string `json:"token"` | |
} | |
func main() { | |
router := mux.NewRouter() | |
router.HandleFunc("/checkin", checkin).Methods("POST") | |
http.Handle("/", router) | |
fmt.Println("Connected to port 1234") | |
log.Fatal(http.ListenAndServe(":1234", router)) | |
} | |
func DBconnect() *sql.DB { | |
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+ | |
"password=%s dbname=%s sslmode=disable", | |
host, port, user, password, dbname) | |
db, err := sql.Open("postgres", psqlInfo) | |
if err != nil { | |
log.Fatal(err) | |
} | |
return db | |
} | |
func checkin(w http.ResponseWriter, r *http.Request) { | |
var response Response | |
var tmpToken string | |
r.ParseForm() | |
userId := r.Form.Get("userid") | |
userToken := r.Form.Get("token") | |
db := DBconnect() | |
defer db.Close() | |
query := `INSERT INTO oc_token (userid, time, token) VALUES ($1, $2, $3) RETURNING token` | |
err = db.QueryRow(query, userId, time.Now(), userToken).Scan(&tmpToken) | |
if (err != nil){ | |
response.Status = 500 | |
response.Message = "Invalid checkin" | |
response.Token = "" | |
} else { | |
response.Status = 200 | |
response.Message = "Succesfully checkedin" | |
response.Token = tmpToken | |
} | |
w.Header().Set("Content-Type", "application/json") | |
json.NewEncoder(w).Encode(response) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment