github.com/nais/knorten@v0.0.0-20240104110906-55926958e361/pkg/database/queries/events.sql (about)

     1  -- name: EventCreate :exec
     2  INSERT INTO Events (owner, type, payload, status, deadline)
     3  VALUES (@owner,
     4          @type,
     5          @payload,
     6          'new',
     7          @deadline);
     8  
     9  -- name: EventGet :one
    10  SELECT *
    11  FROM Events
    12  WHERE id = @id;
    13  
    14  -- name: EventsByOwnerGet :many
    15  SELECT *
    16  FROM Events
    17  WHERE owner = @owner
    18  ORDER BY updated_at DESC
    19  LIMIT sqlc.narg('lim');
    20  
    21  -- name: EventsProcessingGet :many
    22  SELECT *
    23  FROM events
    24  WHERE status = 'processing'
    25  ORDER BY created_at DESC;
    26  
    27  -- name: EventsUpcomingGet :many
    28  SELECT *
    29  FROM Events
    30  WHERE status = 'new'
    31     OR (status = 'pending' AND updated_at + deadline::interval * retry_count < NOW())
    32  ORDER BY created_at ASC;
    33  
    34  -- name: EventsGetType :many
    35  SELECT *
    36  FROM Events
    37  WHERE type = @event_type;
    38  
    39  -- name: EventSetStatus :exec
    40  UPDATE Events
    41  SET status = @status
    42  WHERE id = @id;
    43  
    44  -- name: EventSetPendingStatus :exec
    45  UPDATE Events
    46  SET status      = 'pending',
    47      retry_count = retry_count + 1
    48  WHERE id = @id;
    49  
    50  -- name: EventLogCreate :exec
    51  INSERT INTO Event_Logs (event_id, log_type, message)
    52  VALUES (@event_id, @log_type, @message);
    53  
    54  -- name: EventLogsForEventGet :many
    55  SELECT *
    56  FROM event_logs
    57  WHERE event_id = @id
    58  ORDER BY created_at DESC;