From 316bbcfede9a4fd20c096b11b65deb753d971eae Mon Sep 17 00:00:00 2001 From: jomu Date: Thu, 5 Feb 2015 18:03:36 +0000 Subject: [PATCH] added delete command to lists and to usergroups --- .../sharepoint/api/ServiceLogHandler.java | 4 +- .../shared/sharepoint/api/lists/SPList.java | 53 ++++++++++++++++--- .../shared/sharepoint/api/lists/SPLists.java | 2 +- .../shared/sharepoint/api/sites/SPSite.java | 2 +- .../sharepoint/api/usergroup/SPUserGroup.java | 51 +++++++++++++++++- .../main/resources/2010/wsdl/usergroup.wsdl | 10 ++-- .../api/usergroup/SPUserGroupTest.java | 10 +++- 7 files changed, 115 insertions(+), 17 deletions(-) diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/ServiceLogHandler.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/ServiceLogHandler.java index 7688cc9..11bec30 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/ServiceLogHandler.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/ServiceLogHandler.java @@ -40,6 +40,7 @@ public class ServiceLogHandler implements SOAPHandler { @Override public boolean handleMessage(SOAPMessageContext arg0) { + /* // TODO make configrable via logger SOAPMessage message = arg0.getMessage(); boolean isOutboundMessage = (Boolean) arg0.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (isOutboundMessage) { @@ -52,7 +53,8 @@ public class ServiceLogHandler implements SOAPHandler { System.out.println(); } catch (SOAPException | IOException e) { // TODO add error handling - } + } + */ return true; } diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java index a94fcc1..f1d0e1a 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java @@ -138,8 +138,7 @@ public class SPList extends SPJaxbObject { KeyManagementException, JAXBException, MalformedURLException, SAXException, ParserConfigurationException, IOException { SPBatch batch = new SPBatch(getContext()); - for (Integer batchId = 1; batchId <= dataList.size(); - batchId++) { + for (Integer batchId = 1; batchId <= dataList.size(); batchId++) { Method method = new Method(); method.setID(batchId); method.setCmd(MethodType.NEW); @@ -156,11 +155,22 @@ public class SPList extends SPJaxbObject { }); batch.addMethod(method); } - UpdateListItems.Updates updates = new UpdateListItems.Updates(); - Node node = batch.createSharePointCAMLNode(); - updates.getContent().add(node); - getListsPort().updateListItems(getValue().name, updates); + executeUpdate(batch); + + } + + public void removeListItem(Map dataMap) throws JAXBException, ParserConfigurationException, NoSuchAlgorithmException, + SAXException, KeyManagementException, IOException { + java.util.List> dataList = new ArrayList<>(); + dataList.add(dataMap); + removeListItems(dataList); + } + + public void removeListItems(java.util.List> dataList) throws JAXBException, ParserConfigurationException, NoSuchAlgorithmException, + SAXException, KeyManagementException, IOException { + SPBatch batch = createBatch(dataList, MethodType.DELETE); + executeUpdate(batch); } /* *** information & tools *** */ @@ -249,6 +259,37 @@ public class SPList extends SPJaxbObject { } } + private SPBatch createBatch(java.util.List> dataList, MethodType methodType) throws JAXBException { + SPBatch batch = new SPBatch(getContext()); + for (Integer batchId = 1; batchId <= dataList.size(); batchId++) { + Method method = new Method(); + method.setID(batchId); + method.setCmd(methodType); + Map data = dataList.get(batchId - 1); + data.keySet().stream(). + map((String key) -> { + Field field = new Field(); + field.setName(key.replace(" ", "_x0020_")); + field.setContent(data.get(key)); + return field; + }). + forEach((Field field) -> { + method.getFields().add(field); + }); + batch.addMethod(method); + } + return batch; + } + + private void executeUpdate(SPBatch batch) throws ParserConfigurationException, NoSuchAlgorithmException, SAXException, KeyManagementException, IOException, + JAXBException { + UpdateListItems.Updates updates = new UpdateListItems.Updates(); + Node node = batch.createSharePointCAMLNode(); + updates.getContent().add(node); + + getListsPort().updateListItems(getValue().name, updates); + } + /* *** unsorted *** */ } diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPLists.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPLists.java index cab649b..a405324 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPLists.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPLists.java @@ -108,7 +108,7 @@ public class SPLists extends SPJaxbObject - + @@ -27,7 +27,7 @@ - + @@ -43,7 +43,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -83,7 +83,7 @@ - + diff --git a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java index 8186a49..732c64a 100644 --- a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java +++ b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java @@ -33,7 +33,15 @@ public class SPUserGroupTest extends BaseTest { @Ignore // Depends on available sharepoint currently public void testAddUserToGroup() throws Exception { SPUserGroup ug = new SPUserGroup(context); - ug.addUserToGroup("wincor-nixdorf\\joern.muehlencord", "Test Group"); + ug.addUserToGroup("wincor-nixdorf\\joern.muehlencord", "Test Group"); + } + + @Test + public void testIsUserMemberOfGroup() throws Exception { + SPUserGroup ug = new SPUserGroup(context); + boolean result = ug.isUserMemberOfGroup("wincor-nixdorf\\joern.muehlencord", "HQ All Members"); + assertEquals ("HQ All membership", true, result); + } }