Semaphore/db/Store.go

113 lines
3.8 KiB
Go
Raw Normal View History

package db
import (
"errors"
2020-12-04 23:22:05 +01:00
log "github.com/Sirupsen/logrus"
"github.com/go-gorp/gorp/v3"
2020-12-04 23:22:05 +01:00
"time"
)
2020-12-07 13:13:59 +01:00
2020-12-04 23:22:05 +01:00
const databaseTimeFormat = "2006-01-02T15:04:05:99Z"
// GetParsedTime returns the timestamp as it will retrieved from the database
// This allows us to create timestamp consistency on return values from create requests
func GetParsedTime(t time.Time) time.Time {
parsedTime, err := time.Parse(databaseTimeFormat, t.Format(databaseTimeFormat))
if err != nil {
log.Error(err)
}
return parsedTime
}
type RetrieveQueryParams struct {
Offset int
Count int
SortBy string
SortInverted bool
}
var ErrNotFound = errors.New("sql: no rows in result set")
var ErrInvalidOperation = errors.New("sql: no rows in result set")
var Forbidden = errors.New("sql: no rows in result set")
type Store interface {
Connect() error
Close() error
Migrate() error
GetEnvironment(projectID int, environmentID int) (Environment, error)
GetEnvironments(projectID int, params RetrieveQueryParams) ([]Environment, error)
UpdateEnvironment(env Environment) error
CreateEnvironment(env Environment) (Environment, error)
DeleteEnvironment(projectID int, templateID int) error
DeleteEnvironmentSoft(projectID int, templateID int) error
2020-12-07 13:13:59 +01:00
GetInventory(projectID int, inventoryID int) (Inventory, error)
GetInventories(projectID int, params RetrieveQueryParams) ([]Inventory, error)
UpdateInventory(inventory Inventory) error
CreateInventory(inventory Inventory) (Inventory, error)
2020-12-07 20:48:52 +01:00
DeleteInventory(projectID int, inventoryID int) error
DeleteInventorySoft(projectID int, inventoryID int) error
GetRepository(projectID int, repositoryID int) (Repository, error)
GetRepositories(projectID int, params RetrieveQueryParams) ([]Repository, error)
UpdateRepository(repository Repository) error
CreateRepository(repository Repository) (Repository, error)
DeleteRepository(projectID int, repositoryID int) error
DeleteRepositorySoft(projectID int, repositoryID int) error
2020-12-08 08:23:33 +01:00
GetAccessKey(projectID int, accessKeyID int) (AccessKey, error)
GetAccessKeys(projectID int, params RetrieveQueryParams) ([]AccessKey, error)
UpdateAccessKey(accessKey AccessKey) error
CreateAccessKey(accessKey AccessKey) (AccessKey, error)
DeleteAccessKey(projectID int, accessKeyID int) error
DeleteAccessKeySoft(projectID int, accessKeyID int) error
2020-12-07 13:13:59 +01:00
GetUsers(params RetrieveQueryParams) ([]User, error)
CreateUser(user User) (User, error)
DeleteUser(userID int) error
UpdateUser(user User) error
SetUserPassword(userID int, password string) error
GetUser(userID int) (User, error)
GetProject(projectID int) (Project, error)
GetProjects(userID int) ([]Project, error)
CreateProject(project Project) (Project, error)
DeleteProject(projectID int) error
UpdateProject(project Project) error
GetTemplates(projectID int, params RetrieveQueryParams) ([]Template, error)
CreateTemplate(template Template) (Template, error)
UpdateTemplate(template Template) error
GetTemplate(projectID int, templateID int) (Template, error)
DeleteTemplate(projectID int, templateID int) error
GetProjectUsers(projectID int) ([]ProjectUser, error)
CreateProjectUser(projectUser ProjectUser) (ProjectUser, error)
DeleteProjectUser(projectID, userID int) error
GetProjectUser(projectID, userID int) (ProjectUser, error)
CreateEvent(event Event) (Event, error)
GetAPITokens(userID int) ([]APIToken, error)
CreateAPIToken(token APIToken) (APIToken, error)
GetAPIToken(tokenID string) (APIToken, error)
ExpireAPIToken(userID int, tokenID string) error
GetSession(userID int, sessionID int) (Session, error)
ExpireSession(userID int, sessionID int) error
TouchSession(userID int, sessionID int) error
2020-12-16 21:57:54 +01:00
2020-12-17 12:52:00 +01:00
GetUserEvents(userID int, params RetrieveQueryParams) ([]Event, error)
2020-12-16 21:57:54 +01:00
GetEvents(projectID int, params RetrieveQueryParams) ([]Event, error)
Sql() *gorp.DbMap
}
2020-12-07 20:48:52 +01:00