#!C:\Python364\python3.exe
# -*- coding: utf-8 -*-
import sys, codecs
import cgi, cgitb
import pymysql
import issuedb
from issuedb import IssueDBFactory
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)

class Issue_Builder(object):
    def build(issueId):
        db = IssueDBFactory.produce()
        cursor = db.cursor() 

        tag_unit_html_file = open("tag_unit.html", 'r', encoding='utf8')
        issue_html_file = open("issue.html", 'r', encoding='utf8')
        issue_html = issue_html_file.read()
        tag_unit_html = tag_unit_html_file.read() 

        issue = ""

        try: 
            cursor.execute("select * from issue where issueId={0}".format(issueId))
            issue_content = cursor.fetchall()
            issue_content = issue_content[0]

            if issue_content != None: 
                taglist = "" 
                cursor.execute("SELECT * FROM tag WHERE tagId IN (SELECT tagId FROM relation WHERE issueId = {0})".format(issueId))
                tags_rows = cursor.fetchall() 
                for tag_row in tags_rows:
                    tag = tag_unit_html.format(\
                        tagid = tag_row[0], \
                        tag_name = tag_row[1],\
                        tag_count = '' \
                    )
                    taglist += tag 
                issue = issue_html.format( \
                        issueId = issue_content[0], \
                        issueTitle = issue_content[1],\
                        issueDescription = issue_content[2],\
                        issueSolve = issue_content[3],\
                        tags = taglist\
                    )
                
            cursor.close()
            db.close()
            return issue
        except:
            cursor.close()
            db.close()
            return ("Error: unable to fetch issue data \n" + e.message)   

