974 lines
33 KiB
JavaScript
974 lines
33 KiB
JavaScript
var express = require("express");
|
|
var router = express.Router();
|
|
var util = require("util");
|
|
var mysql = require("mysql");
|
|
|
|
var utils = require("../../../src/utils");
|
|
var crossCtl = require("../../../src/crossCtl");
|
|
|
|
var passport = require("passport");
|
|
// operation
|
|
|
|
router.get("/s/:shortUrlId", function (req, res) {
|
|
var uid = req.isAuthenticated() ? req.user.uid : utils.uuid("uid_" + req.sessionID);
|
|
var shortUrlId = req.params.shortUrlId;
|
|
|
|
crossCtl.getShortUrlInfo(uid, shortUrlId, function (error, shortUrlInfo) {
|
|
if (error) {
|
|
return req.workTag
|
|
.res()
|
|
.status(500)
|
|
.send({
|
|
...req.workTag.responsePacket,
|
|
responseCode: 500,
|
|
responseMessage: "Server error : " + (error.message ? error.message : error.toString()),
|
|
});
|
|
} else {
|
|
console.log("huk shortUrlInfo = ", shortUrlInfo);
|
|
if (shortUrlInfo == null) {
|
|
return req.workTag
|
|
.res()
|
|
.status(404)
|
|
.send({
|
|
...req.workTag.responsePacket,
|
|
responseCode: 404,
|
|
responseMessage: "link not found : " + shortUrlId,
|
|
});
|
|
} else {
|
|
return req.workTag.res().redirect("https://" + crossCtl.sConfig.baseUrl + shortUrlInfo.url);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
router.get("/ping", function (req, res) {
|
|
res.send(JSON.stringify({ whoami: "pond-one" }));
|
|
});
|
|
|
|
router.post("/report", function (req, res) {
|
|
var targetTag = req.query.tag ? req.query.tag : "";
|
|
var uid = req.isAuthenticated() ? req.user.uid : utils.uuid("uid_" + req.sessionID);
|
|
var data = req.body;
|
|
|
|
var post = {
|
|
site_id: crossCtl.sConfig.type,
|
|
uid: uid,
|
|
anonym_flag: req.isAuthenticated() ? 0 : 1,
|
|
tag: targetTag,
|
|
json: JSON.stringify(data),
|
|
req_dump: utils.dumpReq(req),
|
|
};
|
|
|
|
crossCtl.boom.log("old_report", post);
|
|
|
|
return req.workTag
|
|
.res()
|
|
.status(200)
|
|
.send({
|
|
...req.workTag.responsePacket,
|
|
responseCode: 200,
|
|
responseMessage: "ok",
|
|
});
|
|
|
|
/*
|
|
var qry =
|
|
'INSERT INTO ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_report_list SET ?';
|
|
|
|
var response = {};
|
|
crossCtl.db.doEasyQueryPost(qry, post, function (error, results) {
|
|
if (error) {
|
|
utils.log(
|
|
'error',
|
|
'report save db error : ' +
|
|
JSON.stringify(error) +
|
|
' ' +
|
|
utils.__where()
|
|
);
|
|
return req.workTag
|
|
.res()
|
|
.status(500)
|
|
.send({
|
|
...req.workTag.responsePacket,
|
|
responseCode: 500,
|
|
responseMessage: 'Server error : ' + error.message,
|
|
});
|
|
} else {
|
|
return req.workTag
|
|
.res()
|
|
.status(200)
|
|
.send({
|
|
...req.workTag.responsePacket,
|
|
responseCode: 200,
|
|
responseMessage: 'ok',
|
|
});
|
|
}
|
|
});
|
|
*/
|
|
});
|
|
|
|
router.use(function (req, res, next) {
|
|
if (crossCtl.inMaintenanceFlag) {
|
|
// var userInfo = req.isAuthenticated() ? req.user.user_info : {}
|
|
var ip =
|
|
req.headers["x-forwarded-for"] ||
|
|
req.connection.remoteAddress ||
|
|
req.socket.remoteAddress ||
|
|
(req.connection.socket ? req.connection.socket.remoteAddress : null);
|
|
ip = ip.replace("::ffff:", "");
|
|
// console.log('ip =', ip)
|
|
// console.log('crossCtl.isItStaffIP(ip) =', crossCtl.isItStaffIP(ip))
|
|
if (crossCtl.isItStaffIP(ip)) {
|
|
next();
|
|
} else {
|
|
// console.log('utils.hostName=',utils.hostName)
|
|
res.status(503).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 503,
|
|
errorMessage: "Maintenance in progress...",
|
|
});
|
|
}
|
|
} else {
|
|
next();
|
|
}
|
|
});
|
|
|
|
/*
|
|
router.get('/', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos })
|
|
})
|
|
*/
|
|
|
|
/*
|
|
router.get('/signin', function (req, res) {
|
|
res.render('main/pages/signin', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/signup', function (req, res) {
|
|
res.render('main/pages/signup', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/reset', function (req, res) {
|
|
res.render('main/pages/reset', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/reset/email', function (req, res) {
|
|
var token = req.query.token;
|
|
|
|
var qry =
|
|
'SELECT * FROM ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_reset_list WHERE token = ' +
|
|
mysql.escape(token) +
|
|
' AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' AND status = 0';
|
|
|
|
crossCtl.db.doEasyQuery(qry, function (err, results) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
if (results.length == 0) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 404,
|
|
errorMessage: '유효하지 않은 링크 입니다.',
|
|
});
|
|
} else {
|
|
var uid = results[0].uid;
|
|
var tmpPassword = utils.shortid.generate();
|
|
utils.getHash(tmpPassword, function (err, newPassToken) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
var post = {
|
|
auth_token: newPassToken,
|
|
};
|
|
qry =
|
|
'UPDATE ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_account_users SET ? WHERE uid = ' +
|
|
mysql.escape(uid) +
|
|
' AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' AND status = 0';
|
|
crossCtl.db.doEasyQueryPost(qry, post, function (
|
|
err,
|
|
results
|
|
) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
if (results.affectedRows == 0) {
|
|
res.status(500).render('main/pages/error', {
|
|
errorCode: 500,
|
|
errorMessage:
|
|
'비밀번호 리셋에 실패하였습니다. 잠시 후 다시 시도해 주세요.',
|
|
});
|
|
} else {
|
|
qry =
|
|
'UPDATE ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_reset_list SET status = 1, used_hint = ' +
|
|
mysql.escape(utils.dumpReq(req));
|
|
' WHERE token = ' + mysql.escape(token);
|
|
crossCtl.db.doEasyQuery(qry, function (
|
|
err,
|
|
results
|
|
) {
|
|
if (err) {
|
|
res.status(500).render(
|
|
'main/pages/error',
|
|
{
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
}
|
|
);
|
|
} else {
|
|
res.render('main/pages/next', {
|
|
infos: req.infos,
|
|
bigTitle: 'OK',
|
|
smallTitle:
|
|
'비밀번호 리셋 완료',
|
|
nextTitle:
|
|
'비밀번호가 ' +
|
|
tmpPassword +
|
|
' 으로 변경되었습니다. 로그인 해 보세요.',
|
|
nextUrl: '/signin',
|
|
newPassToken: tmpPassword,
|
|
});
|
|
}
|
|
crossCtl.passEventToLocalHandler(
|
|
'resetDone',
|
|
{
|
|
uid: uid,
|
|
user_info: JSON.parse(
|
|
utils.dumpReq(req)
|
|
),
|
|
},
|
|
function (error) {
|
|
if (error) {
|
|
utils.log(
|
|
'error',
|
|
'on crossCtl.passEventToLocalHandler(), error =',
|
|
error
|
|
);
|
|
}
|
|
}
|
|
);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
router.post('/reset/email', function (req, res) {
|
|
res.render('main/pages/next', {
|
|
infos: req.infos,
|
|
bigTitle: 'OK',
|
|
smallTitle: 'password reset email sent.',
|
|
nextTitle: 'goto login screen',
|
|
nextUrl: '/signin',
|
|
});
|
|
});
|
|
|
|
router.post('/signin/email', function (req, res, next) {
|
|
passport.authenticate('local', function (err, user, info) {
|
|
// console.log('authenticate().local, err=', err)
|
|
// console.log('authenticate().local, user=', user)
|
|
// console.log('authenticate().local, info=', info)
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
if (user.auth_flag === false) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: 'authenticate failed : ' + user.reason,
|
|
});
|
|
} else {
|
|
req.login(user, (loginErr) => {
|
|
if (loginErr) {
|
|
utils.log(
|
|
'error',
|
|
'#2 huk error : ' +
|
|
util.inspect(loginErr) +
|
|
' ' +
|
|
utils.__where()
|
|
);
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: loginErr,
|
|
});
|
|
} else {
|
|
req.session.user = user;
|
|
// req.body.password = '******'
|
|
// crossCtl.logUserAction(user.uid, 'login', 'login ok, req = ' + utils.dumpReq(req))
|
|
handlePostLogin(req);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
|
|
router.post('/signup/email', function (req, res, next) {
|
|
var type = 0;
|
|
|
|
var key = req.body.userName;
|
|
var token = req.body.password;
|
|
|
|
var defaultLevel = 0;
|
|
|
|
var qry =
|
|
'SELECT * FROM ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_white_list WHERE uid = ' +
|
|
mysql.escape(key) +
|
|
' AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' AND status = 0';
|
|
|
|
crossCtl.db.doEasyQuery(qry, function (err, results) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
if (
|
|
results.length !== 1 &&
|
|
crossCtl.sConfig.allowSignup === false
|
|
) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: 'not in a white list',
|
|
});
|
|
} else {
|
|
defaultLevel =
|
|
results.length == 1 ? results[0].level : defaultLevel;
|
|
|
|
utils.getHash(token, function (err, hash) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
var user_info = crossCtl.normalizeUserInfo(
|
|
'id/password',
|
|
{
|
|
email: key,
|
|
password: key,
|
|
}
|
|
);
|
|
|
|
var prefDataJson = {
|
|
account_info: user_info,
|
|
newAccountFlag: true,
|
|
};
|
|
|
|
var post = {
|
|
site_id: crossCtl.sConfig.type,
|
|
name: user_info.name,
|
|
auth_type: type,
|
|
auth_key: key,
|
|
auth_token: hash,
|
|
pref_data: JSON.stringify(prefDataJson),
|
|
user_level: defaultLevel,
|
|
};
|
|
qry =
|
|
'INSERT INTO ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_account_users SET ? ';
|
|
crossCtl.db.doEasyQueryPost(qry, post, function (
|
|
err,
|
|
results
|
|
) {
|
|
if (err) {
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
});
|
|
} else {
|
|
var serial = results.insertId;
|
|
var uid = utils.uuid('uid_' + serial);
|
|
req.body.password = '******';
|
|
crossCtl.logUserAction(
|
|
uid,
|
|
'new',
|
|
'new account created. req = ' +
|
|
utils.dumpReq(req)
|
|
);
|
|
qry =
|
|
'UPDATE ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_account_users SET uid = ' +
|
|
mysql.escape(uid) +
|
|
' WHERE serial = ' +
|
|
serial;
|
|
crossCtl.db.doEasyQuery(qry, function (
|
|
err,
|
|
results
|
|
) {
|
|
if (err) {
|
|
res.status(500).render(
|
|
'main/pages/error',
|
|
{
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err,
|
|
}
|
|
);
|
|
} else {
|
|
req.workTag.res().redirect('/signin');
|
|
}
|
|
|
|
crossCtl.passEventToLocalHandler(
|
|
'addUser',
|
|
{ uid: uid, user_info: user_info },
|
|
function (error) {
|
|
if (error) {
|
|
utils.log(
|
|
'error',
|
|
'on crossCtl.passEventToLocalHandler(), error =',
|
|
error
|
|
);
|
|
}
|
|
}
|
|
);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
*/
|
|
|
|
router.get(
|
|
"/signin/facebook",
|
|
function (req, res, next) {
|
|
// to return to '/#/returnHash', request this url:
|
|
// http://example.com/auth/twitter?return_url=%2F%23%2FreturnHash
|
|
|
|
// on the client you can get the hash value like this:
|
|
// encodeURIComponent("/"+window.location.hash)
|
|
req.session.return_loc = req.query.loc;
|
|
console.log("req.query.loc=", req.query.loc);
|
|
req.session.req_dump = utils.dumpReq(req);
|
|
next();
|
|
},
|
|
passport.authenticate("facebook", {
|
|
authType: "rerequest",
|
|
scope: ["public_profile", "email"],
|
|
})
|
|
);
|
|
|
|
router.get(
|
|
"/signin/google",
|
|
function (req, res, next) {
|
|
// to return to '/#/returnHash', request this url:
|
|
// http://example.com/auth/twitter?return_url=%2F%23%2FreturnHash
|
|
|
|
// on the client you can get the hash value like this:
|
|
// encodeURIComponent("/"+window.location.hash)
|
|
req.session.return_loc = req.query.loc;
|
|
console.log("req.query.loc=", req.query.loc);
|
|
req.session.req_dump = utils.dumpReq(req);
|
|
next();
|
|
},
|
|
passport.authenticate("google", {
|
|
authType: "rerequest",
|
|
scope: ["openid", "email"],
|
|
})
|
|
);
|
|
|
|
router.get(
|
|
"/signin/kakao",
|
|
function (req, res, next) {
|
|
// to return to '/#/returnHash', request this url:
|
|
// http://example.com/auth/twitter?return_url=%2F%23%2FreturnHash
|
|
|
|
// on the client you can get the hash value like this:
|
|
// encodeURIComponent("/"+window.location.hash)
|
|
req.session.return_loc = req.query.loc;
|
|
console.log("req.query.loc=", req.query.loc);
|
|
req.session.req_dump = utils.dumpReq(req);
|
|
next();
|
|
},
|
|
passport.authenticate("kakao", { failureRedirect: "#!/login" })
|
|
);
|
|
|
|
router.get(
|
|
"/signin/apple",
|
|
function (req, res, next) {
|
|
// to return to '/#/returnHash', request this url:
|
|
// http://example.com/auth/twitter?return_url=%2F%23%2FreturnHash
|
|
|
|
// on the client you can get the hash value like this:
|
|
// encodeURIComponent("/"+window.location.hash)
|
|
req.session.return_loc = req.query.loc;
|
|
console.log("req.query.loc=", req.query.loc);
|
|
req.session.req_dump = utils.dumpReq(req);
|
|
next();
|
|
},
|
|
passport.authenticate("apple", { failureRedirect: "#!/login" })
|
|
);
|
|
|
|
// Name:Sign in with Apple key
|
|
// Key ID:NLB2PB3RNR
|
|
// Services:Sign in with Apple
|
|
|
|
router.post("/signin/apple/callback", function (req, res, next) {
|
|
passport.authenticate("apple", function (err, user, info) {
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else if (!user) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "no user info found",
|
|
});
|
|
} else if (user.auth_flag === false) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "auth failed",
|
|
});
|
|
} else {
|
|
req.login(user, function (err) {
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else {
|
|
handlePostLogin(req);
|
|
}
|
|
});
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
|
|
router.get("/signin/facebook/callback", function (req, res, next) {
|
|
passport.authenticate("facebook", function (err, user, info) {
|
|
// console.log('after passport.facebook, err=', err)
|
|
// console.log('after passport.facebook, user=', user)
|
|
// console.log('after passport.facebook, info=', info)
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else if (!user) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "no user info found",
|
|
});
|
|
} else if (user.auth_flag === false) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "auth failed",
|
|
});
|
|
} else {
|
|
req.login(user, function (err) {
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else {
|
|
handlePostLogin(req);
|
|
}
|
|
});
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
|
|
router.get("/signin/google/callback", function (req, res, next) {
|
|
passport.authenticate("google", function (err, user, info) {
|
|
// console.log('after passport.google, err=', err)
|
|
// console.log('after passport.google, user=', user)
|
|
// console.log('after passport.google, info=', info)
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else if (!user) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "no user info found",
|
|
});
|
|
} else if (user.auth_flag === false) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "auth failed",
|
|
});
|
|
} else {
|
|
req.login(user, function (err) {
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else {
|
|
handlePostLogin(req);
|
|
}
|
|
});
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
|
|
router.get("/signin/kakao/callback", function (req, res, next) {
|
|
passport.authenticate("kakao", function (err, user, info) {
|
|
// console.log('after passport.kakao, err=', err)
|
|
// console.log('after passport.kakao, user=', user)
|
|
// console.log('after passport.kakao, info=', info)
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else if (!user) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "no user info found",
|
|
});
|
|
} else if (user.auth_flag === false) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: "auth failed",
|
|
});
|
|
} else {
|
|
req.login(user, function (err) {
|
|
if (err) {
|
|
res.status(500).render("main/pages/error", {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: err.message,
|
|
});
|
|
} else {
|
|
handlePostLogin(req);
|
|
}
|
|
});
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
|
|
function handlePostLogin(req) {
|
|
// console.log('handlePostLogin(), req.session = ', req.session)
|
|
// console.log('handlePostLogin(), req.session.user = ', req.session.user)
|
|
if (req.isAuthenticated()) {
|
|
if (req.user.newAccountFlag && req.user.firstLoginGiftFlag === undefined) {
|
|
crossCtl.giveCreditToUser(req.user.uid, 0, 10, "first login gift", "system", function (error, result) {
|
|
// console.log('giveCreditToUser(), error =', error)
|
|
// console.log('giveCreditToUser(), result =', result)
|
|
if (error) {
|
|
utils.log("error", "giveCreditToUser(), first login gift, error =" + error);
|
|
} else {
|
|
req.user.firstLoginGiftFlag = true;
|
|
}
|
|
handleLoadDaily(req);
|
|
});
|
|
} else {
|
|
handleLoadDaily(req);
|
|
}
|
|
} else {
|
|
utils.log("warn", "anonym at handlePostLogin() : " + req_dump ? req_dump : utils.dumpReq(req) + " " + utils.__where());
|
|
req.workTag.res().redirect("/");
|
|
}
|
|
}
|
|
|
|
function handleLoadDaily(req) {
|
|
var uid = req.user.uid;
|
|
if (req.body.password) {
|
|
req.body.password = "******";
|
|
}
|
|
var req_dump = req.session.req_dump;
|
|
req.session.req_dump = undefined;
|
|
|
|
crossCtl.logUserAction(uid, "signin", req_dump === undefined ? utils.dumpReq(req) : req_dump);
|
|
crossCtl.loadUserDaily(uid, function (error, dailyJson) {
|
|
if (error) {
|
|
utils.log("error", "error at loadUserDaily() : " + req_dump ? req_dump : utils.dumpReq(req) + " " + utils.__where());
|
|
handleWelcomeRedirect(req);
|
|
} else {
|
|
crossCtl.doWorkOnDailyWithTransaction(
|
|
uid,
|
|
function (dailyJson, afterCallback) {
|
|
// afterCallback(error, afterDailyJson, finalCallback)
|
|
if (dailyJson.loginCount === undefined) {
|
|
dailyJson.loginCount = 1;
|
|
} else {
|
|
dailyJson.loginCount += 1;
|
|
}
|
|
if (dailyJson.loginCount === 1) {
|
|
crossCtl.giveCreditToUser(req.user.uid, 0, 1, "daily login gift", "system", function (error, result) {
|
|
if (error) {
|
|
utils.log("error", "giveCreditToUser(), daily login gift, error =" + error);
|
|
}
|
|
afterCallback(error, dailyJson, function (error, result) {
|
|
handleWelcomeRedirect(req);
|
|
});
|
|
});
|
|
} else {
|
|
crossCtl.giveCreditToUser(req.user.uid, 1, 1, "daily login gift - bad value test", "system", function (error, result) {
|
|
if (error) {
|
|
utils.log("error", "giveCreditToUser(), daily login gift, error =" + error);
|
|
}
|
|
afterCallback(error, dailyJson, function (error, result) {
|
|
handleWelcomeRedirect(req);
|
|
});
|
|
});
|
|
}
|
|
},
|
|
function (error, result) {
|
|
if (error) {
|
|
utils.log("error", "doWorkOnDailyWithTransaction(), error =" + error);
|
|
}
|
|
handleWelcomeRedirect(req);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
function handleWelcomeRedirect(req) {
|
|
var return_loc = req.session.return_loc;
|
|
|
|
console.log("return_loc=", return_loc);
|
|
|
|
req.session.return_loc = undefined;
|
|
if (return_loc) {
|
|
req.workTag.res().redirect(return_loc);
|
|
} else {
|
|
req.workTag.res().redirect("/");
|
|
}
|
|
}
|
|
|
|
/* POST home page. */
|
|
router.get("/signout", function (req, res, next) {
|
|
if (req.isAuthenticated() == true) {
|
|
crossCtl.logUserAction(req.user.uid, "signout", utils.dumpReq(req));
|
|
}
|
|
req.logout();
|
|
|
|
if (req.session.fcmInfo !== undefined) {
|
|
delete req.session.fcmInfo;
|
|
}
|
|
|
|
// res.render('pages/index', { user: { loginFlag: req.isAuthenticated() }, hostName: utils.hostName })
|
|
req.workTag.res().redirect("/");
|
|
});
|
|
|
|
/*
|
|
router.get("/", function (req, res) {
|
|
res.render("main/pages/index", { infos: req.infos });
|
|
});
|
|
*/
|
|
|
|
/*
|
|
router.get('/blank', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/sample', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
var moment = require('moment');
|
|
|
|
router.get('/notice', function (req, res) {
|
|
var qry =
|
|
'SELECT * FROM ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_notice_list WHERE status = 0 AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' ORDER BY serial DESC';
|
|
crossCtl.db.doEasyQuery(qry, function (error, results) {
|
|
if (error) {
|
|
utils.log('error', '/notice, error =', error, utils.__where());
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: error,
|
|
});
|
|
} else {
|
|
var lang = req.infos.lang;
|
|
// console.log('lang=', lang)
|
|
moment.locale(lang);
|
|
res.render('main/pages/index', {
|
|
infos: req.infos,
|
|
list: results,
|
|
moment: moment,
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
router.get('/my', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/my/edit', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/my/new', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/note', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/note/edit', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/note/new', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/note/detail', function (req, res) {
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
|
|
router.get('/support', function (req, res) {
|
|
var businessInfo = crossCtl.getBusinessInfo();
|
|
// console.log('businessInfo=', businessInfo)
|
|
|
|
var qry =
|
|
'SELECT * FROM ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_faq_list WHERE status = 0 AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' ORDER BY serial DESC';
|
|
crossCtl.db.doEasyQuery(qry, function (error, results) {
|
|
if (error) {
|
|
utils.log('error', '/support, error =', error, utils.__where());
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: error,
|
|
});
|
|
} else {
|
|
var list = results;
|
|
|
|
var lang = req.infos.lang;
|
|
// console.log('lang=', lang)
|
|
moment.locale(lang);
|
|
|
|
var one2one = [];
|
|
if (req.isAuthenticated() === false) {
|
|
res.render('main/pages/index', {
|
|
infos: req.infos,
|
|
businessInfo: businessInfo,
|
|
list: list,
|
|
one2one: results,
|
|
moment: moment,
|
|
});
|
|
} else {
|
|
var uid = req.user.uid;
|
|
|
|
qry =
|
|
'SELECT * FROM ' +
|
|
crossCtl.db.options.database +
|
|
'.tbl_support_list WHERE uid = ' +
|
|
mysql.escape(uid) +
|
|
' AND status = 0 AND site_id = ' +
|
|
mysql.escape(crossCtl.sConfig.type) +
|
|
' ORDER BY serial ASC';
|
|
crossCtl.db.doEasyQuery(qry, function (error, results) {
|
|
if (error) {
|
|
utils.log(
|
|
'error',
|
|
'/support, error =',
|
|
error,
|
|
utils.__where()
|
|
);
|
|
res.status(500).render('main/pages/error', {
|
|
infos: req.infos,
|
|
errorCode: 500,
|
|
errorMessage: error,
|
|
});
|
|
} else {
|
|
var one2one = [];
|
|
for (var i = 0; i < results.length; i++) {
|
|
one2one[one2one.length] = {
|
|
type: results[i].type,
|
|
name: results[i].name,
|
|
message: results[i].message,
|
|
};
|
|
}
|
|
|
|
res.render('main/pages/index', {
|
|
infos: req.infos,
|
|
businessInfo: businessInfo,
|
|
list: list,
|
|
one2one: results,
|
|
moment: moment,
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
router.get('/privacy', function (req, res) {
|
|
var langTag = req.query.lang ? req.query.lang : 'ko';
|
|
res.render('main/pages/index', { infos: req.infos });
|
|
});
|
|
*/
|
|
module.exports = router;
|