app

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: CC0-1.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Organization permissions
	UserPermBitEditOrg              = 0
	UserPermBitDeleteOrg            = 1
	UserPermBitChooseAsEventOrg     = 2
	UserPermBitChooseAsEventPartner = 3
	UserPermBitReceiveOrgMsgs       = 4
	UserPermBitManagePermissions    = 5
	UserPermBitManageTeam           = 6

	// Venue permissions
	UserPermBitAddVenue    = 8
	UserPermBitEditVenue   = 9
	UserPermBitDeleteVenue = 10
	UserPermBitChooseVenue = 11

	// Space permissions
	UserPermBitAddSpace    = 16
	UserPermBitEditSpace   = 17
	UserPermBitDeleteSpace = 18

	// Event permissions
	UserPermBitAddEvent          = 24
	UserPermBitEditEvent         = 25
	UserPermBitDeleteEvent       = 26
	UserPermBitReleaseEvent      = 27
	UserPermBitViewEventInsights = 28

	OrgPermBitChooseVenue    = 0
	OrgPermBitChoosePartner  = 1
	OrgPermBitChoosePromoter = 2
	OrgPermBitSeeInsights    = 8
)

Variables

This section is empty.

Functions

func ClampFloat32 added in v0.1.1

func ClampFloat32(v, min, max float32) float32

func ClampInt added in v0.1.1

func ClampInt(v, min, max int) int

func CombineFlags

func CombineFlags(flags []int) uint64

CombineFlags takes a slice of integers representing flag positions and combines them into a single uint64 bitmask.

Each integer in the input slice should be in the range [0, 63], representing a bit position in the 64-bit unsigned integer. The function sets the bit at each of these positions to 1 in the result.

For example, if flags = []int{0, 2, 5}, the result will have bits 0, 2, and 5 set, resulting in a value like: 0b00100101.

Any flag values outside the range [0, 63] are ignored.

Parameters:

  • flags: A slice of integers representing positions of individual flags.

Returns:

  • A uint64 value with the corresponding bits set.

func ComparePasswords

func ComparePasswords(storedHash, password string) error

ComparePasswords compares a plain password with a bcrypt hash

func DeleteFilesWithPrefix added in v0.1.1

func DeleteFilesWithPrefix(dir string, prefix string) (int, error)

DeleteFilesWithPrefix deletes all files in a directory that start with the given prefix. Returns the number of deleted files and an error (if any).

func EncryptPassword

func EncryptPassword(password string) (string, error)

EncryptPassword hashes a password and returns the hashed string along with any error

func FilterNilMap added in v0.1.1

func FilterNilMap[T ~map[string]interface{}](data T) T

FilterNilMap removes nil values from a single map

func GenerateWKT added in v0.1.1

func GenerateWKT(lat, lon float64) (string, error)

GenerateWKT takes lat/lon strings and returns a WKT POINT string

func GetAvatarURL added in v0.1.1

func GetAvatarURL(baseApiURL, imageDir, userUuid string, size int) *string

func IntSliceToCsv added in v0.1.1

func IntSliceToCsv(ids []int) string

func IsValidDateStr

func IsValidDateStr(dateStr string) bool

func IsValidEmail added in v0.1.1

func IsValidEmail(email string) bool

func IsValidIso639_1

func IsValidIso639_1(languageStr string) bool

func JWTMiddleware added in v0.1.1

func JWTMiddleware(gc *gin.Context)

func ParseIntSliceCsv added in v0.1.1

func ParseIntSliceCsv(s string) ([]int, error)

func ReadSVG

func ReadSVG(path string) string

func RemoveFile added in v0.1.1

func RemoveFile(path string) error

RemoveFile deletes a file at the given path. Returns an error if the file cannot be deleted.

func SqlNullBoolToBool

func SqlNullBoolToBool(nb sql.NullBool) bool

Utility function to extract bool from sql.NullBool

func SqlNullBoolToString

func SqlNullBoolToString(nb sql.NullBool) string

Utility function to extract string from sql.NullBool

func SqlNullInt64ToInt

func SqlNullInt64ToInt(n sql.NullInt64) int64

Utility function to extract int64 from sql.NullInt64

func SqlNullInt64ToString

func SqlNullInt64ToString(n sql.NullInt64) string

Utility function to extract string from sql.NullInt64

func SqlNullStringToString

func SqlNullStringToString(ns sql.NullString) string

Utility function to extract string from sql.NullString

func SqlNullTimeToString

func SqlNullTimeToString(nt sql.NullTime) string

Utility function to extract time from sql.NullTime

func ToInt added in v0.1.1

func ToInt(value interface{}) (int, bool)

ToInt converts an interface{} to int safely. Returns the int value and true if successful, false otherwise.

func TruncateAtWord

func TruncateAtWord(s string, maxLength int) string

TruncateAtWord truncates the string at the word boundary

func ValidateOptionalDate added in v0.1.1

func ValidateOptionalDate(fieldName string, value *string) error

ValidateOptionalDate validates an optional date string in the format YYYY-MM-DD. - If the pointer is nil or empty, it is considered valid. - Otherwise, it checks if the value matches the format "2006-01-02".

func ValidateOptionalNonEmptyString added in v0.1.1

func ValidateOptionalNonEmptyString(fieldName string, value *string) error

ValidateOptionalNonEmptyString checks if an optional string pointer is non-empty. - If value is nil, it's considered valid. - If value is non-nil but empty or whitespace-only, it returns an error.

func ValidateOptionalTime added in v0.1.1

func ValidateOptionalTime(fieldName string, value *string) error

ValidateOptionalTime validates an optional time string in the format HH:MM (24-hour). - If the pointer is nil or empty, it is considered valid. - Otherwise, it checks if the value matches the format "15:04".

func ValidateOptionalUrl added in v0.1.1

func ValidateOptionalUrl(fieldName string, value *string) error

ValidateOptionalUrl validates a pointer to a string as a URL. - If the pointer is nil, it's considered valid. - If the string is empty or whitespace, it's considered invalid. - Otherwise, it checks for valid URL format and http/https scheme.

Types

type Claims added in v0.1.1

type Claims struct {
	UserUuid string `json:"user_uuid"`
	jwt.RegisteredClaims
}

Claims struct for JWT

type Config

type Config struct {
	Verbose                     bool     `json:"verbose"`
	DevMode                     bool     `json:"dev_mode"`
	DebugLevel                  int      `json:"debug_level"`
	Port                        int      `json:"port"`
	BaseApiUrl                  string   `json:"base_api_url"`
	IcsDomain                   string   `json:"ics_domain"`
	UseRouterMiddleware         bool     `json:"use_router_middleware"`
	SupportedLanguages          []string `json:"supported_languages"`
	DbHost                      string   `json:"db_host"`
	DbPort                      int      `json:"db_port"`
	DbUser                      string   `json:"db_user"`
	DbPassword                  string   `json:"db_password"`
	DbName                      string   `json:"db_name"`
	DbSchema                    string   `json:"db_schema"`
	SSLMode                     string   `json:"ssl_mode"`
	AllowOrigins                []string `json:"allow_origins"`
	ProfileImageDir             string   `json:"profile_image_dir"`
	ProfileImageQuality         float32  `json:"profile_image_quality"`
	PlutoImageMaxFileSize       int      `json:"pluto_image_max_file_size"`
	PlutoImageMaxPx             int      `json:"pluto_image_max_px"`
	PlutoVerbose                bool     `json:"pluto_verbose"`
	PlutoImageDir               string   `json:"pluto_image_dir"`
	PlutoCacheDir               string   `json:"pluto_cache_dir"`
	JwtSecret                   string   `json:"jwt_secret"`
	SecretKey                   string   `json:"secret_key"`
	AuthTokenExpirationTime     int      `json:"auth_token_expiration_time"`
	AuthSmtpHost                string   `json:"auth_smtp_host"`
	AuthSmtpPort                int      `json:"auth_smtp_port"`
	AuthSmtpLogin               string   `json:"auth_smtp_login"`
	AuthSmtpPassword            string   `json:"auth_smtp_password"`
	AuthReplyEmail              string   `json:"auth_reply_email"`
	AuthResetPasswordUrl        string   `json:"auth_reset_password_url"`
	InvitationExpirationMinutes int      `json:"invitation_expiration_minutes"`
}

Config holds database configuration details

func DefaultConfig added in v0.1.1

func DefaultConfig() Config

func (Config) Print

func (config Config) Print()

type Permissions added in v0.1.7

type Permissions uint64
const (
	// Organization permissions
	UserPermEditOrg              Permissions = 1 << UserPermBitEditOrg
	UserPermDeleteOrg            Permissions = 1 << UserPermBitDeleteOrg
	UserPermChooseAsEventOrg     Permissions = 1 << UserPermBitChooseAsEventOrg
	UserPermChooseAsEventPartner Permissions = 1 << UserPermBitChooseAsEventPartner
	UserPermReceiveOrgMsgs       Permissions = 1 << UserPermBitReceiveOrgMsgs
	UserPermManagePermissions    Permissions = 1 << UserPermBitManagePermissions
	UserPermManageTeam           Permissions = 1 << UserPermBitManageTeam

	// Venue permissions
	UserPermAddVenue    Permissions = 1 << UserPermBitAddVenue
	UserPermEditVenue   Permissions = 1 << UserPermBitEditVenue
	UserPermDeleteVenue Permissions = 1 << UserPermBitDeleteVenue
	UserPermChooseVenue Permissions = 1 << UserPermBitChooseVenue

	// Space permissions
	UserPermAddSpace    Permissions = 1 << UserPermBitAddSpace
	UserPermEditSpace   Permissions = 1 << UserPermBitEditSpace
	UserPermDeleteSpace Permissions = 1 << UserPermBitDeleteSpace

	// Event permissions
	UserPermAddEvent          Permissions = 1 << UserPermBitAddEvent
	UserPermEditEvent         Permissions = 1 << UserPermBitEditEvent
	UserPermDeleteEvent       Permissions = 1 << UserPermBitDeleteEvent
	UserPermReleaseEvent      Permissions = 1 << UserPermBitReleaseEvent
	UserPermViewEventInsights Permissions = 1 << UserPermBitViewEventInsights

	UserPermCombinationAdmin = 0b00011111000001110000111101111111

	OrgPermChooseVenue    Permissions = 1 << OrgPermBitChooseVenue
	OrgPermChoosePartner  Permissions = 1 << OrgPermBitChoosePartner
	OrgPermChoosePromoter Permissions = 1 << OrgPermBitChoosePromoter
	OrgPermSeeInsights    Permissions = 1 << OrgPermBitSeeInsights
)

func (*Permissions) Add added in v0.1.7

func (p *Permissions) Add(flag Permissions)

func (Permissions) Has added in v0.1.7

func (p Permissions) Has(flag Permissions) bool

func (Permissions) HasAll added in v0.1.7

func (p Permissions) HasAll(mask Permissions) bool

HasAll checks if all bits in 'mask' are set in 'p'

func (Permissions) HasAny added in v0.1.7

func (p Permissions) HasAny(mask Permissions) bool

HasAny checks if at least one bit in 'mask' is set in 'p'

func (*Permissions) Remove added in v0.1.7

func (p *Permissions) Remove(flag Permissions)

type SqlQueryItem added in v0.1.1

type SqlQueryItem struct {
	// contains filtered or unexported fields
}

func (*SqlQueryItem) LoadSql added in v0.1.1

func (q *SqlQueryItem) LoadSql(schema string, baseApiUrl string) error

type Uranus

type Uranus struct {
	Version                             string
	APIName                             string
	APIVersion                          string
	MainDbPool                          *pgxpool.Pool
	Config                              Config
	JwtKey                              []byte `json:"jwt_secret"`
	SqlGetOrg                           string
	SqlGetVenue                         string
	SqlGetEvent                         string
	SqlGetEventDateICS                  string
	SqlGetEventDates                    string
	SqlGetEventsProjected               string
	SqlGetEventsGeoJSON                 string
	SqlGetUserOrgPermissions            string
	SqlGetUserEffectiveVenuePermissions string
	SqlGetUserEventPermissions          string
	SqlGetAdminOrg                      string
	SqlInsertOrg                        string
	SqlUpdateOrg                        string
	SqlAdminInvitedOrgTeamMember        string
	SqlAdminInsertInvitedOrgTeamMember  string
	SqlAdminGetVenue                    string
	SqlInsertVenue                      string
	SqlUpdateVenue                      string
	SqlAdminGetSpace                    string
	SqlInsertSpace                      string
	SqlUpdateSpace                      string
	SqlAdminGetEvent                    string
	SqlAdminGetEventTypes               string
	SqlAdminGetEventImages              string
	SqlAdminGetEventLinks               string
	SqlAdminGetEventDates               string
	SqlAdminInsertEventDate             string
	SqlAdminUpdateEventDate             string
	SqlAdminDeleteEvent                 string
	SqlEventTypeGenreLookup             string
	SqlChoosableOrgVenues               string
	SqlChoosableVenueSpaces             string
	SqlChoosableEventTypes              string
	SqlChoosableEventGenres             string
	SqlGetGeojsonVenues                 string
	SqlAdminGetOrgList                  string
	SqlAdminGetOrgPartnerList           string
	SqlAdminGetOrgPartnerRequests       string
	SqlAdminInsertOrgPartnerRequest     string
	SqlAdminChoosableVenues             string
	SqlAdminGetOrgVenues                string
	SqlGetSystemEmailTemplate           string
	SqlAdminGetOrgEvents                string
	SqlAdminGetOrgMemberLink            string
	SqlAdminGetOrgMembers               string
	SqlAdminGetPermissionList           string
	SqlQueryUserOrgEventsOverview       string
	SqlAdminGetUserEventNotifications   string
	SqlAdminChoosableOrgs               string
	SqlAdminChoosableUserEventVenues    string
	SqlAdminEvent                       string
	SqlAdminSpacesForEvent              string
	SqlInsertPlutoImage                 string
	SqlUpdatePlutoImageMeta             string
}
var UranusInstance *Uranus

func Initialize added in v0.1.1

func Initialize(configFilePath string) (*Uranus, error)

func (*Uranus) CheckAllDatabaseConsistency added in v0.1.1

func (uranus *Uranus) CheckAllDatabaseConsistency(ctx context.Context) error

func (*Uranus) CloseAllDBs

func (app *Uranus) CloseAllDBs()

func (*Uranus) DbErrorToHTTP

func (app *Uranus) DbErrorToHTTP(err error) int

Function to convert database errors to HTTP status codes

func (*Uranus) InitMainDB

func (app *Uranus) InitMainDB() error

func (*Uranus) LoadConfig

func (app *Uranus) LoadConfig(fileName string) error

func (*Uranus) Log

func (app *Uranus) Log(msg string)

func (*Uranus) PrepareSql

func (app *Uranus) PrepareSql() error

Jump to

Keyboard shortcuts

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