'Gets and Sets version related info in mem cache and request cache; and returns a dict of it.
It sets request cache data for last_supported_date and latest_version with memcached values if exists against
user app properties else computes the values for specific platform and sets it in both memcache (for next
server interaction from same app version/platform) and request cache
Returns:
dict: Containing app version info'

def _get_version_info(self, request):

    user_agent = request.META.get('HTTP_USER_AGENT')
    if user_agent:
        platform = self._get_platform(request, user_agent)
        if platform:
            request_cache_dict = request_cache.get_cache(self.REQUEST_CACHE_NAME)
            request_cache_dict[self.USER_APP_VERSION] = platform.version
            last_supported_date_cache_key = self._get_cache_key_name(self.LAST_SUPPORTED_DATE_HEADER, platform.version)
            latest_version_cache_key = self._get_cache_key_name(self.LATEST_VERSION_HEADER, platform.NAME)
            cached_data = cache.get_many([last_supported_date_cache_key, latest_version_cache_key])
            last_supported_date = cached_data.get(last_supported_date_cache_key)
            if (not last_supported_date):
                last_supported_date = self._get_last_supported_date(platform.NAME, platform.version)
                cache.set(last_supported_date_cache_key, last_supported_date, self.CACHE_TIMEOUT)
            request_cache_dict[self.LAST_SUPPORTED_DATE_HEADER] = last_supported_date
            latest_version = cached_data.get(latest_version_cache_key)
            if (not latest_version):
                latest_version = self._get_latest_version(platform.NAME)
                cache.set(latest_version_cache_key, latest_version, self.CACHE_TIMEOUT)
            request_cache_dict[self.LATEST_VERSION_HEADER] = latest_version
            return request_cache_dict
