Added basic structure

This commit is contained in:
kolaente 2018-12-07 21:22:48 +01:00
parent 2c5a38bfd4
commit d8af3a8a35
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
5 changed files with 121 additions and 1 deletions

31
pkg/models/client.go Normal file
View File

@ -0,0 +1,31 @@
// Sofaraum server is the server which collects the statistics
// for the sofaraum-heatmap application.
// Copyright 2018 K.Langenberg and contributors. All rights reserved.
//
// 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 models
type Client struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
Name string `xorm:"varchar(250)" json:"name"`
PublicKey string `xorm:"varchar(250)" json:"public_key"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`
}
func (Client) TableName() string {
return "clients"
}

View File

@ -58,7 +58,12 @@ func getEngine() (*xorm.Engine, error) {
}
func init() {
tables = append(tables)
tables = append(tables,
new(User),
new(Client),
new(Room),
new(Statistics),
)
}
// SetEngine sets the xorm.Engine

30
pkg/models/room.go Normal file
View File

@ -0,0 +1,30 @@
// Sofaraum server is the server which collects the statistics
// for the sofaraum-heatmap application.
// Copyright 2018 K.Langenberg and contributors. All rights reserved.
//
// 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 models
type Room struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
Name string `xorm:"varchar(250)" json:"name"`
Created int64 `xorm:"created" json:"created"`
Updated int64 `xorm:"updated" json:"updated"`
}
func (Room) TableName() string {
return "rooms"
}

30
pkg/models/statistics.go Normal file
View File

@ -0,0 +1,30 @@
// Sofaraum server is the server which collects the statistics
// for the sofaraum-heatmap application.
// Copyright 2018 K.Langenberg and contributors. All rights reserved.
//
// 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 models
type Statistics struct {
ID int64 `xorm:"int(11) autoincr not null unique pk" json:"id"`
Count int64 `xorm:"int(11)" json:"count"`
ClientID int64 `xorm:"int(11)" json:"-"`
RoomID int64 `xorm:"int(11)" json:"-"`
Room Room `xorm:"-"`
Client Client `xorm:"-"`
Created int64 `xorm:"created" json:"created"`
}

24
structure.md Normal file
View File

@ -0,0 +1,24 @@
# .
#### Structs
* Users (Admins)
* Standard...
* Rooms
* ID
* Name
* Clients
* ID
* Name
* Pubkey
* Stats
* ID
* Count
* ClientID
* RoomID
Client signiert seinen Request mit seinem Privaten Schlüssel und der Server verifiziert das dann.
Mit ed25519
Ein neuer Client wird registriert, indem er seinen pubkey mit name an den Server schickt
(hinter Authentifizierung).