- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package contract
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
// ErrOwnerRequired — приём по HTTP дошёл до заведения задачи, а владельца ему не
|
|
// назвали. Значение сентинельное: нести отказу нечего, а имя учётной записи в
|
|
// него не кладётся никогда.
|
|
var ErrOwnerRequired = errors.New("owner is required to accept a record")
|
|
|
|
type JobNotFoundError struct {
|
|
State string
|
|
Message string
|
|
}
|
|
|
|
func (e *JobNotFoundError) Error() string {
|
|
return fmt.Sprintf("%s - %s", e.State, e.Message)
|
|
}
|
|
|
|
// LostAcquisitionError — захват задачи за время работы шага достался другому.
|
|
// Шаг, получивший его, завершается без записи результата: иначе два воркера
|
|
// пишут в одну запись по очереди, портя её результат, и счётчик отказов
|
|
// сбрасывает тот, кто уже не владелец.
|
|
type LostAcquisitionError struct {
|
|
JobID string
|
|
}
|
|
|
|
func (e *LostAcquisitionError) Error() string {
|
|
return fmt.Sprintf("%s: job acquisition lost", e.JobID)
|
|
}
|
|
|
|
type NoopJobError struct {
|
|
State string
|
|
}
|
|
|
|
func (e *NoopJobError) Error() string {
|
|
return fmt.Sprintf("%s: no op job occur", e.State)
|
|
}
|