| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package handlers
- import (
- "log/slog"
- "net/http"
- )
- // ExpressionsHandler handles Web AIM API expressions/buddy icon endpoints.
- type ExpressionsHandler struct {
- Logger *slog.Logger
- }
- // NewExpressionsHandler creates a new ExpressionsHandler.
- func NewExpressionsHandler(logger *slog.Logger) *ExpressionsHandler {
- return &ExpressionsHandler{
- Logger: logger,
- }
- }
- // Get handles GET /expressions/get requests for buddy icons and expressions.
- func (h *ExpressionsHandler) Get(w http.ResponseWriter, r *http.Request) {
- // Parse parameters
- format := r.URL.Query().Get("f")
- targetUser := r.URL.Query().Get("t")
- expressionType := r.URL.Query().Get("type")
- h.Logger.Debug("expressions/get request",
- "format", format,
- "target", targetUser,
- "type", expressionType,
- )
- // For redirect format, return a 404 (no buddy icon)
- // In a real implementation, this would redirect to the actual icon URL
- if format == "redirect" {
- w.WriteHeader(http.StatusNotFound)
- return
- }
- // For other formats, return an empty response indicating no expressions
- response := map[string]interface{}{
- "response": map[string]interface{}{
- "statusCode": 200,
- "statusText": "OK",
- "data": map[string]interface{}{
- "expressions": []interface{}{},
- },
- },
- }
- // Send response in requested format
- SendResponse(w, r, response, h.Logger)
- }
|