a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerpackage container
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 Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerimport org.forgerock.json.resource.NotSupportedException
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef 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 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 Millerdef userC1 = router.create("Users", null, scimUser1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userC2 = router.create("Users", "bjensen@example.com", scimUser1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * read(String resourceName[, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userR1 = router.read("Users/" + userC1._id)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userR2 = router.read("Users/bjensen@example.com")
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 Millerdef 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 Millerdef userU1 = router.update("Users/" + userC1._id, userR1._rev, scimUser1Updated)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userU2 = router.update("Users/bjensen@example.com", userR2._rev, scimUser1Updated)
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
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * query(String resourceContainer, Map params [, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller */
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef queryParams1 = [
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller _queryId: "query-all-ids"
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller]
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef queryParams2 = [
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller _queryFilter: "nickName eq \"Babs\""
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller]
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millertry {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller def userQ1 = router.query("Users", queryParams1)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller} catch (NotSupportedException e) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller //expected
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userQ2 = router.query("Users", queryParams2)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userQ3 = router.query("Users", queryParams2, callback)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef printResult = { resource, error ->
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller if (error != null) {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller print "Result" + resource
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller } else {
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller print "Error:" + error
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller }
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller}
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Millerdef userQ4 = router.query("Users", queryParams2, printResult)
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller/**
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * <pre>
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * delete(String resourceName, String revision [, List fieldFilter][,Map context])
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller * </pre>
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 Millerdef userA1 = router.action("Users", "clear", [_action: "clear"]);
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller
a9db114dad9c7a4d76c4f3124f467e14a2d26c86Brendan Miller"DDOE"