| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import { needsArgumentForm } from './needsArgumentForm.js'
- const nonStorableArgumentTypes = new Set([
- 'password',
- 'very_dangerous_raw_string'
- ])
- function isNonStorableArgumentType (type) {
- return nonStorableArgumentTypes.has(type)
- }
- export function logEntryArgumentsToStartActionArgs (logEntry) {
- return (logEntry?.arguments ?? []).map((arg) => ({
- name: arg.name,
- value: arg.value
- }))
- }
- export function rerunNeedsArgumentForm (action, logEntry) {
- if (action?.justification && !logEntry?.justification) {
- return true
- }
- if (!needsArgumentForm(action)) {
- return false
- }
- return hasMissingRerunArguments(action, logEntry?.arguments ?? [])
- }
- export function hasMissingRerunArguments (action, storedArgs) {
- const stored = new Map(storedArgs.map((arg) => [arg.name, arg.value]))
- for (const arg of action?.arguments ?? []) {
- if (isNonStorableArgumentType(arg.type)) {
- return true
- }
- if (arg.required && !stored.has(arg.name)) {
- return true
- }
- }
- return false
- }
- export function buildArgumentFormQuery (logEntry) {
- const query = {}
- for (const arg of logEntry?.arguments ?? []) {
- query[arg.name] = arg.value
- }
- return query
- }
- export function buildRerunStartActionArgs (bindingId, logEntry, action) {
- const startActionArgs = {
- bindingId,
- arguments: logEntryArgumentsToStartActionArgs(logEntry)
- }
- if (action?.justification && logEntry?.justification) {
- startActionArgs.justification = logEntry.justification
- }
- return startActionArgs
- }
|