github.com/anuvu/tyk@v2.9.0-beta9-dl-apic+incompatible/coprocess/lua/tyk/core.lua (about)

     1  local cjson = require "cjson"
     2  
     3  -- Make the current object accessible for helpers.
     4  object = nil
     5  
     6  -- The bundle will declare "request":
     7  
     8  tyk = {
     9    req = request,
    10    header=nil
    11  }
    12  
    13  function dispatch(raw_object)
    14    object = cjson.decode(raw_object)
    15    raw_new_object = nil
    16  
    17    -- Environment reference to hook.
    18    hook_name = object['hook_name']
    19    hook_f = _G[hook_name]
    20    is_custom_key_auth = false
    21  
    22    -- Set a flag if this is a custom key auth hook.
    23    if object['hook_type'] == 4 then
    24      is_custom_key_auth = true
    25    end
    26  
    27    -- Call the hook and return a serialized version of the modified object.
    28    if hook_f then
    29      local new_request, new_session, metadata
    30  
    31      -- tyk.header = object['request']['headers']
    32  
    33      if custom_key_auth then
    34        new_request, new_session, metadata = hook_f(object['request'], object['session'], object['metadata'], object['spec'])
    35      else
    36        new_request, new_session = hook_f(object['request'], object['session'], object['spec'])
    37      end
    38  
    39      -- Modify the CP object.
    40      object['request'] = new_request
    41      object['session'] = new_session
    42      object['metadata'] = metadata
    43  
    44      raw_new_object = cjson.encode(object)
    45  
    46      -- return raw_new_object, #raw_new_object
    47  
    48    -- Return the original object and print an error.
    49    else
    50      return raw_object, #raw_object
    51    end
    52  
    53    return raw_new_object, #raw_new_object
    54  end
    55  
    56  function dispatch_event(raw_event)
    57    print("dispatch_event:", raw_event)
    58  end