blob: 3561720b6884981977d879ed3300e8b45e35ea51 [file] [log] [blame]
#/*
# * Copyright (c) 2016 IBM. All rights reserved.
# *
# * Permission is hereby granted, free of charge, to any person obtaining a
# * copy of this software and associated documentation files (the "Software"),
# * to deal in the Software without restriction, including without limitation
# * the rights to use, copy, modify, merge, publish, distribute, sublicense,
# * and/or sell copies of the Software, and to permit persons to whom the
# * Software is furnished to do so, subject to the following conditions:
# *
# * The above copyright notice and this permission notice shall be included in
# * all copies or substantial portions of the Software.
# *
# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# * DEALINGS IN THE SOFTWARE.
# *
# */
server {
listen 9000;
server_name management_gw;
include /etc/api-gateway/conf.d/commons/common-headers.conf;
include /etc/api-gateway/conf.d/includes/resolvers.conf;
# Log locations with service name
lua_socket_log_errors off;
access_log /var/log/api-gateway/access.log platform;
error_log /var/log/api-gateway/management.log debug;
location /v1/apis {
access_by_lua_block {
local apis = require("management/apis")
local requestMethod = ngx.req.get_method()
if requestMethod == "GET" then
apis.getAPIs()
elseif requestMethod == "PUT" then
apis.addAPI()
elseif requestMethod == "POST" then
apis.addAPI()
elseif requestMethod == "DELETE" then
apis.deleteAPI()
else
ngx.status = 400
ngx.say("Invalid verb")
end
}
}
location /v1/tenants {
access_by_lua_block {
local tenants = require("management/tenants")
local requestMethod = ngx.req.get_method()
if requestMethod == "GET" then
tenants.getTenants()
elseif requestMethod == "PUT" then
tenants.addTenant()
elseif requestMethod == "POST" then
tenants.addTenant()
elseif requestMethod == "DELETE" then
tenants.deleteTenant()
else
ngx.status = 400
ngx.say("Invalid verb")
end
}
}
location /v1/subscriptions {
access_by_lua_block {
local subscriptions = require("management/subscriptions")
local requestMethod = ngx.req.get_method()
if requestMethod == "PUT" then
subscriptions.addSubscription()
elseif requestMethod == "DELETE" then
subscriptions.deleteSubscription()
else
ngx.status = 400
ngx.say("Invalid verb")
end
}
}
location /v1/subscribe {
access_by_lua_block {
local requestMethod = ngx.req.get_method()
if requestMethod == "GET" then
local redis = require "lib/redis"
local logger = require "lib/logger"
local utils = require "lib/utils"
local REDIS_HOST = os.getenv("REDIS_HOST")
local REDIS_PORT = os.getenv("REDIS_PORT")
local REDIS_PASS = os.getenv("REDIS_PASS")
redis.init(REDIS_HOST, REDIS_PORT, REDIS_PASS)
logger.info(utils.concatStrings({"Connected to redis at ", REDIS_HOST, ":", REDIS_PORT}))
while true do end
else
ngx.say("Invalid verb")
end
}
}
location /v1/health-check {
access_by_lua_block {
local requestMethod = ngx.req.get_method()
if requestMethod == "GET" then
local request = require "lib/request"
request.success(200, "Status: Gateway ready.")
else
ngx.say("Invalid verb")
end
}
}
}