// http.go bundles the http endpoint definitions
// Copyright (C) 2019 Emile Hansmaennel
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
package main
import (
"database/sql"
"git.darknebu.la/GalaxySimulator/db-actions"
"git.darknebu.la/GalaxySimulator/structs"
)
// IndexEndpoint gives a basic overview over the api
func indexEndpoint() string {
indexString := `
Galaxy Simulator Database
API:
/ (GET)
/new (POST)
Create a new Tree
Parameters:
-
w float64: width of the tree
/deleteStars (POST)
Delete all stars from the stars Table
Parameters:
/deleteNodes (POST)
Delete all nodes from the nodes Table
Parameters:
/starslist/go (GET)
List all stars using go-array format
Parameters:
/starslist/csv (GET)
List all stars as a csv
Parameters:
/updatetotalmass (POST)
Update the total mass of all the nodes in the tree with the given index
Parameters:
-
index int: index of the tree
/updatecenterofmass (POST)
Update the center of mass of all the nodes in the tree with the given index
Parameters:
-
index int: index of the tree
/genforesttree (GET)
Generate the forest representation of the tree with the given index
Parameters:
-
index int: index of the tree
`
return indexString
}
// newTree creates a new tree
func newTreeEndpoint(db *sql.DB, width float64) {
db_actions.NewTree(db, width)
}
// insertStarEndpoint inserts the star into the tree with the given index
func insertStarEndpoint(db *sql.DB, star structs.Star2D, index int64) {
db_actions.InsertStar(db, star, index)
}
// insertListEndpoint inserts the star into the tree with the given index
func insertListEndpoint(db *sql.DB, filename string) {
db_actions.InsertList(db, filename)
}
// deleteStarsEndpoint deletes all the rows from the stars table
func deleteStarsEndpoint(db *sql.DB) {
db_actions.DeleteAllStars(db)
}
// deleteNodesEndpoint deletes all the rows from the nodes table
func deleteNodesEndpoint(db *sql.DB) {
db_actions.DeleteAllNodes(db)
}
func listOfStarsGoEndpoint(db *sql.DB) []structs.Star2D {
listOfStars := db_actions.GetListOfStarsGo(db)
return listOfStars
}
func listOfStarsCsvEndpoint(db *sql.DB) []string {
listOfStars := db_actions.GetListOfStarsCsv(db)
return listOfStars
}
func updateTotalMassEndpoint(db *sql.DB, index int64) {
db_actions.UpdateTotalMass(db, index)
}
func updateCenterOfMassEndpoint(db *sql.DB, index int64) {
db_actions.UpdateCenterOfMass(db, index)
}
func genForestTreeEndpoint(db *sql.DB, index int64) string {
return db_actions.GenForestTree(db, index)
}
func initStarsTableEndpoint(db *sql.DB) {
db_actions.InitStarsTable(db)
}
func initNodesTableEndpoint(db *sql.DB) {
db_actions.InitNodesTable(db)
}