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 }