00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller/*
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller *
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * Copyright (c) 2013-2014 ForgeRock AS. All Rights Reserved
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller *
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * The contents of this file are subject to the terms
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * of the Common Development and Distribution License
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * (the License). You may not use this file except in
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * compliance with the License.
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller *
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * You can obtain a copy of the License at
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * http://forgerock.org/license/CDDLv1.0.html
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * See the License for the specific language governing
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * permission and limitations under the License.
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller *
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * When distributing Covered Code, include this CDDL
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * Header Notice in each file and include the License file
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * at http://forgerock.org/license/CDDLv1.0.html
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * If applicable, add the following below the CDDL Header,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * with the fields enclosed by brackets [] replaced by
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * your own identifying information:
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller * "Portions Copyrighted [year] [name of copyright owner]"
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller */
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller(function(){
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller if (request.method === "create") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "create",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller newResourceId: request.newResourceId,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller content: request.content,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "read") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "read",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "update") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "update",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller revision: request.revision,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller content: request.content,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "patch") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
1db16d5fc8791911152d0a0ce457a3ed3dfb9905Jake Feasel method: "patch",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller revision: request.revision,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller patch: request.patchOperations,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "query") {
665bf571c7401cd671d43cf685f1d0fb5ba222f2Laurent Bristiel // query results must be returned as a list of maps
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return [ {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "query",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller pagedResultsCookie: request.pagedResultsCookie,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller pagedResultsOffset: request.pagedResultsOffset,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller pageSize: request.pageSize,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller queryExpression: request.queryExpression,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller queryId: request.queryId,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller queryFilter: request.queryFilter,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller content: request.content,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } ];
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "delete") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "delete",
e2cd22a6774d3e0685b065c43a4078728bb6e279Jake Feasel resourceName: request.resourcePath,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller revision: request.revision,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else if (request.method === "action") {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller return {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller method: "action",
1db16d5fc8791911152d0a0ce457a3ed3dfb9905Jake Feasel action: request.action,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller content: request.content,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller parameters: request.additionalParameters,
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller context: context.current
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller } else {
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller throw { code : 500, message : "Unknown request type " + request.method };
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller }
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller})();
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller
00b4fee8af63dd16122632f8f4c077b045704703Brendan Mmiller