Ok, updated patchset at https://gerrit.wikimedia.org/r/#/c/7832/
Thoughts? Worth adding more structure or is this good enough?
JSON output looks like this (config portion is now optional, leave it out to just get a list of campaigns):
{
"uploadcampaign": {
"campaigns": [
{
"name": "wlm-fake",
"id": 1,
"isenabled": 0,
"config": {
"autoCategories": [
"AutoCat1",
"AutoCat2"
],
"autoWikiText": "",
"defaultAlt": "",
"defaultCategories": [
"ListCat1",
"ListCat2"
],
"defaultDescription": "",
"defaultLat": "",
"defaultLon": "",
"defaultOwnWorkLicence": "cc-by-sa-3.0",
"headerLabelPage": "",
"idField": "",
"idFieldInitialValue": "",
"idFieldLabel": "",
"idFieldLabelPage": "",
"idFieldMaxLength": "25",
"licensesOwnWork": [
"cc-by-sa-3.0",
"cc-by-3.0",
"cc-zero"
],
"ownWorkOption": "choice",
"skipTutorial": "",
"thanksLabelPage": "",
"tutorialHelpdeskCoords": "27, 1319, 691, 1384",
"tutorialTemplate": "Licensing_tutorial_$1.svg",
"tutorialWidth": "720"
}
}
]
}
}
or xml:<api> <uploadcampaign> <campaigns> <campaign> <name xml:space="preserve">wlm-fake</name> <id xml:space="preserve">1</id> <isenabled xml:space="preserve">0</isenabled> <config> <autoCategories> <category>AutoCat1</category> <category>AutoCat2</category> </autoCategories> <autoWikiText xml:space="preserve" /> <defaultAlt xml:space="preserve" /> <defaultCategories> <category>ListCat1</category> <category>ListCat2</category> </defaultCategories> <defaultDescription xml:space="preserve" /> <defaultLat xml:space="preserve" /> <defaultLon xml:space="preserve" /> <defaultOwnWorkLicence xml:space="preserve">cc-by-sa-3.0</defaultOwnWorkLicence> <headerLabelPage xml:space="preserve" /> <idField xml:space="preserve" /> <idFieldInitialValue xml:space="preserve" /> <idFieldLabel xml:space="preserve" /> <idFieldLabelPage xml:space="preserve" /> <idFieldMaxLength xml:space="preserve">25</idFieldMaxLength> <licensesOwnWork> <license>cc-by-sa-3.0</license> <license>cc-by-3.0</license> <license>cc-zero</license> </licensesOwnWork> <ownWorkOption xml:space="preserve">choice</ownWorkOption> <skipTutorial xml:space="preserve" /> <thanksLabelPage xml:space="preserve" /> <tutorialHelpdeskCoords xml:space="preserve">27, 1319, 691, 1384</tutorialHelpdeskCoords> <tutorialTemplate xml:space="preserve">Licensing_tutorial_$1.svg</tutorialTemplate> <tutorialWidth xml:space="preserve">720</tutorialWidth> </config> </campaign> </campaigns> </uploadcampaign> </api>
(The xml:space="preserve"s all come in from the framework, I didn't add em!)
-- brion