use of com.reinard.learnhanzi.models.UserAndHanzi in project learn-hanzi by reinardhz.
the class HanziServiceImpl method insertHanzi.
/**
* A method to insert inputted hanzi to database.
*
* If the data successfully inserted to database , return the successfull inserted hanzi and its created date in json format.
* Response json string example: {"hanzi_data":[{"hanzi":"會", "created_date":"1491448282654"}]}. <br/>
*
* <br/>
*
* @param hanzi - String hanzi to insert.
* @return String result - The inserted hanzi data in json format, or String: "Error: Cannot insert. Data already exist.", if trying to insert the already inserted data.
* @throws Exception - If errors occurs when inserting data to database.
*/
public String insertHanzi(String input) throws Exception {
try {
logger.info("Inserting hanzi to database...");
logger.debug("preparing the data...");
HanziData inputHanziData = new HanziData();
inputHanziData.setHanzi(input);
inputHanziData.setCreated_date(System.currentTimeMillis());
logger.debug("preparing the child...");
Set<UserAndHanzi> childs = new HashSet<UserAndHanzi>();
UserAndHanzi child = new UserAndHanzi();
UserData userData = new UserData();
// manual input
userData.setUser_id(1L);
child.setUserData(userData);
child.setHanziData(inputHanziData);
childs.add(child);
// add the child
logger.debug("adding the child to the data...");
inputHanziData.setUserAndHanzi(childs);
logger.debug("call dao, to insert data to database");
HanziData insertedHanziData = hanziDaoImpl.insert(inputHanziData);
logger.info("Insert hanzi to database succeed");
logger.info("Converting the inserted data to json object...");
logger.debug("Preparing the json object...");
HanziDataJsonResponseObject resultJsonObject = new HanziDataJsonResponseObject();
logger.debug("Preparing the child json object...");
Hanzi_data resultChildJsonObject = new Hanzi_data();
resultChildJsonObject.setHanzi(insertedHanziData.getHanzi());
resultChildJsonObject.setCreated_date(String.valueOf(insertedHanziData.getCreated_date()));
logger.debug("Converting the child json object into array...");
List<Hanzi_data> var = new ArrayList<>();
var.add(resultChildJsonObject);
Hanzi_data[] resultChildJsonArray = var.<Hanzi_data>toArray(new Hanzi_data[0]);
logger.debug("Adding the array into json object...");
resultJsonObject.setHanzi_data(resultChildJsonArray);
logger.debug("Converting json object into json string...");
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(resultJsonObject);
return result;
} catch (PersistenceException pe) {
logger.error("Cannot insert. Data already exist.");
return "Error: Cannot insert. Data already exist.";
} catch (Exception e) {
logger.error("Unexpected error occurred when inserting hanzi to database.");
throw e;
}
}
use of com.reinard.learnhanzi.models.UserAndHanzi in project learn-hanzi by reinardhz.
the class HanziDaoImplTest method testInsert2.
// Case 2: Insert the already existing data in database
@Test(expected = javax.persistence.PersistenceException.class)
public void testInsert2() throws Exception {
logger.debug("Start test");
HanziData hanziData = new HanziData();
hanziData.setHanzi("我");
hanziData.setCreated_date(System.currentTimeMillis());
// prepare the child
Set<UserAndHanzi> childs = new HashSet<UserAndHanzi>();
UserAndHanzi child = new UserAndHanzi();
UserData userData = new UserData();
userData.setUser_id(1L);
child.setUserData(userData);
child.setHanziData(hanziData);
childs.add(child);
// add the child
hanziData.setUserAndHanzi(childs);
hanziDaoImpl.insert(hanziData);
}
use of com.reinard.learnhanzi.models.UserAndHanzi in project learn-hanzi by reinardhz.
the class HanziDaoImplTest method testInsert1.
// Case 1: Insert a new data that is not exist in the database.
// @Test
public void testInsert1() throws Exception {
logger.debug("Start test");
String input = "對";
HanziData hanziData = new HanziData();
hanziData.setHanzi(input);
hanziData.setCreated_date(System.currentTimeMillis());
Set<UserAndHanzi> childs = new HashSet<UserAndHanzi>();
UserAndHanzi child = new UserAndHanzi();
UserData userData = new UserData();
userData.setUser_id(1L);
child.setUserData(userData);
child.setHanziData(hanziData);
childs.add(child);
hanziData.setUserAndHanzi(childs);
hanziDaoImpl.insert(hanziData);
// make sure that data is inserted:
HanziData result = hanziDaoImpl.selectBy(input);
Assert.assertNotNull(result);
Assert.assertEquals(result.getHanzi(), input);
logger.debug("Result: " + result.toString());
}
Aggregations