## Client Module ### Commandline Client The sdk provides a commandline-client as a runnable .jar, to be able to use the sdk without any coding. #### Setup & Build 1. Build project root wih ``./mvnw clean package`` 2. Go to client/target and find a runnable jar ``fit-connect-client.jar`` 3. Provide [config yaml](../config.yml): 1. set environment variable ``FIT_CONNECT_CONFIG``: 1. Linux/MacOS: ``export FIT_CONNECT_CONFIG=path/to/config.yml`` 2. Windows: ``set FIT_CONNECT_CONFIG=C:\Path\To\config.yml`` 2. Initialize client via ApplicationConfigLoader: ````java var config = ApplicationConfigLoader.loadConfig("absolute/path/to/config.yml"); var senderClient = ClientFactory.senderClient(config); ```` 3. put ``config.yml`` in same path as the .jar-file 5. run client with ``java -jarfit-connect-client.jar [COMMAND] [OPTIONS]`` #### SEND Single Submission Example The send command submits a new submission to a destination. Apart from optional attachments, all options are mandatory. ````sh java -jar fit-connect-client.jar send --destinationId=1b7d1a24-a6c8-4050-bb71-ae3749ec432f --serviceName=Test --leikaKey=urn:de:fim:leika:leistung:99400048079000 --attachments="C:/path/to/attachments/dummy1.pdf", "C:/path/to/attachments/dummy2.pdf" --data="C:/path/to/data/date.json" --dataType=json ```` > Hint: copy example on one line for execution ! #### LIST Submissions Example The list command lists all submissionIds for a given destinationID. ````sh java -jar fit-connect-client.jar list --destinationID=1b7d1a24-a6c8-4050-bb71-ae3749ec432f ```` #### GET Single Submission Example The get command loads a submission by `submissionId` and stores data and attachments in the given target location. If no target is set, the cmd-client saves the data into in a folder named by the `submissionId` within the working dir of the runnable jar. ````sh java -jar fit-connect-client.jar get --submissionID=cc9b9b3c-d4b1-4ac7-a70b-e7ca76e88608 --target=Users/submissions/data ```` #### Batch Mode To send multiple submission with a single command, the client can be used in batch mode: ````sh java -jar fit-connect-client.jar batch --data=batch_data.csv ```` Currently, the import of CSV is supported. Follow the schema below, setting up your data: ````csv destinationId, serviceName, leikaKey, data, dataType, attachments 1b7d1a24-a6c8-4050-bb71-ae3749ec432f, Test1, "urn:de:fim:leika:leistung:99400048079000", /path/to/data/data.json, "JSON", "path/to/attachment/report1.pdf, path/to/attachment/report2.pdf" 1b7d1a24-a6c8-4050-bb71-ae3749ec432d, Test2, "urn:de:fim:leika:leistung:99400048079000", /path/to/data/data2.xml, "XML", "path/to/attachment/report.pdf" ```` > Windows paths: escape windows paths with `\\`, e.g. `C:\\path\\to\\file\\file.txt` ! > #### Usage And Commands ````shell Usage: <main class> [command] [command options] Commands: send Send a submission Usage: send [options] Options: --attachments Attachments as list of paths Default: [] * --data Path to JSON or XML data * --dataType Data mime type (json/xml), default JSON Possible Values: [json, xml] * --destinationId Unique destination identifier in UUID format * --leikaKey The LeikaKey of the service type * --serviceName Name of the service type list Lists available submissions Usage: list [options] Options: * --destinationId Unique destination identifier in UUID format get Fetches one submission by id Usage: get [options] Options: * --submissionId Unique submission identifier in UUID format --target Target folder where attachments and data is written to all Fetches all available submission for a destination Usage: all [options] Options: * --destinationId Unique destination identifier in UUID format --target Target folder where attachments and data is written to batch Send a batch of configured submissions from a csv file Usage: batch [options] Options: * --data Path to submission data as csv ````