From 47fe6ad28ae3c80577db21b1822a31f18d6e0ff3 Mon Sep 17 00:00:00 2001
From: Marco Del Tufo <marco.deltufo@exact-lab.it>
Date: Tue, 8 Aug 2023 08:26:18 +0000
Subject: [PATCH] Update as-services.md

---
 .../server-side-extensions/as-services.md     | 68 +++++++------------
 1 file changed, 24 insertions(+), 44 deletions(-)

diff --git a/docs/software-developer-documentation/server-side-extensions/as-services.md b/docs/software-developer-documentation/server-side-extensions/as-services.md
index 2017588c25c..3f9710c141c 100644
--- a/docs/software-developer-documentation/server-side-extensions/as-services.md
+++ b/docs/software-developer-documentation/server-side-extensions/as-services.md
@@ -3,52 +3,37 @@ Custom Application Server Services
 
 ## Introduction
 
-On Data Store Server (DSS) aggregation/ingestion services based on
-Jython scripts can be used to extend openBIS by custom services. These
-services have full access on data store and Application Server (AS).
+On Data Store Server (DSS) aggregation/ingestion services based on Jython scripts can be used to extend openBIS by custom services. These services have full access on data store and Application Server (AS).
 
-Often only access on AS is needed. Going over DSS is a detour. For such
-cases it is better to write an AS core plugin of type `services`.
+Often only access on AS is needed. Going over DSS is a detour. For such cases it is better to write an AS core plugin of type `services`.
 
 ## How to write a custom AS service core plugin
 
 Here is the recipe to create an AS core plugin of type `services`:
 
-1.  The
-    folder `<core plugin folder>/<module>/<version>/as/services/<core plugin name>`
-    has to be created.
+1.  The folder `<core plugin folder>/<module>/<version>/as/services/<core plugin name>` has to be created.
 
-2.  In this folder two files have to be created: `plugin.properties`
-    and `script.py`. The properties file should contain:
+2.  In this folder two files have to be created: `plugin.properties` and `script.py`. The properties file should contain:
 
     **plugin.properties**
 
-        class = ch.ethz.sis.openbis.generic.server.asapi.v3.helper.service.JythonBasedCustomASServiceExecutor
-        script-path = script.py
+    ```
+    class = ch.ethz.sis.openbis.generic.server.asapi.v3.helper.service.JythonBasedCustomASServiceExecutor
+    script-path = script.py
+    ```
 
-3.  The script file should have the function `process` with two
-    arguments. The first argument is the context. It contains the
-    methods `getSessionToken()` and `getApplicationService()` which
-    returns an instance
-    of `ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi`. The
-    second argument is a map of key-value pairs. The key is a string and
-    the values is an arbitrary object.  
+3.  The script file should have the function `process` with two arguments. The first argument is the context. It contains the methods `getSessionToken()` and `getApplicationService()` which returns an instance of `ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi`. The second argument is a map of key-value pairs. The key is a string and the values is an arbitrary object. Anything returned by the script will be returned to the caller of the service. Here is an example of a script which creates a space:
+**script.py**
+```py
+from ch.ethz.sis.openbis.generic.asapi.v3.dto.space.create import SpaceCreation
 
-    Anything returned by the script will be returned to the caller of
-    the service. Here is an example of a script which creates a space:
-
-    **script.py**
-
-        from ch.ethz.sis.openbis.generic.asapi.v3.dto.space.create import SpaceCreation
-
-        def process(context, parameters):
-            space_creation = SpaceCreation()
-            space_creation.code = parameters.get('space_code');
-            result = context.applicationService.createSpaces(context.sessionToken, [space_creation]);
-            return "Space created: %s" % result
-
-    Note, that all changes on the AS database will be done in one
-    transaction.
+def process(context, parameters):
+    space_creation = SpaceCreation()
+    space_creation.code = parameters.get('space_code');
+    result = context.applicationService.createSpaces(context.sessionToken, [space_creation]);
+    return "Space created: %s" % result
+```
+Note, that all changes on the AS database will be done in one transaction.
 
 ## How to use a custom AS service
 
@@ -81,14 +66,9 @@ the method `withParameter()`.
 
 Here is a code example:
 
-    CustomASServiceExecutionOptions options = new CustomASServiceExecutionOptions().withParameter("space_code", "my-space");
-    Object result = service.executeCustomASService(sessionToken, new CustomASServiceCode("space-creator"), options);
-    System.out.println(result);
-
+```py
+CustomASServiceExecutionOptions options = new CustomASServiceExecutionOptions().withParameter("space_code", "my-space");
+Object result = service.executeCustomASService(sessionToken, new CustomASServiceCode("space-creator"), options);
+System.out.println(result);
+```
  
-
- 
-
- 
-
- 
\ No newline at end of file
-- 
GitLab