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