Example #1
0
def check_message_id_in_messages(json_obj, message_id):
    for message in json_obj:
        message_dict = get_value_from_json(message, "message")
        message = get_value_from_json(message_dict, "id")
        if message == message_id:
            return True
    return False
 def create_model_from_json(self, json_body):
     """
     :param json_body: Json with fields
     :return: Attachment model
     """
     self.size = get_value_from_json(json_body, "size")
     self.data = get_value_from_json(json_body, "data")
     return self
Example #3
0
 def set_model_from_json(self, json):
     """
     Set model data from json object
     :param json: Json object with data
     """
     self.access_window = get_value_from_json(json, "accessWindow")
     self.disposition = get_value_from_json(json, "disposition")
     return self
 def set_model_from_json(self, json):
     """
     Set model data from json object
     :param json: Json object with data
     """
     self.enabled = get_value_from_json(json, "enabled")
     self.email_address = get_value_from_json(json, "emailAddress")
     self.disposition = get_value_from_json(json, "disposition")
     return self
 def set_model_from_json(self, json):
     """
     Set model data from json object
     :param json: Json object with data
     """
     self.enabled = get_value_from_json(json, "enabled")
     self.auto_expunge = get_value_from_json(json, "autoExpunge")
     self.expunge_behavior = get_value_from_json(json, "expungeBehavior")
     self.max_folder_size = get_value_from_json(json, "maxFolderSize")
     return self
Example #6
0
    def init_acl_from_json(self, json_data):
        """
        Метод инициализирует объект данными

        Args:
            json_data (dict): json ответ от сервера
        """
        self.role = get_value_from_json(json_data, "role")
        scope_json = get_value_from_json(json_data, "scope")
        self.scope_type = scope_json['type']
        self.scope_value = scope_json['value']
        return self
Example #7
0
 def get_iis_message_from_json(self, json_obj):
     """
     IIS - model for import, insert, send methods
     Args:
         json_obj (dict): response json to parse
     Returns:
         MessageModel: model with basic fields + header and data
     """
     self.get_basic_message_from_json(json_obj)
     self.header = get_value_from_json(json_obj, "payload")["headers"]
     self.data = base64.b64decode(
         get_value_from_json(json_obj, "payload")["body"]["data"]).rstrip()
     return self
Example #8
0
def check_that_message_added(json_obj, message_id):
    history_dict = get_value_from_json(json_obj, "history")
    check = check_history_message(history_dict, message_id, "messagesAdded")
    log_info("Checking that message {message_id} was added in history".format(
        message_id=message_id))
    assert check, "Message {message_id} was not added from history".format(
        message_id=message_id)
Example #9
0
 def list(self, user_id):
     """
     Lists all labels in the user's mailbox.
     :param user_id: The user's email address.
     :return: response, (list<LabelModel>) list of models.
     """
     log_info(
         "[Users.labels]: List of labels for user with id={user_id}".format(
             user_id=user_id))
     url = '{host}/{api}/{user_id}/labels/'.format(host=self.host,
                                                   api=self.api,
                                                   user_id=user_id)
     http = HttpLib(url=url)
     http.auth_to_google(client=client, scope=scope_labels)
     http.send_get()
     label_models_list = []
     labels = get_value_from_json(http.get_response_json(http.response),
                                  'labels')
     for label in labels:
         label_models_list.append(
             LabelModel().parse_response_to_model_for_list(label))
     log_info(
         '[Users.labels]: LIST response: {status_code}, \n{models}'.format(
             status_code=http.get_response_status_code(http.response),
             models='\n'.join(model.__str__()
                              for model in label_models_list)))
     return http.response, label_models_list
Example #10
0
 def get_iis_message_with_attachment_from_json(self, json_obj):
     """
     IIS - model with attach for import, insert, send methods
     :param json_obj: response json to parse
     :return: MessageModel with all fields
     """
     self.get_basic_message_from_json(json_obj)
     self.data = base64.b64decode(
         get_value_from_json(json_obj,
                             "payload")['parts'][0]['body']['data'])
     self.header = get_value_from_json(json_obj, "payload")["headers"]
     self.file_name = get_value_from_json(json_obj,
                                          "payload")['parts'][1]['filename']
     self.file_size = get_value_from_json(
         json_obj, "payload")['parts'][1]['body']['size']
     self.attachment_id = get_value_from_json(
         json_obj, "payload")['parts'][1]['body']['attachmentId']
     return self
Example #11
0
def check_history_message(json_obj, message_id, key_message):
    for item in json_obj:
        try:
            message_added = get_value_from_json(item, key_message)
        except KeyError:
            continue
        if check_message_id_in_messages(message_added, message_id):
            return True
    return False
Example #12
0
 def get_empty_list_from_json(self, json_obj):
     """
     Args:
         json_obj (dict): response json to parse
     Returns:
         MessageModel:
     """
     self.result_size_estimate = get_value_from_json(
         json_obj, "resultSizeEstimate")
     return self
Example #13
0
    def get_basic_message_from_json(self, json_obj):
        """
        Args:
            json_obj (dict): response json to parse
        Returns:
            MessageModel:
        """
        self.message_id = get_value_from_json(json_obj, "id")
        self.thread_id = get_value_from_json(json_obj, "threadId")\
            if json_obj.keys().count('threadId') \
            else None
        self.label_ids = get_value_from_json(json_obj, "labelIds") \
            if json_obj.keys().count('labelIds') \
            else None
        self.snippet = get_value_from_json(json_obj, "snippet") \
            if json_obj.keys().count('snippet') \
            else None

        return self
Example #14
0
    def init_freebusy_from_json(self, json_data):
        """
        Метод инициализирует объект данными из json
        :param json_data: json объект для инициализации объекта
        :type json_data: dict
        :return: созданная модель
        """
        _regular = "(.*T\\d{1,2}:\\d{1,2}:\\d{1,2})"

        self.time_min = re.search(_regular,
                                  get_value_from_json(json_data,
                                                      "timeMin")).group(0)
        self.time_max = re.search(_regular,
                                  get_value_from_json(json_data,
                                                      "timeMax")).group(0)
        try:
            self.time_zone = get_value_from_json(json_data, "timeZone")
        except KeyError:
            self.time_zone = ""
        return self
    def get_history_model_from_json(self, json_obj):
        try:
            self.message_added_id = \
                get_value_from_json(json_obj["history"][0]['messagesAdded'][0]['message'], "id")
            self.message_added_thread_id = \
                get_value_from_json(json_obj["history"][0]['messagesAdded'][0]['message'], "threadId")
        except KeyError:
            self.message_added_id = 0
            self.message_added_thread_id = 0
        try:
            self.message_deleted_id = \
                get_value_from_json(json_obj["history"][2]['messagesDeleted'][0]['message'], "id") if len(
                    json_obj["history"]) > 1 else None
            self.message_deleted_thread_id = \
                get_value_from_json(json_obj["history"][2]['messagesDeleted'][0]['message'], "threadId") if len(
                    json_obj["history"]) > 1 else None
        except KeyError:
            self.message_deleted_id = 0
            self.message_deleted_thread_id = 0

        return self
 def calendar_list_list(self):
     """
     Returns entries on the user's calendar list.
     :return: response, list<CalendarListModel>
     """
     log_info("Send get request")
     http = HttpLib(url=self.url)
     http.auth_to_google(client=client, scope=scope_calendar)
     request = http.send_get()
     calendar_lists = []
     lists = get_value_from_json(
         request.get_response_json(request.response), 'items')
     for calendar_list in lists:
         calendar_lists.append(
             CalendarListModel().pars_response_to_model(calendar_list))
     log_info("Returned:\nModel calendarList list:\n{model_list}".format(
         model_list='\n'.join(
             str(item.__dict__) for item in calendar_lists)))
     return request.response, calendar_lists
 def forwarding_list(self, user_id="me", client_id=client):
     """
     Build forwarding list request
     :param user_id: user email
     :param client_id: auth client
     :return: response, ForwardingModel object
     """
     forwarding = []
     url = "{host}/{api}/{user_id}/settings/forwardingAddresses".format(host=self.host,
                                                                        api=self.api,
                                                                        user_id=user_id)
     log_info(url)
     http = HttpLib(url=url)
     http.auth_to_google(client=client_id, scope=scope_settings_forwarding)
     http.send_get()
     log_pretty_json(http.response.text, "Forwarding list response")
     forwarding_items = get_value_from_json(http.get_response_json(http.response), 'forwardingAddresses')
     for item in forwarding_items:
         forwarding.append(ForwardingModel().create_model_from_json(item))
     return http.response, forwarding
Example #18
0
    def settings_list(self):
        """
        Method to build setings list request

        Returns:
            list of SettingsModel objects: list of settings from response
            int: response status code
        """

        settings = []
        url = "{host}/{api}/settings".format(host=self.host, api=self.api)
        http = HttpLib(url=url)
        http.auth_to_google(client=client, scope=scope_calendar)
        http.send_get()

        settings_items = get_value_from_json(
            http.get_response_json(http.response), 'items')
        for item in settings_items:
            settings.append(SettingsModel().create_model_from_json(item))
        return settings, http.get_response_status_code(http.response)
 def get_send_as_model_from_json(self, json_obj):
     self.send_as_email = get_value_from_json(json_obj, 'sendAsEmail')
     self.display_name = get_value_from_json(json_obj, 'displayName')
     self.signature = get_value_from_json(json_obj, 'signature')
     return self
 def get_users_model_from_json(self, json_obj):
     self.email = get_value_from_json(json_obj, 'emailAddress')
     self.messages_total = get_value_from_json(json_obj, 'messagesTotal')
     self.threads_total = get_value_from_json(json_obj, 'threadsTotal')
     self.history_id = get_value_from_json(json_obj, 'historyId')
     return self
 def create_model_from_json(self, json_str):
     self.kind = get_value_from_json(json_str, 'kind')
     self.etag = get_value_from_json(json_str, 'etag')
     self.id = get_value_from_json(json_str, 'id')
     self.value = get_value_from_json(json_str, 'value')
     return self
Example #22
0
 def get_draft_message_model_from_json(self, json_object):
     message_basic = get_value_from_json(json_object, "message")
     self.get_basic_message_from_json(message_basic)
     self.draft_message_id = get_value_from_json(json_object, "id")
     return self