about summary refs log tree commit diff
path: root/http.go
blob: af4fdba9ba60d7f5b75182205657cf5a4d419d78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
// 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 <https://www.gnu.org/licenses/>.

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 := `<html><body><h1>Galaxy Simulator Database</h1>

API:
<h3> / (GET) </h3>

<h3> /new (POST) </h3>
	Create a new Tree 
	<br>
	Parameters:
	<ul>
	<li>
		w float64: width of the tree
	</li>
	</ul>

<h3> /deleteStars (POST) </h3>
	Delete all stars from the stars Table
	<br>
	Parameters:
	<ul>
	<li>
		none
	</li>
	</ul>

<h3> /deleteNodes (POST) </h3>
	Delete all nodes from the nodes Table
	<br>
	Parameters:
	<ul>
	<li>
		none
	</li>
	</ul>

<h3> /starslist/go (GET) </h3>
	List all stars using go-array format
	<br>
	Parameters:
	<ul>
	<li>
		none
	</li>
	</ul>

<h3> /starslist/csv (GET) </h3>
	List all stars as a csv
	<br>
	Parameters:
	<ul>
	<li>
		none
	</li>
	</ul>

<h3> /updatetotalmass (POST) </h3>
	Update the total mass of all the nodes in the tree with the given index
	<br>
	Parameters:
	<ul>
	<li>
		index int: index of the tree	
	</li>
	</ul>

<h3> /updatecenterofmass (POST) </h3>
	Update the center of mass of all the nodes in the tree with the given index
	<br>
	Parameters:
	<ul>
	<li>
		index int: index of the tree	
	</li>
	</ul>

<h3> /genforesttree (GET) </h3>
	Generate the forest representation of the tree with the given index 	
	<br>
	Parameters:
	<ul>
	<li>
		index int: index of the tree	
	</li>
	</ul>

</body>
</html>	
`

	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)
}