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