moosicbox_admin_htmx

Crates.iomoosicbox_admin_htmx
lib.rsmoosicbox_admin_htmx
version0.1.4
created_at2024-10-04 16:46:44.762247+00
updated_at2025-07-21 20:01:10.200544+00
descriptionMoosicBox admin htmx package
homepage
repositoryhttps://github.com/MoosicBox/MoosicBox
max_upload_size
id1396787
size135,711
Braden Steffaniak (BSteffaniak)

documentation

README

MoosicBox Admin HTMX

Basic HTMX API endpoints for administration functionality in MoosicBox.

Overview

The MoosicBox Admin HTMX package provides:

  • API Endpoints: Basic REST endpoints for administrative operations
  • Service Integration: Interfaces with Qobuz and Tidal streaming services
  • Scan Management: Library scan control and status endpoints
  • Info Retrieval: System information and status endpoints

Current Implementation

Available API Modules

  • Scan API: Control music library scanning operations
  • Info API: Retrieve system and server information
  • Qobuz API: Qobuz streaming service integration endpoints
  • Tidal API: Tidal streaming service integration endpoints
  • Utilities: Common API utilities and helpers

Features

  • Library Scanning: Trigger and monitor library scans
  • Service Status: Check status of integrated streaming services
  • System Info: Basic system information retrieval
  • Error Handling: Structured error responses
  • HTMX Integration: Designed to work with HTMX frontend requests

Installation

From Source

# Clone and build
git clone https://github.com/MoosicBox/MoosicBox.git
cd MoosicBox
cargo build --package moosicbox_admin_htmx

Usage

API Endpoints

The package provides REST API endpoints that can be integrated into a web server:

use moosicbox_admin_htmx::api;

// Example integration (actual web server setup depends on your framework)
// GET /admin/scan/status - Get scan status
// POST /admin/scan/start - Start library scan
// GET /admin/info - Get system info
// GET /admin/qobuz/status - Check Qobuz service status
// GET /admin/tidal/status - Check Tidal service status

Scan Operations

# Check scan status
curl http://localhost:8000/admin/scan/status

# Start a library scan
curl -X POST http://localhost:8000/admin/scan/start

# Get scan progress
curl http://localhost:8000/admin/scan/progress

Service Status

# Check Qobuz service status
curl http://localhost:8000/admin/qobuz/status

# Check Tidal service status
curl http://localhost:8000/admin/tidal/status

# Get system information
curl http://localhost:8000/admin/info

Development

Building

# Build the library
cargo build --package moosicbox_admin_htmx

# Build with API feature
cargo build --package moosicbox_admin_htmx --features api

API Development

The package provides modular API endpoints:

use moosicbox_admin_htmx::api::{scan, info, qobuz, tidal};

// Endpoints are organized by functionality:
// - scan: Library scanning operations
// - info: System information
// - qobuz: Qobuz service integration
// - tidal: Tidal service integration
// - util: Common utilities

Implementation Notes

  • Currently provides API endpoints only (no web interface)
  • Designed for HTMX frontend integration
  • Modular structure allows selective feature usage
  • Error handling follows standard HTTP response patterns
  • Built with async/await support for non-blocking operations

Future Development

The package is structured to support future expansion into:

  • Full web administration interface
  • User management functionality
  • Configuration management
  • Real-time status monitoring
  • Dashboard implementation

Contributing

To contribute to this package:

  1. Focus on the API modules in src/api/
  2. Follow the existing pattern for new endpoints
  3. Ensure proper error handling and response formatting
  4. Add tests for new functionality
  5. Update documentation for new endpoints
Commit count: 5735

cargo fmt