rustploy 0.1.3

Rustploy PaaS daemon — lightweight self-hosted deployment platform
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! `Command::RegenerateWebhookToken`: gera um token novo de webhook para o
//! serviço e devolve a URL nova.

use crate::{bootstrap::state::AppState, store::webhook_tokens};
use shared::Response as RpResponse;
use tracing::error;

pub async fn handle(state: AppState, service_id: String) -> RpResponse {
    let token = webhook_tokens::generate_token();

    if let Err(e) = webhook_tokens::upsert(&state.db, &service_id, &token).await {
        error!(service_id = %service_id, error = %e, "failed to upsert webhook token");
        return RpResponse::err("DatabaseError", e.to_string());
    }

    let url = super::get_webhook_url::build_url(&state, &service_id, &token);
    RpResponse::WebhookUrl(Some(url))
}