# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   python-learn
# FileName:      requests_method.py
# Author:       xxxxxxx
# Datetime:     2023/8/8 9:56
# Description:
# 
# ---------------------------------------------------------------------------
import base64

import requests

from My_APIAuto_demo.common.read_ini import ReadIni
from My_APIAuto_demo.data_config.settings import HOST


class RequestMethod:
    def __init__(self):
        login_url = ReadIni().get_host(HOST)+"/auth"
        login_data = {"username":"admin","password":"123456"}
        login_data["password"] = base64.b64encode(login_data["password"].encode("utf-8")).decode("utf-8")
        self.bpm_session = requests.sessions.Session()
        self.bpm_session.headers["Authorization"] = "Bearer "+self.bpm_session.post(url=login_url, json=login_data).json().get("token")
        print(self.bpm_session.headers)

    def request_all(self,method,url,mime,case_data):
        if mime == "application/x-www-form-urlencoded" or mime == "x-www-form-urlencoded":
            return self.bpm_session.request(url=url,method=method,data=case_data)
        elif mime == "application/json" or mime == "json":
            return self.bpm_session.request(url=url,method=method,json=case_data)
        elif mime == "multipart/form-data" or mime == "form-data":
            return self.bpm_session.request(url=url,method=method,files=case_data)
        elif mime == "params" or mime == "query":
            return self.bpm_session.request(url=url,method=method,params=case_data)
        elif mime == "text/plain" or mime == "text":
            return self.bpm_session.request(url=url,method=method,data=case_data)
        elif mime == "application/json|query" or mime == "json|query" or mime == "query|json":
            return self.bpm_session.request(url=url,method=method,params=case_data['query'],json=case_data['body'])
        elif mime is None:
            return self.bpm_session.request(url=url,method=method)
        else:
            raise NameError("传入的媒体类型错误!")


if __name__ == '__main__':
    rep = RequestMethod()