--- /dev/null
+package com.pentila.entSavoie.dashboard.widgets;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.portlet.ResourceRequest;
+
+import com.liferay.portal.kernel.exception.PortalException;
+import com.liferay.portal.kernel.exception.SystemException;
+import com.liferay.portal.kernel.json.JSONArray;
+import com.liferay.portal.kernel.json.JSONFactoryUtil;
+import com.liferay.portal.kernel.json.JSONObject;
+import com.liferay.portal.kernel.log.Log;
+import com.liferay.portal.kernel.log.LogFactoryUtil;
+import com.liferay.portal.kernel.util.ParamUtil;
+import com.liferay.portal.kernel.util.WebKeys;
+import com.liferay.portal.model.Group;
+import com.liferay.portal.model.User;
+import com.liferay.portal.service.ServiceContext;
+import com.liferay.portal.service.ServiceContextFactory;
+import com.liferay.portal.theme.ThemeDisplay;
+import com.liferay.portal.util.PortalUtil;
+import com.pentila.entSavoie.blogEntryInfos.service.NewsWidgetsLocalServiceUtil;
+import com.pentila.entSavoie.dashboard.widgets.json.JSONUtil;
+
+public class NewsUtil {
+
+ private static Log logger = LogFactoryUtil.getLog(NewsUtil.class);
+
+ public static JSONObject deleteNews(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ long blogEntryInfoId = ParamUtil.getLong(resourceRequest, "blogEntryInfosId");
+ boolean isWelcomePage = ParamUtil.getBoolean(resourceRequest, "isWelcomePage");
+ User user = PortalUtil.getUser(resourceRequest);
+ result = NewsWidgetsLocalServiceUtil.deleteNews(blogEntryInfoId, isWelcomePage, user);
+ } catch (PortalException e) {
+ logger.error("Can't get current user, delete news cancel", e);
+ } catch (SystemException e) {
+ logger.error("Can't get current user, delete news cancel", e);
+ }
+ return result;
+ }
+
+
+ public static JSONObject addNews(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ SimpleDateFormat classicDateFormat = new SimpleDateFormat("dd/MM/yyyy");
+ String title = ParamUtil.getString(resourceRequest, "title");
+ String content = ParamUtil.getString(resourceRequest, "content");
+ Boolean headMaster = ParamUtil.getBoolean(resourceRequest, "headMaster");
+ Boolean highPriority = ParamUtil.getBoolean(resourceRequest, "highPriority");
+ long imageId = ParamUtil.getLong(resourceRequest, "imageId", 0);
+ long mediaFileId = ParamUtil.getLong(resourceRequest, "mediaFileId", 0);
+ Boolean priority = ParamUtil.getBoolean(resourceRequest, "priority");
+ Date releaseDate = classicDateFormat.parse(resourceRequest.getParameter("releaseDate"));
+ Date expireDate = classicDateFormat.parse(resourceRequest.getParameter("expireDate"));
+ JSONArray grpsIdsJSON = JSONFactoryUtil.createJSONArray(ParamUtil.getString(resourceRequest, "grpIds"));
+ JSONArray attachFilesJSON = JSONFactoryUtil.createJSONArray(ParamUtil.getString(resourceRequest, "attachFiles"));
+ ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
+ User user = PortalUtil.getUser(resourceRequest);
+ ServiceContext serviceContext = ServiceContextFactory.getInstance(
+ Group.class.getName(), resourceRequest);
+
+ result = NewsWidgetsLocalServiceUtil.addNews(title,
+ content,
+ headMaster,
+ highPriority,
+ priority,
+ imageId,
+ mediaFileId,
+ JSONUtil.convertJSONArrayToLongArray(grpsIdsJSON),
+ JSONUtil.convertJSONArrayToLongArray(attachFilesJSON),
+ releaseDate,
+ expireDate,
+ user,
+ themeDisplay,
+ serviceContext);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, add news cancel", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, add news cancel", e);
+ } catch (Exception e) {
+ result.put("success", false);
+ logger.error("Can't parse some date, add news cancel", e);
+ }
+ return result;
+ }
+
+ public static JSONObject editNews(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ //***on recup le name, la desc et le type
+ SimpleDateFormat classicDateFormat = new SimpleDateFormat("dd/MM/yyyy");
+ long blogEntryInfoId = ParamUtil.getLong(resourceRequest, "blogEntryInfoId");
+ String title = ParamUtil.getString(resourceRequest, "title");
+ String content = ParamUtil.getString(resourceRequest, "content");
+ Boolean headMaster = ParamUtil.getBoolean(resourceRequest, "headMaster");
+ Boolean highPriority = ParamUtil.getBoolean(resourceRequest, "highPriority");
+ Boolean priority = ParamUtil.getBoolean(resourceRequest, "priority");
+ long imageId = ParamUtil.getLong(resourceRequest, "imageId", 0);
+ long existingImageId = ParamUtil.getLong(resourceRequest, "existingImageId", 0);
+ long mediaFileId = ParamUtil.getLong(resourceRequest, "mediaFileId", 0);
+ Boolean deleteCurrentMedia = ParamUtil.getBoolean(resourceRequest, "deleteCurrentMedia");
+ JSONArray grpIds = JSONFactoryUtil.createJSONArray(ParamUtil.getString(resourceRequest, "grpIds"));
+ JSONArray newAttachFiles = JSONFactoryUtil.createJSONArray(ParamUtil.getString(resourceRequest, "newAttachFiles"));
+ JSONArray existingAttachFiles = JSONFactoryUtil.createJSONArray(ParamUtil.getString(resourceRequest, "existingAttachFiles"));
+ Boolean isWelcomePage = ParamUtil.getBoolean(resourceRequest, "isWelcomePage");
+ Date releaseDate = classicDateFormat.parse(resourceRequest.getParameter("releaseDate"));
+ Date expireDate = classicDateFormat.parse(resourceRequest.getParameter("expireDate"));
+ ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
+ User user = PortalUtil.getUser(resourceRequest);
+ ServiceContext serviceContext = ServiceContextFactory.getInstance(
+ Group.class.getName(), resourceRequest);
+
+ result = NewsWidgetsLocalServiceUtil.editNews(blogEntryInfoId,
+ title,
+ content,
+ headMaster,
+ highPriority,
+ priority,
+ imageId,
+ existingImageId,
+ mediaFileId,
+ deleteCurrentMedia,
+ JSONUtil.convertJSONArrayToLongArray(grpIds),
+ JSONUtil.convertJSONArrayToLongArray(newAttachFiles),
+ JSONUtil.convertJSONArrayToStringArray(existingAttachFiles),
+ isWelcomePage,
+ releaseDate,
+ expireDate,
+ user,
+ themeDisplay,
+ serviceContext);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, add news cancel", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, add news cancel", e);
+ } catch (Exception e) {
+ result.put("success", false);
+ logger.error("Can't parse some date, add news cancel", e);
+ }
+ return result;
+ }
+
+
+ public static JSONObject getUserNewsPermissionsAndContext(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+
+ try {
+ Group scopeGroup = ((ThemeDisplay)resourceRequest.getAttribute(
+ WebKeys.THEME_DISPLAY)).getScopeGroup();
+ User user = PortalUtil.getUser(resourceRequest);
+ result = NewsWidgetsLocalServiceUtil.getUserNewsPermissionsAndContext(scopeGroup, user);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, get user permission and context cancel", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, get user permission and context cancel", e);
+ }
+ return result;
+ }
+
+
+ public static JSONObject getAllNews(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ boolean isWelcomePage = ParamUtil.getBoolean(resourceRequest, "isWelcomePage", false);
+ int startLimit = ParamUtil.getInteger(resourceRequest, "startLimit", 0);
+ int endLimit = ParamUtil.getInteger(resourceRequest, "endLimit", 10);
+ boolean getNewsGroup = ParamUtil.getBoolean(resourceRequest, "getNewsGroup", false);
+ boolean getNewsHM = ParamUtil.getBoolean(resourceRequest, "getNewsHM", false);
+ boolean getNewsHighPriority = ParamUtil.getBoolean(resourceRequest, "getNewsHighPriority", false);
+ ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
+ Long scopeGroupId = PortalUtil.getScopeGroupId(resourceRequest);
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ result = NewsWidgetsLocalServiceUtil.getAllNews(currentUser, scopeGroupId,
+ startLimit, endLimit, isWelcomePage,
+ getNewsGroup, getNewsHM, getNewsHighPriority, themeDisplay);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, get user permission and context cancel", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, get user permission and context cancel", e);
+ }
+ return result;
+ }
+
+ public static JSONObject validateHighPrioNewsRead(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ long blogEntryInfosId = ParamUtil.getLong(resourceRequest, "blogEntryInfosId");
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ result = NewsWidgetsLocalServiceUtil.validateHighPrioNewsRead(blogEntryInfosId, currentUser);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ }
+ return result;
+ }
+
+ public static JSONObject getDelegate(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ result = NewsWidgetsLocalServiceUtil.getDelegate(currentUser);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ }
+ return result;
+ }
+
+ public static JSONObject validateDelegate(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ JSONArray usersToDelegate = JSONFactoryUtil.createJSONArray(
+ ParamUtil.getString(resourceRequest, "usersToDelegate"));
+ result = NewsWidgetsLocalServiceUtil.validateDelegate(currentUser, usersToDelegate);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ }
+ return result;
+ }
+
+ public static JSONObject sendToDropbox(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ long blogEntryInfosId = ParamUtil.getLong(resourceRequest, "blogEntryInfosId");
+ String fileName = ParamUtil.getString(resourceRequest, "fileName");
+ result = NewsWidgetsLocalServiceUtil.sendToDropbox(blogEntryInfosId, fileName, currentUser);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on read validation ", e);
+ }
+ return result;
+ }
+
+ public static JSONObject getBroadcastGroups(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ String filter = ParamUtil.getString(resourceRequest, "filter");
+ result = NewsWidgetsLocalServiceUtil.getBroadcastGroup(filter, currentUser);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on get broadcas group ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on get broadcas group ", e);
+ }
+ return result;
+ }
+
+ public static JSONObject getUserListAvalaibleForDelegation(ResourceRequest resourceRequest){
+ JSONObject result = JSONFactoryUtil.createJSONObject();
+ try {
+ User currentUser = PortalUtil.getUser(resourceRequest);
+ ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
+ result = NewsWidgetsLocalServiceUtil.getUserListAvalaibleForDelegation(themeDisplay, currentUser);
+ } catch (PortalException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on get user avalaible for delegation ", e);
+ } catch (SystemException e) {
+ result.put("success", false);
+ logger.error("Can't get current user, on get user avalaible for delegation ", e);
+ }
+ return result;
+ }
+
+}