app

package
v0.0.0-...-8317582 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateToken

func GenerateToken() string

GenerateToken генерация токена

Types

type App

type App struct {
	Conf *Config
	// contains filtered or unexported fields
}

App структура главного приложения

func NewApp

func NewApp() *App

NewApp структура приложения

func (*App) Init

func (a *App) Init()

Init инициализация приложения и ключевые настройки

func (*App) InitConfig

func (a *App) InitConfig()

InitConfig загрузка всех необходимых настроек

func (*App) InitDB

func (a *App) InitDB()

InitDB initial database

func (*App) RunServer

func (a *App) RunServer()

RunServer запуск сервера

func (*App) SetupRouter

func (a *App) SetupRouter() *gin.Engine

SetupRouter полечение роутов для API

type Config

type Config struct {
	DB      DBConfig        `json:"db"`
	Secrets *PasswordConfig `json:"-"`
}

Config основные настройки

type DBConfig

type DBConfig struct {
	DBType     string `json:"db"` //  "mysql", "postres", "sqlite"
	DBName     string `json:"name"`
	DBUser     string `json:"user"`
	DBPassword string `json:"password"`
	DBHost     string `json:"host"`
	DBPort     string `json:"port"`
}

DBConfig настройки для базы данных

type ErrorRequest

type ErrorRequest struct {
	Error   string                 `json:"error"`
	Message string                 `json:"message"`
	Errors  map[string]interface{} `json:"errors"`
}

ErrorRequest ошибки в случаи их возникновения

type ImageDB

type ImageDB struct {
	gorm.Model
	Source  string   `gorm:"type:text"`
	Hash    string   `gorm:"size:60;index"`
	UserKey UserDB   `gorm:"foreignKey:Avatar"`
	PostKey []PostDB `gorm:"many2many:posts_image"`
}

ImageDB структура для хранения картинок

type LikeDB

type LikeDB struct {
	gorm.Model
	UserID int
	PostID int
}

LikeDB лайки

type MessageDB

type MessageDB struct {
	gorm.Model
	Text   string `gorm:"type:text"`
	Room   int
	UserID int
}

MessageDB структура для хранения сообщений

type PasswordConfig

type PasswordConfig struct {
	DBPassword string `json:"db_password"`
	AESKey     string `json:"aes_key"`
}

PasswordConfig конфиг для паролей и ключей

type PostDB

type PostDB struct {
	gorm.Model
	Likies []LikeDB `gorm:"foreignKey:PostID"`
	Text   string   `gorm:"type:text"`
	UserID int
}

PostDB для постов

type RoomDB

type RoomDB struct {
	gorm.Model
	Name       string      `gorm:"size:20"`
	Hash       string      `gorm:"size:100"`
	MessageKey []MessageDB `gorm:"foreignKey:Room"`
}

RoomDB структура комнаты

type SignInUser

type SignInUser struct {
	Login    string `json:"login"`
	Password string `json:"password"`
}

SignInUser структура для входа в систему

type SignUpUser

type SignUpUser struct {
	Name     string `json:"name"`
	Login    string `json:"login"`
	Password string `json:"password"`
}

SignUpUser структура принимающая параметры для регистрации

type User

type User struct {
	Name       string
	Conn       *websocket.Conn
	PrivateKey *rsa.PrivateKey
}

User структура пользователя подключившегося по вебсокету

func (*User) NewUser

func (u *User) NewUser(name string, conn *websocket.Conn) *User

NewUser создание струкутры пользователя

type UserDB

type UserDB struct {
	gorm.Model
	Login    string `gorm:"size:30"`
	Name     string `gorm:"size:30;index"`
	Password string `gorm:"size:60"`
	Admin    bool
	Avatar   int
	Token    string      `gorm:"size:100;index"`
	Rooms    []RoomDB    `gorm:"many2many:user_rooms"`
	Messages []MessageDB `gorm:"foreignKey:UserID"`
	Posts    []PostDB    `gorm:"foreignKey:UserID"`
	Likies   []LikeDB    `gorm:"foreignKey:UserID"`
}

UserDB таблица пользователей для БД

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL