def read_file(self, filepath=None, filename=None):
        """
        Tries to read JSON content from filename and convert it to a dict.

        :param filepath: Path where the file is
        :param filename: File name
        :return: Dictionary read from the file
        :raises EnvironmentError, ValueError
        """
        name = filename if filename else self.filename
        path = filepath if filepath else self.filepath
        name = self._ends_with(name, ".json")
        path = self._ends_with(path, os.path.sep)

        try:
            return self._read_json(path, name)
        except EnvironmentError as error:
            self.logger.error("Error while opening or reading the file: {}".format(error))
            raise
        except ValueError as error:
            self.logger.error("File contents cannot be decoded to JSON: {}".format(error))
            raise
Tries to read JSON content from filename and convert it to a dict.

        :param filepath: Path where the file is
        :param filename: File name
        :return: Dictionary read from the file
        :raises EnvironmentError, ValueError