Documentation ¶
Overview ¶
device
diary
forum
post
Package db содержит необходимое API для работы с базой данных PostgreSQL с использованием библиотеки gorm ¶
resource
school
student
user
Index ¶
- Constants
- type Database
- func (db *Database) CheckPassword(userName string, schoolID int, pass string) (bool, error)
- func (db *Database) Close() error
- func (db *Database) GetSchoolPermission(id int) (bool, error)
- func (db *Database) GetSchools() ([]School, error)
- func (db *Database) GetStudentClassID(userName string, schoolID int, studentID int) (string, error)
- func (db *Database) GetUserAuthData(userName string, schoolID int) (*cp.School, error)
- func (db *Database) GetUserPermission(userName string, schoolID int) (bool, error)
- func (db *Database) GetUserProfile(userName string, schoolID int) (*dt.Profile, error)
- func (db *Database) GetUserUID(userName string, schoolID int) (string, error)
- func (db *Database) MarkMailRead(userName string, schoolID int, section int, ID int) error
- func (db *Database) PseudoDeleteDevice(userName string, schoolID int, token string, systemType int) error
- func (db *Database) PseudoDeleteUser(userName string, schoolID int) error
- func (db *Database) TaskMarkDone(userName string, schoolID int, AID, CID, TP int) error
- func (db *Database) TaskMarkSeen(userName string, schoolID int, AID, CID, TP int) error
- func (db *Database) TaskMarkUndone(userName string, schoolID int, AID, CID, TP int) error
- func (db *Database) UpdateLessons(userName string, schoolID int, studentID int, week *dt.TimeTable) error
- func (db *Database) UpdateMailStatuses(userName string, schoolID int, section int, emailsList *dt.EmailsList) (*getMailResponse, error)
- func (db *Database) UpdatePosts(userName string, schoolID int, ps *dt.Posts) error
- func (db *Database) UpdatePostsStatuses(userName string, schoolID int, themeID int, topics *dt.ForumThemeMessages) error
- func (db *Database) UpdatePushSettings(userName string, schoolID int, systemType int, token string, marks, tasks int, ...) error
- func (db *Database) UpdatePushTime(userName string, schoolID int, token string, systemType int, minutes int) error
- func (db *Database) UpdateTasksStatuses(userName string, schoolID int, studentID int, week *dt.WeekSchoolMarks) error
- func (db *Database) UpdateTopicsStatuses(userName string, schoolID int, themes *dt.ForumThemesList) error
- func (db *Database) UpdateUser(login string, passkey string, schoolID int, token string, systemType int, ...) error
- type Day
- type Device
- type ForumPost
- type ForumTopic
- type Lesson
- type Letter
- type MailMessage
- type Post
- type Resource
- type ResourceGroup
- type ResourceSubgroup
- type School
- type Student
- type Task
- type User
Constants ¶
const ( IOS Android )
Типы систем устройств
const ( MarksNotificationAll MarksNotificationImportant MarksNotificationDisabled )
Типы оповещений об оценках
const ( TasksNotificationAll TasksNotificationHome TasksNotificationDisabled )
Типы оповещений о заданиях
const ( StatusTaskNew StatusTaskSeen StatusTaskDone )
Статусы заданий
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Database ¶
Database struct представляет абстрактную структуру базы данных
func NewDatabase ¶
NewDatabase создает Database и возвращает указатель на неё
func (*Database) CheckPassword ¶
CheckPassword сверяет пароль с хранящимся в БД
func (*Database) GetSchoolPermission ¶
GetSchoolPermission проверяет разрешение школы на работу с сервисом
func (*Database) GetSchools ¶
GetSchools возвращает информацию о всех поддерживаемых школах
func (*Database) GetStudentClassID ¶
GetStudentClassID получает classID ученика
func (*Database) GetUserAuthData ¶
GetUserAuthData возвращает данные для повторной удаленной авторизации пользователя
func (*Database) GetUserPermission ¶
GetUserPermission проверяет разрешение пользователя на работу с сервисом
func (*Database) GetUserProfile ¶
GetUserProfile возвращает профиль пользователя
func (*Database) GetUserUID ¶
GetUserUID получает UserUID пользователя
func (*Database) MarkMailRead ¶
MarkMailRead меняет статус письма на прочитанное
func (*Database) PseudoDeleteDevice ¶
func (db *Database) PseudoDeleteDevice(userName string, schoolID int, token string, systemType int) error
PseudoDeleteDevice псевдоудаляет девайс пользователя
func (*Database) PseudoDeleteUser ¶
PseudoDeleteUser псевдоудаляет пользователя
func (*Database) TaskMarkDone ¶
TaskMarkDone меняет статус задания на "Выполненное"
func (*Database) TaskMarkSeen ¶
TaskMarkSeen меняет статус задания на "Просмотренное"
func (*Database) TaskMarkUndone ¶
TaskMarkUndone меняет статус задания на "Просмотренное"
func (*Database) UpdateLessons ¶
func (db *Database) UpdateLessons(userName string, schoolID int, studentID int, week *dt.TimeTable) error
UpdateLessons добавляет в БД несуществующие уроки в расписании
func (*Database) UpdateMailStatuses ¶
func (db *Database) UpdateMailStatuses(userName string, schoolID int, section int, emailsList *dt.EmailsList) (*getMailResponse, error)
UpdateMailStatuses добавляет в БД несуществующие сообщения почты и обновляет статусы
func (*Database) UpdatePosts ¶
UpdatePosts добавляет в БД несуществующие объявления и обновляет их статусы
func (*Database) UpdatePostsStatuses ¶
func (db *Database) UpdatePostsStatuses(userName string, schoolID int, themeID int, topics *dt.ForumThemeMessages) error
UpdatePostsStatuses добавляет в БД несуществующие сообщения форума и обновляет статусы
func (*Database) UpdatePushSettings ¶
func (db *Database) UpdatePushSettings(userName string, schoolID int, systemType int, token string, marks, tasks int, reports, schedule, mail, forum, resources bool) error
UpdatePushSettings обновляет настройки предпочтений устройства по поводу push уведомлений
func (*Database) UpdatePushTime ¶
func (db *Database) UpdatePushTime(userName string, schoolID int, token string, systemType int, minutes int) error
UpdatePushTime обновляет время, до которого не беспокоить пользователя push-уведомлениями
func (*Database) UpdateTasksStatuses ¶
func (db *Database) UpdateTasksStatuses(userName string, schoolID int, studentID int, week *dt.WeekSchoolMarks) error
UpdateTasksStatuses добавляет в БД несуществующие ДЗ и обновляет статусы заданий из пакета WeekSchoolMarks
func (*Database) UpdateTopicsStatuses ¶
func (db *Database) UpdateTopicsStatuses(userName string, schoolID int, themes *dt.ForumThemesList) error
UpdateTopicsStatuses добавляет в БД несуществующие темы форума и обновляет статусы
type Day ¶
type Day struct { gorm.Model StudentID uint // parent id Date string `sql:"size:255"` Tasks []Task // has-many relation Lessons []Lesson // has-many relation }
Day struct представляет структуру дня с дз
type Device ¶
type Device struct { gorm.Model UserID uint // parent id SystemType int // android/ios Token string // unique device token (FCM) DoNotDisturbUntil *time.Time // для push MarksNotification int `sql:"DEFAULT:1"` TasksNotification int `sql:"DEFAULT:1"` ReportsNotification bool `sql:"DEFAULT:true"` ScheduleNotification bool `sql:"DEFAULT:true"` MailNotification bool `sql:"DEFAULT:true"` ForumNotification bool `sql:"DEFAULT:true"` ResourcesNotification bool `sql:"DEFAULT:true"` JustRegistered bool `sql:"DEFAULT:true"` // for not to ddos with pushes at first login }
Device struct представляет структуру устройства, которое будет получать push-уведомления
type ForumPost ¶
type ForumPost struct { gorm.Model ForumTopicID uint // parent id Date string Author string Message string Unread bool }
ForumPost struct представляет структуру сообщения в теме на форуме
type ForumTopic ¶
type ForumTopic struct { gorm.Model UserID uint // parent id NetschoolID int Date string Creator string Title string Unread bool Answers int Posts []ForumPost // has-many relation }
ForumTopic struct представляет структуру темы на форуме
type Lesson ¶
type Lesson struct { gorm.Model DayID uint // parent id Begin string End string Name string Classroom string }
Lesson struct представляет структуру урока в расписании
type Letter ¶
type Letter struct { Date string `json:"date"` ID int `json:"id"` Author string `json:"author"` Topic string `json:"topic"` Unread bool `json:"unread"` }
Letter используется в getMailResponse
type MailMessage ¶
type MailMessage struct { gorm.Model UserID uint // parent id NetschoolID int Date string Author string Topic string Section int Unread bool }
MailMessage struct представляет структуру сообщения на почте
type Post ¶
type Post struct { gorm.Model UserID uint // parent id Unread bool Author string Title string Date string Message string File string FileName string }
Post struct представляет структуру объявления
type Resource ¶
type Resource struct { gorm.Model OwnerID uint // parent id OwnerType string // parent polymorhic type Name string Link string }
Resource struct представляет структуру школьного ресурса
type ResourceGroup ¶
type ResourceGroup struct { gorm.Model SchoolID uint // belongs-to relation Title string Resources []Resource `gorm:"polymorphic:Owner;"` ResourceSubgroups []ResourceSubgroup // has-many relation }
ResourceGroup struct представляет структуру группы ресурсов
type ResourceSubgroup ¶
type ResourceSubgroup struct { gorm.Model ResourceGroupID uint Title string Resources []Resource `gorm:"polymorphic:Owner;"` }
ResourceSubgroup struct представляет структуру подгруппы ресурсов
type School ¶
type School struct { gorm.Model Name string `sql:"size:255;unique"` Type int // тип netschool'а Initials string `sql:"size:255"` Address string `sql:"size:255;unique"` Permission bool `sql:"DEFAULT:true"` Users []User // has-many relation }
School struct представляет структуру записи школы
type Student ¶
type Student struct { gorm.Model UserID uint // parent id Name string `sql:"size:255"` NetSchoolID int // id ученика в системе NetSchool ClassID string // id класса, в котором учится ученик Days []Day // has-many relation }
Student struct представляет структуру ученика
type Task ¶
type Task struct { gorm.Model DayID uint // parent id CID int AID int TP int Status int // новое\просмотренное\выполненное InTime bool Name string // название предмета Title string // тема Type string Mark string Weight string Author string }
Task struct представляет структуру задания
type User ¶
type User struct { gorm.Model SchoolID uint // parent id UID int Login string `sql:"size:255;index"` Password string `sql:"size:255"` Permission bool `sql:"DEFAULT:false"` FirstName string `sql:"size:255"` LastName string `sql:"size:255"` TrueLogin string `sql:"size:255"` Role string `sql:"size:255"` Year string `sql:"size:255"` Students []Student // has-many relation Devices []Device // has-many relation ForumTopics []ForumTopic // has-many relation MailMessages []MailMessage // has-many relation Posts []Post // has-many realtion }
User struct представляет структуру записи пользователя