first commit
This commit is contained in:
commit
07393f57d3
10 changed files with 194 additions and 0 deletions
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
9
.idea/Karma-Telegram-Bot.iml
generated
Normal file
9
.idea/Karma-Telegram-Bot.iml
generated
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Karma-Telegram-Bot.iml" filepath="$PROJECT_DIR$/.idea/Karma-Telegram-Bot.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
6
.idea/sqldialects.xml
generated
Normal file
6
.idea/sqldialects.xml
generated
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="PROJECT" dialect="MySQL" />
|
||||
</component>
|
||||
</project>
|
25
Database/Schema.go
Normal file
25
Database/Schema.go
Normal file
|
@ -0,0 +1,25 @@
|
|||
package Database
|
||||
|
||||
import (
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
)
|
||||
|
||||
var schema = []string{
|
||||
`CREATE TABLE IF NOT EXISTS DB_Channel (
|
||||
cid INT AUTO_INCREMENT PRIMARY KEY,
|
||||
channel_name VARCHAR(255) NOT NULL
|
||||
);`,
|
||||
`CREATE TABLE IF NOT EXISTS DB_User (
|
||||
uid INT AUTO_INCREMENT PRIMARY KEY,
|
||||
display_name VARCHAR(255),
|
||||
username VARCHAR(255) NOT NULL
|
||||
);`,
|
||||
`CREATE TABLE IF NOT EXISTS DB_User_Channel (
|
||||
fk_uid INT NOT NULL,
|
||||
fk_cid INT NOT NULL,
|
||||
points INT NOT NULL,
|
||||
is_admin BOOLEAN default(false),
|
||||
FOREIGN KEY (fk_uid) REFERENCES DB_User(uid),
|
||||
FOREIGN KEY (fk_cid) REFERENCES DB_Channel(cid)
|
||||
);`,
|
||||
}
|
76
Database/Structs.go
Normal file
76
Database/Structs.go
Normal file
|
@ -0,0 +1,76 @@
|
|||
package Database
|
||||
|
||||
import "database/sql"
|
||||
|
||||
type DbUser struct {
|
||||
UserID int `db:"uid"`
|
||||
DisplayName sql.NullString `db:"display_name"`
|
||||
Username string `db:"username"`
|
||||
}
|
||||
type DbChannel struct {
|
||||
ChannelID int `db:"cid"`
|
||||
ChannelName sql.NullString `db:"channel_name"`
|
||||
}
|
||||
type DbUserChannel struct {
|
||||
FkUserId int `db:"fk_uid"`
|
||||
FkChannelId int `db:"fk_cid"`
|
||||
Points int `db:"points"`
|
||||
IsAdmin bool `db:"is_admin"`
|
||||
}
|
||||
|
||||
type DbDto struct {
|
||||
UserID int `db:"uid"`
|
||||
DisplayName sql.NullString `db:"display_name"`
|
||||
Username string `db:"username"`
|
||||
ChannelID int `db:"cid"`
|
||||
ChannelName sql.NullString `db:"channel_name"`
|
||||
Points int `db:"points"`
|
||||
IsAdmin bool `db:"is_admin"`
|
||||
}
|
||||
|
||||
func NewDbDto(user *DbUser, channel *DbChannel, userChannel *DbUserChannel) *DbDto {
|
||||
if userChannel == nil {
|
||||
userChannel = &DbUserChannel{}
|
||||
}
|
||||
if user == nil {
|
||||
user = &DbUser{UserID: userChannel.FkUserId}
|
||||
}
|
||||
if channel == nil {
|
||||
channel = &DbChannel{ChannelID: userChannel.FkChannelId}
|
||||
}
|
||||
dto := &DbDto{
|
||||
UserID: user.UserID,
|
||||
DisplayName: user.DisplayName,
|
||||
Username: user.Username,
|
||||
ChannelID: channel.ChannelID,
|
||||
ChannelName: channel.ChannelName,
|
||||
Points: userChannel.Points,
|
||||
IsAdmin: userChannel.IsAdmin,
|
||||
}
|
||||
return dto
|
||||
}
|
||||
|
||||
func (d *DbDto) ToDbUser() *DbUser {
|
||||
user := &DbUser{
|
||||
UserID: d.UserID,
|
||||
DisplayName: d.DisplayName,
|
||||
Username: d.Username,
|
||||
}
|
||||
return user
|
||||
}
|
||||
func (d *DbDto) ToDbChannel() *DbChannel {
|
||||
channel := &DbChannel{
|
||||
ChannelID: d.ChannelID,
|
||||
ChannelName: d.ChannelName,
|
||||
}
|
||||
return channel
|
||||
}
|
||||
func (d *DbDto) ToDbUserChannel() *DbUserChannel {
|
||||
userChannel := &DbUserChannel{
|
||||
FkUserId: d.UserID,
|
||||
FkChannelId: d.ChannelID,
|
||||
Points: d.Points,
|
||||
IsAdmin: d.IsAdmin,
|
||||
}
|
||||
return userChannel
|
||||
}
|
33
Database/main.go
Normal file
33
Database/main.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
package Database
|
||||
|
||||
import (
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"log"
|
||||
"time"
|
||||
)
|
||||
|
||||
type DbHandlerType struct {
|
||||
Sqlx *sqlx.DB
|
||||
}
|
||||
|
||||
var DbHandler *DbHandlerType
|
||||
|
||||
func (database *DbHandlerType) ConnectToDb() {
|
||||
DbHandler := &DbHandlerType{}
|
||||
db, err := sqlx.Connect("mysql", "user:Sml12345@(10.0.1.5:3306)/karma")
|
||||
DbHandler.Sqlx = db
|
||||
DbHandler.Sqlx.SetConnMaxLifetime(time.Minute * 5)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
for i := range schema {
|
||||
DbHandler.Sqlx.MustExec(schema[i])
|
||||
}
|
||||
}
|
||||
func (database *DbHandlerType) AddPoint(uid int, cid int) {
|
||||
|
||||
}
|
||||
func (database *DbHandlerType) GetPoints(uid int, cid int) {
|
||||
|
||||
}
|
9
go.mod
Normal file
9
go.mod
Normal file
|
@ -0,0 +1,9 @@
|
|||
module Karma-Telegram-Bot
|
||||
|
||||
go 1.22
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/go-sql-driver/mysql v1.8.1 // indirect
|
||||
github.com/jmoiron/sqlx v1.3.5 // indirect
|
||||
)
|
9
go.sum
Normal file
9
go.sum
Normal file
|
@ -0,0 +1,9 @@
|
|||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
|
||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
||||
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
|
||||
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
|
||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
11
main.go
Normal file
11
main.go
Normal file
|
@ -0,0 +1,11 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
. "Karma-Telegram-Bot/Database"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Go Fast!!")
|
||||
DbHandler.ConnectToDb()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue