add custom message endpoint to example
diff --git a/xos/api/examples/exampleservice/get_exampletenant_message.sh b/xos/api/examples/exampleservice/get_exampletenant_message.sh
new file mode 100755
index 0000000..96ce65c
--- /dev/null
+++ b/xos/api/examples/exampleservice/get_exampletenant_message.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# this example illustrates using a custom REST API endpoint
+
+source ./config.sh
+
+if [[ "$#" -ne 1 ]]; then
+ echo "Syntax: get_exampletenant_message.sh <id>"
+ exit -1
+fi
+
+ID=$1
+
+curl -H "Accept: application/json; indent=4" -u $AUTH -X GET $HOST/api/tenant/exampletenant/$ID/message/
diff --git a/xos/api/examples/exampleservice/put_exampletenant_message.sh b/xos/api/examples/exampleservice/put_exampletenant_message.sh
new file mode 100755
index 0000000..bf0810d
--- /dev/null
+++ b/xos/api/examples/exampleservice/put_exampletenant_message.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# this example illustrates using a custom REST API endpoint
+
+source ./config.sh
+
+if [[ "$#" -ne 2 ]]; then
+ echo "Syntax: put_exampletenant_message.sh <id> <message>"
+ exit -1
+fi
+
+ID=$1
+NEW_MESSAGE=$2
+
+DATA=$(cat <<EOF
+{"tenant_message": "$NEW_MESSAGE"}
+EOF
+)
+
+curl -H "Accept: application/json; indent=4" -H "Content-Type: application/json" -u $AUTH -X PUT -d "$DATA" $HOST/api/tenant/exampletenant/$ID/message/
diff --git a/xos/api/tenant/exampletenant.py b/xos/api/tenant/exampletenant.py
index b046a88..c50680f 100644
--- a/xos/api/tenant/exampletenant.py
+++ b/xos/api/tenant/exampletenant.py
@@ -44,6 +44,9 @@
def get_urlpatterns(self, api_path="^"):
patterns = super(ExampleTenantViewSet, self).get_urlpatterns(api_path=api_path)
+ # example to demonstrate adding a custom endpoint
+ patterns.append( self.detail_url("message/$", {"get": "get_message", "put": "set_message"}, "message") )
+
return patterns
def list(self, request):
@@ -53,3 +56,13 @@
return Response(serializer.data)
+ def get_message(self, request, pk=None):
+ example_tenant = self.get_object()
+ return Response({"tenant_message": example_tenant.tenant_message})
+
+ def set_message(self, request, pk=None):
+ example_tenant = self.get_object()
+ example_tenant.tenant_message = request.data["tenant_message"]
+ example_tenant.save()
+ return Response({"tenant_message": example_tenant.tenant_message})
+