trait.js 2.88 KB
const express = require('express');
const app = express();
const logger = require('morgan');
const bodyParser = require('body-parser');
const apiRouter = express.Router();
const moment = require('moment');
require('moment-timezone');
const fs = require('fs');

const traitsRawData = fs.readFileSync('Data/Json/traits.json');
const traitData = JSON.parse(traitsRawData);

exports.traitFunction = function(req,res){
    var responseBody = {};
    const traitName = req.body["action"]["params"]["trait_name"];
    moment.tz.setDefault(req.body["userRequest"]["timezone"]);
    console.log(moment().format('YYYY-MM-DD HH:mm:ss'));
    console.log(traitName);
    if (traitName == undefined){
        var traitList = "";
        for (var i = 0; i < traitData.length; ++i){
                traitList += (traitData[i].name + '\n');     
            };
        responseBody = {
            "version": "2.0",
            "template": {
                "outputs": [
                    {
                        "simpleText": {
                            "text": "찾으시는 조합 이름을 입력하시면 해당 조합에 대한 정보를 확인할 수 있습니다!\n\n현재 존재하는 조합 목록 :\n" + traitList
        
                        }
                    }
                ]
            }
        }
        res.status(200).send(responseBody);
    }

    else{
        var index = 0;
        for (index; index < traitData.length; ++index){
            if(traitData[index].name == traitName){
                break;
            }
          };
        console.log(traitData[index].sets);

        var traitPictureName = "";
        if (traitData[index].key.substr(0,5) == "Set3_"){
            traitPictureName = traitData[index].key.substr(5).toLowerCase();
        }
        else{
            traitPictureName = traitData[index].key.toLowerCase();
        }
        console.log(traitPictureName);
        var traitinfo = "시너지 효과 : " + traitData[index].description + "\n";
        for (var i = 0; i < traitData[index].sets.length; ++i){
            traitinfo += (traitData[index].sets[i].min + "인 이상 " + traitData[index].sets[i].effect + '\n');
        }

        
      responseBody = {
        "version": "2.0",
        "template": {
          "outputs": [
            {
              "basicCard": {
                "title": traitName,
                "description": traitinfo,
                "thumbnail": {
                  "imageUrl": "http://tft-helper.tk:23023/static/traits/" + traitPictureName + ".png"
                },
                "buttons":[
                    {
                        "action": "block",
                        "label": "메뉴로 돌아가기",
                        "blockId": "5ee0eef3e0d4e2000176b3f7"
                    }
                ]
            }
               
            }
            
          ]
        }
      }
      res.status(200).send(responseBody);
    }
}