def translate_request_body(endpoint, request_body, thriftpy_service_class):
    """
    Translate the request dictionary into whatever arguments
    are required to make the call with the thrift client

    This method assumes the request body had been validated and is correct

    endpoint: The endpoint spec as parsed by ThriftManager

    request_body: dictionary containing the args that should match
    the service. The values should have been validated before hitting
    this method

    thriftpy_service_class: the service class from thriftpy from module created 
     when thriftpy loaded the thrift file
    """
    processed_args = {}
    for arg_spec in endpoint.args:
        thrift_arg = getattr(thriftpy_service_class, '{}_args'.format(
            endpoint.name)).thrift_spec[arg_spec.field_id]
        try:
            ttype_code, name, required = thrift_arg
            type_info = None
        except ValueError:
            ttype_code, name, type_info, required = thrift_arg
        try:
            processed_args[arg_spec.name
                ] = arg_spec.type_info.format_arg_for_thrift(request_body[
                arg_spec.name], type_info)
        except KeyError:
            continue
    return processed_args
