Beispiel #1
0
class dbAPI(object):
    """docstring for dbAPI"""
    def __init__(self, dbexample = "None"):
        self.dbexample = UserSQL()

# ---------------------------------------------------------------------
###账户信息
    # 账户检索(账户名)
    def searchUser(self, name):
        # 404 不存在, 200 存在
        return self.dbexample.searchUser(name)

    # 获取账户ID
    def pullUserID(self, name):
        return int(self.dbexample.pullUserid(name))

    # 账户注册(账户名,密码)
    def sign_up(self, name, password):
        searchResult = self.searchUser(name)
        if searchResult == 404:
            accountResult = self.dbexample.account(name, password)
            if accountResult != 200:
                result = 403
            else:
                result = self.sign_in(name, password) #测试登陆
        else:
            result = 403
        return result

    # 账户登录(账户名,密码)
    def sign_in(self, name, password):
        searchResult = self.searchUser(name)
        if searchResult == 404:
            result = 404 #用户不存在
        else:
            userid = self.pullUserID(name)
            loginResult = self.dbexample.login(userid, password)
            if loginResult == 200:
                result = 200
            else:
                result = 403    #登陆失败
        return result

    # 账户删除(账户名,密码)
    def rmuser(self, name, password):
        searchResult = self.searchUser(name)
        if searchResult == 404:
            result = 404 #用户不存在
        else:
            userid = self.pullUserID(name)
            rmResult = self.dbexample.rmUser(userid, password)
            rmpersonResult = self.dbexample.rmUserPerson(userid)
            rmdiscussResult = self.dbexample.rmUserDiscuss(userid)
            if (rmResult == 200 or rmResult == 404) and (rmpersonResult == 200 or rmpersonResult == 404) and (rmdiscussResult == 200 or rmdiscussResult == 404):
                result = 200
            else:
                result = 403
        return result
# -------------------------------------------------------------
###会议主题
    # 会议主题搜索
    def searchtheme(self, theme):
        # 不存在 404, 存在 200
        return self.dbexample.searchTheme(theme)

    # 获取会议主题ID
    def pullthemeid(self, theme):
        return int(self.dbexample.pullThemeid(theme))

    # 发布会议
    def pushtheme(self, theme):
        searchResult = self.searchtheme(theme)
        if searchResult != 404:
            result = 403
        else:
            push = self.dbexample.pushTheme(theme)
            if push != 200:
                result = 403
            else:
                result = self.searchtheme(theme)
        return result

    # 结束会议
    def rmtheme(self, theme):
        searchResult = self.searchtheme(theme)
        if searchResult == 404:
            result = 404
        else:
            themeid = self.pullthemeid(theme)
            rmResult = self.dbexample.rmTheme(themeid)
            rmpersonResult = self.dbexample.rmThemePerson(themeid)
            rmdiscussResult = self.dbexample.rmThemeDiscuss(themeid)
            if (rmResult == 200 or rmResult == 404) and (rmpersonResult == 200 or rmpersonResult == 404) and (rmdiscussResult == 200 or rmdiscussResult == 404):
                result = 200
            else:
                result = 403
        return result
# ---------------------------------------------------------------
###主题会议参会
    # 参会人员搜索(单个 or 所有)
    def searchperson(self, theme, name):
        if name == "all":
            result = "all"
        else:
            nameResult = self.searchUser(name)
            themeResult = self.searchtheme(theme)
            if nameResult == 404 or themeResult == 404:
                result = 404
            else:
                userid = self.pullUserID(name)
                themeid = self.pullthemeid(theme)
                personResult = self.dbexample.searchPerson(themeid, userid)
                if personResult == 404:
                    result = 404
                else:
                    result = 200
        return result
        
    # 报名会议
    def applytheme(self, theme, name):
        nameResult = self.searchUser(name)
        themeResult = self.searchtheme(theme)
        if nameResult == 404 or themeResult == 404:
            result = 404
        else:
            userid = self.pullUserID(name)
            themeid = self.pullthemeid(theme)
            applyResult = self.dbexample.applyTheme(themeid, userid)
            if applyResult == 200:
                result = 200
            else:
                result = 403
        return result

# ------------------------------------------------------------------
###主题会议评论"""
    # 评论信息源信息
    def discussinfo(self, content):
        infoResult = self.dbexample.pullDiscussInfo(content)
        return infoResult

    # 评论信息过滤展示
    def discussfilter(self, content):
        filterResult = self.discussinfo(content)
        themename = self.dbexample.pullidTheme(filterResult[1])
        username = self.dbexample.pullidUser(filterResult[2])
        filterResult[1] = themename
        filterResult[2] = username
        filterResult.append(content)
        return filterResult     #评论id、主题会议名、用户名、评论内容

    # 发帖&评论
    def discuss(self, theme, name, content):
        nameResult = self.searchUser(name)
        themeResult = self.searchtheme(theme)
        if nameResult == 404 or themeResult == 404:
            result = 404
        else:
            userid = self.pullUserID(name)
            themeid = self.pullthemeid(theme)
            discResult = self.dbexample.discuss(themeid, userid, content)
            if discResult == 200:
                result = 200
            else:
                result = 403
        return result

    # 删帖
    def rmdiscuss(self, discussid, theme, name):
        nameResult = self.searchUser(name)
        themeResult = self.searchtheme(theme)
        if nameResult == 404 or themeResult == 404:
            result = 404
        else:
            userid = self.pullUserID(name)
            themeid = self.pullthemeid(theme)
            rmResult = self.dbexample.rmdiscuss(discussid, themeid, userid)
            if rmResult == 200:
                result = 200
            else:
                result = 404
        return result