models

package
v0.0.0-...-245198b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2020 License: LGPL-2.1 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Comment

type Comment struct {
	ID       int           `db:"id" json:"id"`
	TicketID int           `db:"ticketID" json:"ticketID"`
	AuthorID int           `db:"authorID" json:"authorID"`
	Content  string        `db:"content" json:"description"`
	Date     FormattedDate `db:"cdate" json:"date"`
}

type CommentRepository

type CommentRepository interface {
	FindCommentsByTicketID(ID int) (*[]Comment, error)
	CreateComment(request *NewCommentRequest) (sql.Result, error)
}

type DetailedCommentResponse

type DetailedCommentResponse struct {
	ID      int           `db:"id" json:"id"`
	Content string        `db:"content" json:"description"`
	Date    FormattedDate `json:"date"`
	Author  *User         `json:"author"`
}

type DetailedTicketResponse

type DetailedTicketResponse struct {
	ID          int           `json:"id"`
	Title       string        `json:"title"`
	Status      string        `json:"status"`
	Description string        `json:"description"`
	Date        FormattedDate `json:"date"`
	Author      User          `json:"author"`
	Assigned    *User         `json:"assigned"`
	Team        *TeamResponse `json:"team"`
}

type FormattedDate

type FormattedDate time.Time

func (FormattedDate) MarshalJSON

func (s FormattedDate) MarshalJSON() ([]byte, error)

func (FormattedDate) UnmarshalJSON

func (s FormattedDate) UnmarshalJSON(b []byte) error

type NewCommentRequest

type NewCommentRequest struct {
	TicketID    int    `json:"ticket_id"`
	AuthorID    int    `json:"authorID"`
	Description string `json:"description" binding:"required"`
}

type NewSessionRequest

type NewSessionRequest struct {
	Email    string `json:"email" form:"email"  binding:"required"`
	Password string `json:"password" form:"password"  binding:"required"`
}

type NewTicketRequest

type NewTicketRequest struct {
	Title       string `json:"title"  binding:"required"`
	Description string `json:"description"  binding:"required"`
	Author      *User  `json:"author" binding:"required"`
}

type NewUserRequest

type NewUserRequest struct {
	Name            string `json:"name" form:"name"  binding:"required"`
	Email           string `json:"email" form:"email"  binding:"required"`
	Password        string `json:"password" form:"password"  binding:"required"`
	ConfirmPassword string `json:"confirm_pass" form:"confirm_pass"  binding:"required"`
}

type Session

type Session struct {
	ID      string    `json:"glitchfix_session_id" binding:"required"`
	Expires time.Time `db:"expires" json:"expires" binding:"required"`
	UserID  int       `db:"userID"`
}

type SessionRepository

type SessionRepository interface {
	CreateSession(userID int) (*Session, error)
	DeleteSession(sessionID string) (sql.Result, error)
	GetSessionUser(sessionID string) (int, bool)
	IsSessionValid(sessionID string) (exists bool, fresh bool)
}

type Team

type Team struct {
	ID    int           `db:"id" json:"id"`
	Name  string        `db:"name" json:"name"`
	Users []User        `json:"users"`
	Date  FormattedDate `db:"cdate" json:"date"`
}

type TeamRepository

type TeamRepository interface {
	FindByID(ID int) (*TeamResponse, error)
	FindByName(name string) (*[]Team, error)
	CreateTeam(teamInfo *TeamRequest) (sql.Result, error)
	GetAllTeams() (*[]Team, error)
	UpdateTeam(team *Team) error
}

type TeamRequest

type TeamRequest struct {
	Name string `db:"name" json:"name"`
}

type TeamResponse

type TeamResponse struct {
	ID    int    `db:"id" json:"id"`
	Name  string `db:"name" json:"name"`
	Users []User `json:"users"`
}

func GenerateTeamResponse

func GenerateTeamResponse(id int, name string, users []User) *TeamResponse

type Ticket

type Ticket struct {
	ID             int           `db:"id" json:"id"`
	AuthorID       int           `db:"authorID" json:"authorID"`
	AssignedID     *int          `db:"assignedID" json:"assignedID"`
	AssignedTeamID *int          `db:"assignedTeamID" json:"assignedTeamID"`
	Author         *User         `json:author`
	Assigned       *User         `json:assigned`
	Team           *Team         `json:Team`
	Title          string        `db:"title" json:"title"`
	Status         string        `db:"status" json:"status"`
	Description    string        `db:"description" json:"description"`
	Date           FormattedDate `db:"cdate" json:"date"`
}

type TicketRepository

type TicketRepository interface {
	FindByID(ID int) (*[]Ticket, error)
	CreateTicket(ticket *NewTicketRequest) (sql.Result, error)
	GetAllTickets() (*[]Ticket, error)
	UpdateTicket(ticket *Ticket) error
}

type UpdateUserRequest

type UpdateUserRequest struct {
	Name            string `json:"name" form:"name"`
	TeamID          int32  `json:"team_id" form:"team_id"`
	Email           string `json:"email" form:"email"`
	CurrentPassword string `json:"current_pass" form:"current_pass"`
	Password        string `json:"password" form:"password"`
	ConfirmPassword string `json:"confirm_pass" form:"confirm_pass"`
}

type UpdateUserSQL

type UpdateUserSQL struct {
	ID       int
	TeamID   sql.NullInt32
	Name     sql.NullString
	Email    sql.NullString
	Password sql.NullString
}

type UpdateUserTeam

type UpdateUserTeam struct {
	TeamID int32 `json:"team_id" form:"team_id"  binding:"required"`
}

type User

type User struct {
	ID     int    `db:"id" json:"id" form:"id"`
	TeamID *int   `db:"teamID" json:"team_id" form:"team_id"`
	Name   string `json:"name" form:"name"  binding:"required"`
	Email  string `json:"email" form:"email"  binding:"required"`
}

type UserHash

type UserHash struct {
	ID   int    `db:"id" json:"id" form:"id"`
	Hash string `db:"hash"`
}

type UserRepository

type UserRepository interface {
	FindByID(ID int) (*[]User, error)
	CreateUser(request *NewUserRequest) (sql.Result, error)
	GetAllUsers() (*[]User, error)
	GetUsersByName(sUserName string) (*[]User, error)
	UsernameOrEmailExists(name, email string) bool
	UpdateByID(request *UpdateUserSQL) (sql.Result, error)
	UpdateTeam(userId int, teamId sql.NullInt32) (sql.Result, error)
	GetHashByID(ID int) (*UserHash, error)
	GetHashByEmail(email string) (*UserHash, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL