handlers
import "github.com/nickrucinski/cloverapi/internal/handlers"
handlers/storage.go
Index
- func AnonymousAuthHandler(c *gin.Context)
- func CheckAndRegisterUser(c *gin.Context)
- func CreateClass(c *gin.Context)
- func DeleteClass(c *gin.Context)
- func DeleteUser(c *gin.Context)
- func ExportAllData(c *gin.Context)
- func GetAClass(c *gin.Context)
- func GetAIUsage(c *gin.Context)
- func GetAllClasses(c *gin.Context)
- func GetAllErrorsHandler(c *gin.Context)
- func GetAllLogs(c *gin.Context)
- func GetClassesByInstructor(c *gin.Context)
- func GetClassesByStudent(c *gin.Context)
- func GetLogsByClassID(c *gin.Context)
- func GetLogsByUserID(c *gin.Context)
- func GetSuggestionByModeAndId(c *gin.Context)
- func GetUser(c *gin.Context)
- func GetUserSuggestionLogsByMode(c *gin.Context)
- func GetUsers(c *gin.Context)
- func HandleImageDelete(c *gin.Context)
- func HandleImageUpload(c *gin.Context)
- func HandleLogin(c *gin.Context)
- func HandleLogsForInstructor(c *gin.Context)
- func HandleSignUp(c *gin.Context)
- func HandleSuggestion(c *gin.Context)
- func HandleUpdateUserSettings(c *gin.Context)
- func InitStorageService()
- func LogSuggestionEvent(c *gin.Context)
- func LogUserEvent(c *gin.Context)
- func LogUserTyping(c *gin.Context)
- func NotImplementedHandler(c *gin.Context)
- func ProviderHandler(c *gin.Context)
- func RegisterClass(c *gin.Context)
- func UnregisterClass(c *gin.Context)
- func UpdateClass(c *gin.Context)
- func UpdateClassStudentsSettings(c *gin.Context)
- func UpdateEnrollmentStatus(c *gin.Context)
- func UpdatePassword(c *gin.Context)
- func UpdateUser(c *gin.Context)
- func UpdateUserStatus(c *gin.Context)
- type AIStat
- type AnonymousRequest
- type CheckUserRequest
- type ImageUploadResponse
- type LogUserTypingStatsRequest
- type RegisterClassRequest
- type StorageService
- func GetStorageService() *StorageService
- func (s *StorageService) CreateBucket(ctx context.Context) error
- func (s *StorageService) DeleteImage(ctx context.Context, imagePath string) error
- func (s *StorageService) UploadImage(ctx context.Context, file multipart.File, header *multipart.FileHeader, userID string) (*ImageUploadResponse, error)
- type SuggestionRequest
- type SupabaseErrorResponse
- type SupabaseStorageResponse
- type UpdateStudentsSettingsRequest
func AnonymousAuthHandler
func AnonymousAuthHandler(c *gin.Context)
func CheckAndRegisterUser
func CheckAndRegisterUser(c *gin.Context)
func CreateClass
func CreateClass(c *gin.Context)
func DeleteClass
func DeleteClass(c *gin.Context)
func DeleteUser
func DeleteUser(c *gin.Context)
DeleteUser godoc @Summary Delete a user by ID @Description Deletes a user and their associated data based on the user ID. @Tags Users @Param user_id path string true "User ID" @Success 200 {object} map[string]string "message": "User deleted successfully", "user_id": "string" @Router /api/v1/users/{user_id} [delete]
func ExportAllData
func ExportAllData(c *gin.Context)
func GetAClass
func GetAClass(c *gin.Context)
func GetAIUsage
func GetAIUsage(c *gin.Context)
func GetAllClasses
func GetAllClasses(c *gin.Context)
func GetAllErrorsHandler
func GetAllErrorsHandler(c *gin.Context)
@Summary GetAllErrorsHandler retrieves all logged errors @Description Fetches all error logs from the database @Tags Logger @Accept json @Produce json @Success 200 {array} logger.API_Error "List of error logs" @Failure 500 {object} map[string]string "error" @Router /api/v1/logger/ [get]
func GetAllLogs
func GetAllLogs(c *gin.Context)
func GetClassesByInstructor
func GetClassesByInstructor(c *gin.Context)
func GetClassesByStudent
func GetClassesByStudent(c *gin.Context)
GetClassesByStudent godoc @Summary Get classes by student ID @Description Retrieves all classes a specific student is enrolled in. @Tags Users @Produce json @Param student_id path string true "Student ID" @Success 200 {array} models.Class @Failure 400 {object} map[string]string "error": "User ID is required" @Failure 500 {object} map[string]string "error": "DB query failed" or "error": "Scan error" @Router /api/v1/users/{student_id}/classes [get]
func GetLogsByClassID
func GetLogsByClassID(c *gin.Context)
func GetLogsByUserID
func GetLogsByUserID(c *gin.Context)
func GetSuggestionByModeAndId
func GetSuggestionByModeAndId(c *gin.Context)
func GetUser
func GetUser(c *gin.Context)
GetUser godoc @Summary Get a user by ID @Description Retrieves user details based on the user ID. @Tags Users @Param user_id path string true "User ID" @Success 200 {object} models.User @Router /api/v1/users/{user_id} [get]
func GetUserSuggestionLogsByMode
func GetUserSuggestionLogsByMode(c *gin.Context)
func GetUsers
func GetUsers(c *gin.Context)
GetUsers godoc @Summary Get all users @Description Retrieves all user's details. @Tags Users @Success 200 {array} models.User @Router /api/v1/users/ [get]
func HandleImageDelete
func HandleImageDelete(c *gin.Context)
HandleImageDelete handles the image deletion endpoint HandleImageDelete handles the image deletion endpoint
func HandleImageUpload
func HandleImageUpload(c *gin.Context)
HandleImageUpload handles the image upload endpoint with debug logging
func HandleLogin
func HandleLogin(c *gin.Context)
func HandleLogsForInstructor
func HandleLogsForInstructor(c *gin.Context)
func HandleSignUp
func HandleSignUp(c *gin.Context)
func HandleSuggestion
func HandleSuggestion(c *gin.Context)
func HandleUpdateUserSettings
func HandleUpdateUserSettings(c *gin.Context)
HandleUpdateUserSettings godoc @Summary Update user settings @Description Updates the settings for a specific user based on their ID. @Tags Users @Accept json @Produce json @Param user_id path string true "User ID" @Param settings body models.UserSettings true "User Settings Payload" @Success 200 {object} map[string]string "message": "Settings updated" @Failure 400 {object} map[string]string "error": "UserID is required" or "error": "Invalid settings payload" @Failure 500 {object} map[string]string "error": "Failed to update settings" @Router /api/v1/users/{user_id}/settings [put]
func InitStorageService
func InitStorageService()
func LogSuggestionEvent
func LogSuggestionEvent(c *gin.Context)
func LogUserEvent
func LogUserEvent(c *gin.Context)
func LogUserTyping
func LogUserTyping(c *gin.Context)
func NotImplementedHandler
func NotImplementedHandler(c *gin.Context)
func ProviderHandler
func ProviderHandler(c *gin.Context)
func RegisterClass
func RegisterClass(c *gin.Context)
func UnregisterClass
func UnregisterClass(c *gin.Context)
func UpdateClass
func UpdateClass(c *gin.Context)
func UpdateClassStudentsSettings
func UpdateClassStudentsSettings(c *gin.Context)
func UpdateEnrollmentStatus
func UpdateEnrollmentStatus(c *gin.Context)
func UpdatePassword
func UpdatePassword(c *gin.Context)
func UpdateUser
func UpdateUser(c *gin.Context)
UpdateUser godoc @Summary Update a user by ID @Description Updates a user's details based on the user ID. Fields are optional. @Tags Users @Accept json @Produce json @Param user_id path string true "User ID" @Success 200 {object} map[string]string "message": "User updated successfully", "user_id": "string" @Failure 400 {object} map[string]string "error": "Invalid request body" or "error": "User ID is required" @Failure 404 {object} map[string]string "error": "User not found" @Failure 500 {object} map[string]string "error": "Failed to update user" or "error": "Failed to update user in auth" @Router /api/v1/users/{user_id} [patch]
func UpdateUserStatus
func UpdateUserStatus(c *gin.Context)
@Summary Update user status @Description Updates the status of a user based on the user ID. @Tags Users @Accept json @Produce json @Param user_id path string true "User ID" @Param request body models.UserStatus true "User Status Update Request" @Success 200 {object} map[string]string "message: User status updated, user: <user_id>" @Failure 400 {object} map[string]string "error: Invalid request body" @Failure 500 {object} map[string]string "error: Failed to update user status"
type AIStat
type AIStat struct {
ID int `json:"id"`
CreatedAt time.Time `json:"created_at"`
InputTokens int `json:"input_tokens"`
OutputTokens int `json:"output_tokens"`
TotalTokens int `json:"total_tokens"`
LatencySeconds float32 `json:"latency_seconds"`
Model string `json:"model"`
Provider string `json:"provider"`
}
type AnonymousRequest
type AnonymousRequest struct {
Code string `json:"code"`
}
type CheckUserRequest
type CheckUserRequest struct {
Email string `json:"email"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
UserID string `json:"id"`
}
type ImageUploadResponse
type ImageUploadResponse struct {
Success bool `json:"success"`
ImageURL string `json:"image_url,omitempty"`
ImagePath string `json:"image_path,omitempty"`
Error string `json:"error,omitempty"`
}
type LogUserTypingStatsRequest
LogUserTypingStatsRequest represents the request body for logging typing statistics
type LogUserTypingStatsRequest struct {
TypedNumber int `json:"typed_number"`
AcceptedNumber int `json:"accepted_number"`
SuggestionID *string `json:"suggestion_id,omitempty"`
SuggestionLineID *string `json:"suggestion_line_id,omitempty"`
SuggestionSelectionItemID *string `json:"suggestion_selection_item_id,omitempty"`
}
type RegisterClassRequest
type RegisterClassRequest struct {
ClassID string `json:"classId" binding:"required"`
UserID string `json:"userId" binding:"required"`
}
type StorageService
type StorageService struct {
// contains filtered or unexported fields
}
func GetStorageService
func GetStorageService() *StorageService
func (*StorageService) CreateBucket
func (s *StorageService) CreateBucket(ctx context.Context) error
Create storage bucket (call this once during setup)
func (*StorageService) DeleteImage
func (s *StorageService) DeleteImage(ctx context.Context, imagePath string) error
Delete image from Supabase Storage using HTTP API
func (*StorageService) UploadImage
func (s *StorageService) UploadImage(ctx context.Context, file multipart.File, header *multipart.FileHeader, userID string) (*ImageUploadResponse, error)
Upload image to Supabase Storage using HTTP API
type SuggestionRequest
type SuggestionRequest struct {
Prompt string `json:"prompt"`
UserID string `json:"userId"`
HasBug bool `json:"hasBug"`
ClassID *string `json:"classId,omitempty"`
Language string `json:"language"`
}
type SupabaseErrorResponse
type SupabaseErrorResponse struct {
Error string `json:"error"`
Message string `json:"message"`
}
type SupabaseStorageResponse
type SupabaseStorageResponse struct {
Key string `json:"Key"`
}
type UpdateStudentsSettingsRequest
type UpdateStudentsSettingsRequest struct {
StudentIDs []string `json:"studentIds" binding:"required"`
Settings models.UserSettings `json:"settings" binding:"required"`
}
Generated by gomarkdoc