Add: DBService.js for client

This commit is contained in:
2019-07-11 11:51:53 +09:00
parent da44bcb17c
commit e21722526f
6 changed files with 97 additions and 16 deletions
+74
View File
@@ -0,0 +1,74 @@
function DBService() {
this.path = this.getPath();
this.directoryName = this.getDirectoryName(this.path);
this.webPath = this.getWebPath(this.directoryName);
this.maestroID = 0;
this.playerID = 0;
this.appName = "";
this.dateAndTime = null;
}
DBService.prototype.getPath = function() {
return window.location.pathname;
}
DBService.prototype.getDirectoryName = function(path) {
var pathAndFileNames = path.split("/");
return pathAndFileNames[pathAndFileNames.length - 2];
}
DBService.prototype.getWebPath = function(directoryName) {
if(directoryName === "test") // mouse_typing/test/
return "../src/web/";
else // mousetyping/src/web/client/
return "../";
}
DBService.prototype.setMaestroID = function(maestroID) {
this.maestroID = maestroID;
}
DBService.prototype.setPlayerID = function(playerID) {
this.playerID = playerID;
}
DBService.prototype.setAppName = function(appName) {
this.appName = appName;
}
DBService.prototype.setDateTime = function(date, time) {
this.dateAndTime = date + time;
}
DBService.prototype.resetDateTime = function() {
this.dateAndTime = null;
}
DBService.prototype.makeXhr = function(filepath, onreadystatechange) {
var xhr = new XMLHttpRequest();
xhr.open("POST", this.webPath + filepath, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = onreadystatechange;
return xhr;
}
DBService.prototype.requestWritingPlayerList = function(onSucceededListener, onFailedListener) {
var xhr = this.makeXhr(
"php/writing/player_list.php",
(function() { // onreadystatechange
if(xhr.readyState == 4 && xhr.status == 200) {
var replyJSON = JSON.parse(xhr.responseText);
if(replyJSON != null)
onSucceededListener(replyJSON);
else
onFailedListener(replyJSON);
}
}).bind(this)
);
xhr.send("maestroID=" + this.maestroID + "&playerID=" + this.playerID);
}
@@ -1,5 +1,5 @@
<?php
class DBMethodCollection
class DBMethodContainer
{
protected $mysqli;
+1 -1
View File
@@ -1,5 +1,5 @@
<?php
class WritingCollection extends DBMethodCollection
class WritingCollection extends DBMethodContainer
{
public function getSystemWritingList()
+1 -1
View File
@@ -20,7 +20,7 @@ if (!$isConnected) {
}
include "./../db/db_method_collection.php";
include "./../db/db_method_container.php";
include "./../db/writing_collection.php";
$writingCollection = new WritingCollection($dbConnector->getMysqli());
+1
View File
@@ -35,6 +35,7 @@
<script src="../src/game/typing/lib/keyboard.js"></script>
<script src="../src/game/lib/history_record_manager.js"></script>
<script src="../src/game/lib/heart_manager.js"></script>
<script src="../src/game/lib/db_service.js"></script>
<script src="../src/game/lib/db_connect_manager.js"></script>
<script src="tdd.js"></script>
</body>
+19 -13
View File
@@ -2,21 +2,27 @@
// DBConnector
QUnit.test( "DBConnector", function( assert ) {
var maestroID = "choco";
var playerID = "jisangs";
var dbService = new DBService();
dbService.setMaestroID(3); // 삼화초
dbService.setPlayerID(35); // 박지상
var xhr = new XMLHttpRequest();
xhr.open("POST", "./../src/web/php/writing/player_list.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
var replyJSON = JSON.parse(xhr.responseText);
console.log(replyJSON);
}
};
xhr.send("maestroID=" + maestroID + "&playerID=" + playerID);
var done = assert.async();
setTimeout(function() {
dbService.requestWritingPlayerList(
(jsonData) => { // onSucceeded
console.log(jsonData);
assert.equal(1, 0, "DBConnector");
var writingArray = jsonData["writingArray"];
assert.equal(writingArray[0].name, "봄 - 윤동주", "name");
assert.equal(writingArray[3].name, "허생전 - 박지원", "name");
done();
},
(jsonData) => { // onFailed
// console.log(jsonData);
done();
}
);
});
});