a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/*
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * DO NOT REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller *
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * Copyright (c) 2012 ForgeRock AS. All rights reserved.
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller *
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * The contents of this file are subject to the terms
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * of the Common Development and Distribution License
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * (the License). You may not use this file except in
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * compliance with the License.
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller *
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * You can obtain a copy of the License at
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * http://forgerock.org/license/CDDLv1.0.html
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * See the License for the specific language governing
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * permission and limitations under the License.
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller *
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * When distributing Covered Code, include this CDDL
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * Header Notice in each file and include the License file
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * at http://forgerock.org/license/CDDLv1.0.html
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * If applicable, add the following below the CDDL Header,
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * with the fields enclosed by brackets [] replaced by
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * your own identifying information:
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * "Portions Copyrighted [year] [name of copyright owner]"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar scimUser1 = {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "externalId": "701984",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "userName": "bjensen@example.com",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "name": {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "formatted": "Ms. Barbara J Jensen III",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "familyName": "Jensen",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "givenName": "Barbara",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "middleName": "Jane",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "honorificPrefix": "Ms.",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "honorificSuffix": "III"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller },
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "assignedDashboard": ["Salesforce", "Google", "ConstantContact"],
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "displayName": "Babs Jensen",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "nickName": "Babs",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "profileUrl": "https://login.example.com/bjensen"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * create(String resourceContainer, String newResourceId, Map content[, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userC1 = router.create("Users", null, scimUser1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userC2 = router.create("Users", "bjensen@example.com", scimUser1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userC3 = router.create("Users", "paramTest", scimUser1, { "x" : "marksTheSpot" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userC4 = router.create("Users", "badParamTest", scimUser1, { "_x" : "badParam" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "error" : "Assertion failed: router.create should have disallowed unknown parameter" } ;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (e.error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw e;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * read(String resourceName[, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userR1 = router.read("Users/" + userC1._id)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userR2 = router.read("Users/bjensen@example.com")
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userR3 = router.read("Users/paramTest", { "x" : "marksTheSpot" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userR4 = router.read("Users/badParamTest", { "_x" : "badParam" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "error" : "Assertion failed: router.read should have disallowed unknown parameter" } ;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (e.error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw e;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * update(String resourceName, String revision, Map content [, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar scimUser1Updated = scimUser1
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.userType = "Employee"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.title = "Tour Guide"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.preferredLanguage = "en_US"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.locale = "en_US"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.timezone = "America/Los_Angeles"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerscimUser1Updated.active = true
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userU1 = router.update("Users/" + userC1._id, userR1._rev, scimUser1Updated)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userU2 = router.update("Users/bjensen@example.com", userR2._rev, scimUser1Updated)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userU3 = router.update("Users/paramTest", userR3._rev, scimUser1Updated, { "x" : "marksTheSpot" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userU4 = router.update("Users/paramTest", userR4._rev, scimUser1Updated, { "_x" : "badParam" })
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "error" : "Assertion failed: router.update should have disallowed unknown parameter" } ;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (e.error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw e;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * patch(String resourceName, String revision, Map patch [, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller// TODO test patch
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * query(String resourceContainer, Map params [, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar queryParams1 = {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "_queryId": "query-all-ids"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar queryParams2 = {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "_queryFilter": "nickName eq \"Babs\""
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userQ1 = router.query("Users", queryParams1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller //expected
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userQ2 = router.query("Users", queryParams2)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userQ3 = router.query("Users", queryParams2, callback)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar printResult = function (resource, error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (error == null) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller java.lang.System.out.println("Result: " + resource)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller } else {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller java.lang.System.out.println("Error: " + error)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userQ4 = router.query("Users", queryParams2, printResult)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan MillerqueryParams2.x = "marksTheSpot"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userQ5 = router.query("Users", queryParams2, printResult)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller queryParams2._x = "badParam"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userQ6 = router.query("Users", queryParams2, printResult)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "error" : "Assertion failed: router.query should have disallowed unknown parameter" } ;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (e.error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw e;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * delete(String resourceName, String revision [, params][, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var userD2 = router.delete("Users", null, { "_illegal" : "parameter"})
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "error" : "Assertion failed: router.delete should have disallowed unknown parameter" } ;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (e.error) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw e;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * action(String resourceName, [String actionId,] Map params, Map content[, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userA1 = router.action("Users", "clear", {}, {})
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller// _parameters are allowed on action requests
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar userA2 = router.action("Users", "clear", {}, {"_allowThis" : "parameter"})
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar arrayVar = ["Salesforce", "Google", "ConstantContact"]
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar hasGoogle = (userR1.assignedDashboard.indexOf("Google") !== -1);
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millervar ccPosition = userR1.assignedDashboard.indexOf("ConstantContact");
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!userR1.hasOwnProperty("profileUrl")) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "Property 'profileUrl' expected but not found" };
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!hasGoogle) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "Google expected but not present" };
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (ccPosition !== 2) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "Constant Contact expected at position 2, indexOf returned " + ccPosition };
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (userR1.assignedDashboard.join("+") !== "Salesforce+Google+ConstantContact") {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "AssignedDashboard array expected to be joined together into a '+' delimited string"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (userR1.name.formatted.split(' ').length !== 5) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "formatted name '" + userR1.name.formatted + "' expected to be split into a 5 element array, based on spaces."};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!createRequest instanceof org.forgerock.json.resource.CreateRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "createRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!readRequest instanceof org.forgerock.json.resource.ReadRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "readRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!updateRequest instanceof org.forgerock.json.resource.UpdateRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "updateRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!patchRequest instanceof org.forgerock.json.resource.PatchRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "patchRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!queryRequest instanceof org.forgerock.json.resource.QueryRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "queryRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!deleteRequest instanceof org.forgerock.json.resource.DeleteRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "deleteRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (!actionRequest instanceof org.forgerock.json.resource.ActionRequest) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "actionRequest type is not match"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerif (context.security) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller var securityContext = context.security;
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (!securityContext.authenticationId == "bjensen@example.com") {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "code": 401,
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "reason": "Unauthorized",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "message": "context has not SecurityContext",
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller "cause": new Packages.org.forgerock.json.resource.NotFoundException("bjensen@example.com")
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller };
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} else {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller throw { "message": "context has not SecurityContext"};
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}