package app

import (
	"fmt"

	"github.com/iomodo/staff/git"
)

func (a *App) ProposalApproval(body []byte, signature string) error {
	// Validate the webhook signature
	if err := git.ValidateSignature(body, signature, a.config.GitHub.WebhookSecret); err != nil {
		return fmt.Errorf("invalid webhook signature: %w", err)
	}

	// Process the webhook payload
	taskID, err := git.ProcessMergeWebhook(body, signature, a.config.GitHub.WebhookSecret)
	if err != nil {
		return fmt.Errorf("failed to process webhook: %w", err)
	}

	// Log the successful approval
	a.logger.Info("Proposal approved via webhook",
		"task_id", taskID,
	)
	return nil
}
