-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlists.js
More file actions
71 lines (67 loc) · 2.27 KB
/
Copy pathlists.js
File metadata and controls
71 lines (67 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import * as formDefinition from '~/src/api/forms/repositories/form-definition-repository.js'
import { callSessionTransaction } from '~/src/api/forms/service/callSessionTransaction.js'
/**
* Add a list of new lists to the draft form definition
* @param {string} formId
* @param {List[]} lists
* @param {FormMetadataAuthor} author
*/
export async function addListsToDraftFormDefinition(formId, lists, author) {
const listStr = lists.map((list) => list.name).join(', ')
return callSessionTransaction(
formId,
(session) => formDefinition.addLists(formId, lists, session),
author,
{
start: `Adding lists ${listStr} on Form Definition (draft) for form ID ${formId}`,
end: `Added lists ${listStr} on Form Definition (draft) for form ID ${formId}`,
fail: `Failed to add lists ${listStr} on Form Definition (draft) for form ID ${formId}`
}
)
}
/**
* Update a list on the draft form definition
* @param {string} formId
* @param {string} listId
* @param {List} list
* @param {FormMetadataAuthor} author
*/
export async function updateListOnDraftFormDefinition(
formId,
listId,
list,
author
) {
return callSessionTransaction(
formId,
(session) => formDefinition.updateList(formId, listId, list, session),
author,
{
start: `Updating list ${listId} on Form Definition (draft) for form ID ${formId}`,
end: `Updated list ${listId} on Form Definition (draft) for form ID ${formId}`,
fail: `Failed to update list ${listId} on Form Definition (draft) for form ID ${formId}`
}
)
}
/**
* Remove a list from the draft form definition
* @param {string} formId
* @param {string} listId
* @param {FormMetadataAuthor} author
*/
export async function removeListOnDraftFormDefinition(formId, listId, author) {
await callSessionTransaction(
formId,
(session) => formDefinition.removeList(formId, listId, session),
author,
{
start: `Removing list ${listId} on Form Definition (draft) for form ID ${formId}`,
end: `Removed list ${listId} on Form Definition (draft) for form ID ${formId}`,
fail: `Failed to remove list ${listId} on Form Definition (draft) for form ID ${formId}`
}
)
}
/**
* @import { FormMetadataAuthor, List } from '@defra/forms-model'
* @import { ClientSession } from 'mongodb'
*/