mirror of
https://github.com/pushbits/server.git
synced 2025-04-30 02:36:53 +02:00
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package database
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/pushbits/server/internal/assert"
|
|
"github.com/pushbits/server/internal/model"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// CreateApplication creates an application.
|
|
func (d *Database) CreateApplication(application *model.Application) error {
|
|
return d.gormdb.Create(application).Error
|
|
}
|
|
|
|
// DeleteApplication deletes an application.
|
|
func (d *Database) DeleteApplication(application *model.Application) error {
|
|
return d.gormdb.Delete(application).Error
|
|
}
|
|
|
|
// UpdateApplication updates an application.
|
|
func (d *Database) UpdateApplication(application *model.Application) error {
|
|
return d.gormdb.Save(application).Error
|
|
}
|
|
|
|
// GetApplicationByID returns the application with the given ID or nil.
|
|
func (d *Database) GetApplicationByID(ID uint) (*model.Application, error) {
|
|
var application model.Application
|
|
|
|
err := d.gormdb.First(&application, ID).Error
|
|
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, err
|
|
}
|
|
|
|
assert.Assert(application.ID == ID)
|
|
|
|
return &application, err
|
|
}
|
|
|
|
// GetApplicationByToken returns the application with the given token or nil.
|
|
func (d *Database) GetApplicationByToken(token string) (*model.Application, error) {
|
|
var application model.Application
|
|
|
|
err := d.gormdb.Where("token = ?", token).First(&application).Error
|
|
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
return nil, err
|
|
}
|
|
|
|
assert.Assert(application.Token == token)
|
|
|
|
return &application, err
|
|
}
|