You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/03/21 14:07:25 UTC

[openmeetings] branch master updated: [OPENMEETINGS-1857] 'hash' method of room service is fixed

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 9e93ede  [OPENMEETINGS-1857] 'hash' method of room service is fixed
9e93ede is described below

commit 9e93ededc9d06a3886d3b378f030315d999bc3af
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Mar 21 21:06:55 2018 +0700

    [OPENMEETINGS-1857] 'hash' method of room service is fixed
---
 .../openmeetings/db/dto/room/InvitationDTO.java    | 63 ++++++++++++++++++----
 .../openmeetings/webservice/TestRoomService.java   | 35 ++++++++++++
 2 files changed, 87 insertions(+), 11 deletions(-)

diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
index e24cac9..7503567 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
@@ -37,6 +37,8 @@ import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.github.openjson.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class InvitationDTO implements Serializable {
@@ -65,72 +67,81 @@ public class InvitationDTO implements Serializable {
 		return email;
 	}
 
-	public void setEmail(String email) {
+	public InvitationDTO setEmail(String email) {
 		this.email = email;
+		return this;
 	}
 
 	public String getFirstname() {
 		return firstname;
 	}
 
-	public void setFirstname(String firstname) {
+	public InvitationDTO setFirstname(String firstname) {
 		this.firstname = firstname;
+		return this;
 	}
 
 	public String getLastname() {
 		return lastname;
 	}
 
-	public void setLastname(String lastname) {
+	public InvitationDTO setLastname(String lastname) {
 		this.lastname = lastname;
+		return this;
 	}
 
 	public String getMessage() {
 		return message;
 	}
 
-	public void setMessage(String message) {
+	public InvitationDTO setMessage(String message) {
 		this.message = message;
+		return this;
 	}
 
 	public String getSubject() {
 		return subject;
 	}
 
-	public void setSubject(String subject) {
+	public InvitationDTO setSubject(String subject) {
 		this.subject = subject;
+		return this;
 	}
 
 	public Long getRoomId() {
 		return roomId;
 	}
 
-	public void setRoomId(Long roomId) {
+	public InvitationDTO setRoomId(Long roomId) {
 		this.roomId = roomId;
+		return this;
 	}
 
 	public boolean isPasswordProtected() {
 		return passwordProtected;
 	}
 
-	public void setPasswordProtected(boolean passwordProtected) {
+	public InvitationDTO setPasswordProtected(boolean passwordProtected) {
 		this.passwordProtected = passwordProtected;
+		return this;
 	}
 
 	public String getPassword() {
 		return password;
 	}
 
-	public void setPassword(String password) {
+	public InvitationDTO setPassword(String password) {
 		this.password = password;
+		return this;
 	}
 
 	public Valid getValid() {
 		return valid;
 	}
 
-	public void setValid(Valid valid) {
+	public InvitationDTO setValid(Valid valid) {
 		this.valid = valid;
+		return this;
 	}
 
 	/**
@@ -148,8 +159,9 @@ public class InvitationDTO implements Serializable {
 	 * @param validFrom
 	 *            date-time in format YYYY-MM-dd HH:mm:ss
 	 */
-	public void setValidFrom(String validFrom) {
+	public InvitationDTO setValidFrom(String validFrom) {
 		this.validFrom = validFrom;
+		return this;
 	}
 
 	/**
@@ -167,8 +179,9 @@ public class InvitationDTO implements Serializable {
 	 * @param validTo
 	 *            date-time in format YYYY-MM-dd HH:mm:ss
 	 */
-	public void setValidTo(String validTo) {
+	public InvitationDTO setValidTo(String validTo) {
 		this.validTo = validTo;
+		return this;
 	}
 
 	public long getLanguageId() {
@@ -219,4 +232,32 @@ public class InvitationDTO implements Serializable {
 		i.setAppointment(null);
 		return i;
 	}
+
+	public static InvitationDTO fromString(String s) {
+		return get(new JSONObject(s));
+	}
+
+	public static InvitationDTO get(JSONObject o) {
+		if (o == null) {
+			return null;
+		}
+		InvitationDTO i = new InvitationDTO();
+		i.firstname = o.optString("firstname");
+		i.lastname = o.optString("lastname");
+		i.email = o.optString("email");
+		i.password = o.optString("password");
+		i.passwordProtected = o.optBoolean("passwordProtected", false);
+		i.subject = o.optString("subject");
+		i.roomId = o.getLong("roomId");
+		i.message = o.optString("message");
+		i.valid = Valid.valueOf(o.optString("valid", Valid.Period.name()));
+		i.validFrom = o.optString("validFrom");
+		i.validTo = o.optString("validTo");
+		return i;
+	}
+
+	@Override
+	public String toString() {
+		return new JSONObject(this).toString();
+	}
 }
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
index 128470a..63d74f7 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
@@ -25,19 +25,28 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.UUID;
 
+import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.file.FileItemDTO;
+import org.apache.openmeetings.db.dto.room.InvitationDTO;
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.dto.room.RoomFileDTO;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 
 public class TestRoomService extends AbstractWebServiceTest {
 	private static final long CAPACITY = 666L;
 
+	@Autowired
+	private RoomDao roomDao;
+
 	@Test
 	public void testExternal() {
 		ServiceResult sr = login();
@@ -134,4 +143,30 @@ public class TestRoomService extends AbstractWebServiceTest {
 		CallResult<RoomDTO> res = createAndValidate(fileCall.getSid(), r);
 		assertFalse("Room files should NOT be empty", res.getObj().getFiles().isEmpty());
 	}
+
+	@Test
+	public void testHash() {
+		List<Room> rooms = roomDao.get(0,  100);
+		assertFalse("Room list should not be empty", rooms.isEmpty());
+
+		ServiceResult sr = login();
+		ServiceResult res = getClient(getRoomUrl())
+				.path("/hash")
+				.query("sid", sr.getMessage())
+				.query("invite", new InvitationDTO()
+						.setFirstname("Mark")
+						.setLastname("Steven")
+						.setEmail("abc@gmail.com")
+						.setPassword("Sys@123!")
+						.setPasswordProtected(true)
+						.setSubject("Health Meeting")
+						.setRoomId(rooms.get(0).getId())
+						.setMessage("Meeting")
+						.setValid(Valid.Period)
+						.setValidFrom("2018-03-19 02:25:12")
+						.setValidTo("2018-04-20 02:25:12")
+						.toString())
+				.post("", ServiceResult.class);
+		assertEquals("Login should be successful", Type.SUCCESS.name(), res.getType());
+	}
 }

-- 
To stop receiving notification emails like this one, please contact
solomax@apache.org.