change to GORM, add member and rank handlers
This commit is contained in:
113
api/db/trainingEvent.go
Normal file
113
api/db/trainingEvent.go
Normal file
@@ -0,0 +1,113 @@
|
||||
package db
|
||||
|
||||
/*
|
||||
DDL
|
||||
|
||||
CREATE TABLE `course_events` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`course_id` int(11) DEFAULT NULL,
|
||||
`event_type` int(11) DEFAULT NULL,
|
||||
`event_date` datetime NOT NULL,
|
||||
`guilded_event_id` int(11) DEFAULT NULL,
|
||||
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
|
||||
`updated_at` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
||||
`deleted` tinyint(4) DEFAULT 0,
|
||||
`report_url` varchar(2048) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `fk_course_events_event_type_id` (`event_type`) USING BTREE,
|
||||
KEY `courseId` (`course_id`) USING BTREE,
|
||||
CONSTRAINT `fk_coures_events_course_id` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_course_events_event_type_id` FOREIGN KEY (`event_type`) REFERENCES `event_types` (`id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;
|
||||
*/
|
||||
|
||||
type TrainingEvent struct {
|
||||
ObjectBase
|
||||
EventType int `json:"event_type"`
|
||||
EventDate string `json:"event_date"`
|
||||
GuildedEventID int `json:"guilded_event_id"`
|
||||
ReportURL string `json:"report_url"`
|
||||
|
||||
Course Course `json:"course" gorm:"references:ID; foreignkey:CourseID"`
|
||||
CourseID int `json:"course_id"`
|
||||
}
|
||||
|
||||
// Get one by id
|
||||
func (te *TrainingEvent) GetByID(id int) error {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.First(te, id).Error
|
||||
return err
|
||||
}
|
||||
|
||||
// Get all
|
||||
func (te *TrainingEvent) GetAll() ([]TrainingEvent, error) {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tes []TrainingEvent
|
||||
err = db.Find(&tes).Error
|
||||
return tes, err
|
||||
}
|
||||
|
||||
// Get all by course
|
||||
func (te *TrainingEvent) GetAllByCourse(courseID int) ([]TrainingEvent, error) {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tes []TrainingEvent
|
||||
err = db.Where("course_id = ?", courseID).Find(&tes).Error
|
||||
return tes, err
|
||||
}
|
||||
|
||||
// Create
|
||||
func (te *TrainingEvent) Create() error {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.Create(te).Error
|
||||
return err
|
||||
}
|
||||
|
||||
// Update
|
||||
func (te *TrainingEvent) Update() error {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.Save(te).Error
|
||||
return err
|
||||
}
|
||||
|
||||
// Delete
|
||||
func (te *TrainingEvent) Delete() error {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.Delete(te).Error
|
||||
return err
|
||||
}
|
||||
|
||||
// Get all by date range
|
||||
func (te *TrainingEvent) GetByDateRange(start string, end string) ([]TrainingEvent, error) {
|
||||
db, err := GetDB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tes []TrainingEvent
|
||||
err = db.Where("event_date BETWEEN ? AND ?", start, end).Find(&tes).Error
|
||||
return tes, err
|
||||
}
|
||||
Reference in New Issue
Block a user