Secib - adding new operations (Certified Connector) (#1941)

* Adding to Secib Connector two new supported operations and updating README to reflect such changes

* Changing a description to remove Power Platform product names + Deleting empty schema
This commit is contained in:
matthieuHellaSecib 2022-09-05 17:48:24 +02:00 коммит произвёл GitHub
Родитель 4f4ee5ae4e
Коммит 431e703c6f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 499 добавлений и 78 удалений

Просмотреть файл

@ -1,55 +1,66 @@
# SECIB
SECIB provides a REST API which can be used to manage your SECIB's data (such as your case files, your calendar, your documents, etc).
The SECIB connector uses that REST API to allow SECIB's users to automate their workflow. For instance, you can trigger a worklflow when a new case file is created in SECIB neo and then process this case file before sending an email notification with the case file's information to other SECIB's users.
## Prerequisites
You will need the following to proceed :
- A Microsoft Power Apps or Microsoft Power Automate plan enabling the use of Premium connectors
- A SECIB neo/air or a Gestisoft licence. Please go to https://www.secib.fr/ for further information.
- A SECIB neo/air or a Gestisoft licence. Please go to <https://www.secib.fr/> for further information.
## Supported Triggers
The connector supports the following triggers :
#### Case File
### Case File
- `DossierCreated`: Triggers a flow when a case file is created in SECIB neo/air or in Gestisoft.
## Supported Operations
The connector supports the following operations :
#### Case File
### Case File
- `GetDossierById`: allows the recovery of a case file which is corresponding to an identifier specified in parameter.
#### Law firm
### Law firm
- `GetCabinets`: Retrieving each accessible firm for the current user.
#### View
### View
- `GetViewByViewName`: Retrieve data from a view in the SECIB database.
- `(V1) GetViewByViewName`: Retrieve data from a view in the SECIB database.
- `(V2) GetViewByViewName`: Retrieve data from a view in the SECIB database, using a where clause.
- `GetViewDynamicSchema`: Retrieve the schema of a view in the SECIB database (operation used within GetViewByName to retrieve the dynamic schema of the operation's response).
#### Webhook
### Webhook
- `DeleteWebhook`: Operation used to delete a webhook subscription.
### Time Spent
- `SaveTempsPasse`: Let a user encode a time spent which will be then saved into the application.
## Obtaining Credentials
Required. Explain the authentication method and how to get the credentials.
The connector needs authentication with an Azure Active Directory account and your tenant must be granted with access to our web API. You can contact us at **support.flow@secib.fr** for more information.
## Known Issues and Limitations
Version 1.0 **doesn't support user authentication**. To put it another way, when you are using the SECIB connector this is **on behalf of a whole law firm**.
Version 2.0 **doesn't support user authentication**. To put it another way, when you are using the SECIB connector this is **on behalf of a whole law firm**.
## Frequently Asked Questions
This section is empty. You can submit your questions to **support.flow@secib.fr**.
## Deployment Instructions
Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Flow and PowerApps
Connect with SECIB Support to request Client Id and Client Secret for authorization

Просмотреть файл

@ -1,7 +1,7 @@
{
"swagger": "2.0",
"info": {
"version": "v1",
"version": "v2",
"title": "SECIB",
"description": "The SECIB connector allows SECIB users to automate their workflow. For instance, you can trigger a worklflow when a new case file is created in SECIB neo.",
"contact": {
@ -12,29 +12,18 @@
},
"host": "secibconnecteurflow.azurewebsites.net",
"basePath": "/",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"schemes": ["https"],
"consumes": ["application/json"],
"produces": ["application/json"],
"paths": {
"/api/v1/secib/Dossiers/{id}": {
"get": {
"description": "allows the recovery of a case file wich is corresponding to an identifier specified in parameter.",
"summary": "Retrieving a case file",
"tags": [
"Dossiers"
],
"tags": ["Dossiers"],
"operationId": "GetDossierById",
"deprecated": false,
"produces": [
"text/plain",
"application/json"
],
"produces": ["text/plain", "application/json"],
"parameters": [
{
"name": "id",
@ -176,7 +165,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -194,7 +183,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -212,7 +201,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -236,7 +225,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -254,7 +243,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -272,7 +261,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -290,7 +279,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -427,7 +416,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -445,7 +434,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -469,7 +458,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -487,7 +476,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -505,16 +494,14 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "When a case file is created",
"tags": [
"Dossiers"
],
"tags": ["Dossiers"],
"description": "Triggers a flow when a case file is created in SECIB neo, SECIB air or in Gestisoft.",
"operationId": "DossierCreated",
"x-ms-trigger": "single",
@ -547,9 +534,7 @@
"x-ms-visibility": "internal"
}
},
"required": [
"webhookUri"
]
"required": ["webhookUri"]
}
}
]
@ -578,7 +563,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -596,7 +581,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -620,7 +605,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -638,7 +623,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -656,7 +641,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -674,16 +659,14 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Deleting a webhook subscription",
"tags": [
"Webhooks"
],
"tags": ["Webhooks"],
"description": "Operation used to delete a webhook subscription.",
"operationId": "DeleteWebhook",
"x-ms-visibility": "internal",
@ -771,7 +754,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -795,7 +778,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -813,7 +796,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -831,16 +814,14 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Retrieving firms",
"tags": [
"Cabinets"
],
"tags": ["Cabinets"],
"description": "Retrieving each accessible firm for the current user.",
"operationId": "GetCabinets",
"x-ms-visibility": "important",
@ -882,7 +863,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -900,7 +881,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -924,7 +905,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -942,7 +923,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -960,7 +941,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -978,16 +959,14 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Retrieving view's data",
"tags": [
"Views"
],
"tags": ["Views"],
"description": "Retrieve data from a view in the SECIB database.",
"operationId": "GetViewByViewName",
"parameters": [
@ -1018,6 +997,209 @@
]
}
},
"/api/v2/secib/Views/{name}": {
"get": {
"responses": {
"200": {
"description": "OK.",
"schema": {
"type": "object",
"properties": {},
"x-ms-dynamic-schema": {
"operationId": "GetViewDynamicSchema",
"parameters": {
"name": {
"parameter": "name"
},
"cabinet": {
"parameter": "cabinet"
}
},
"value-path": "schema"
}
}
},
"310": {
"description": "Too Many Redirects.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"400": {
"description": "Bad Request.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"401": {
"description": "Unauthorized request.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
},
"headers": {
"WWW-Authenticate": {
"description": "WWW-Authenticate",
"type": "string"
}
}
},
"403": {
"description": "Forbidden.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"404": {
"description": "Not Found.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"500": {
"description": "Internal Server Error.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"503": {
"description": "Service Unavailable.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Retrieving view's data with parameters",
"tags": ["Views"],
"description": "Retrieve data from a view in the SECIB database, using a where clause.",
"operationId": "GetViewByViewNameV2",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"type": "string",
"description": "Name of the view in the SECIB database.",
"x-ms-summary": "View's name",
"x-ms-visibility": "important",
"x-ms-url-encoding": "single"
},
{
"name": "cabinet",
"in": "query",
"required": false,
"type": "string",
"description": "Identifier of the firm to work with.",
"x-ms-summary": "Firm's identifier",
"x-ms-dynamic-values": {
"operationId": "GetCabinets",
"value-path": "id",
"value-collection": "result/items",
"value-title": "nom"
}
},
{
"name": "columnName",
"in": "query",
"required": true,
"type": "string",
"description": "Name of the view's column which will be used to order the result.",
"x-ms-summary": "Order by column's name"
},
{
"name": "filter",
"in": "query",
"required": false,
"type": "string",
"description": "The where clause that will be used in the sql query (e.g. : name LIKE '%Secib%').",
"x-ms-summary": "Sql where clause"
}
]
}
},
"/api/v1/secib/Views/{name}/dynamic-schema": {
"get": {
"responses": {
@ -1045,7 +1227,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -1063,7 +1245,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
},
@ -1087,7 +1269,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -1105,7 +1287,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -1123,7 +1305,7 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
@ -1141,16 +1323,14 @@
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Retrieving view's schema",
"tags": [
"Views"
],
"tags": ["Views"],
"operationId": "GetViewDynamicSchema",
"description": "Retrieve the dynamic schema of the GetView operation's response.",
"x-ms-visibility": "internal",
@ -1173,6 +1353,233 @@
}
]
}
},
"/api/v1/secib/TempsPasses": {
"post": {
"responses": {
"200": {
"description": "OK."
},
"310": {
"description": "Too Many Redirects.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"400": {
"description": "Bad Request.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"401": {
"description": "Unauthorized request.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
},
"headers": {
"WWW-Authenticate": {
"description": "WWW-Authenticate",
"type": "string"
}
}
},
"403": {
"description": "Forbidden.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"404": {
"description": "Not Found.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"500": {
"description": "Internal Server Error.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
},
"503": {
"description": "Service Unavailable.",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error message.",
"title": "message"
},
"statusCode": {
"type": "integer",
"description": "Http status code of the request.",
"title": "HttpStatusCode"
}
}
}
}
},
"summary": "Saving a time spent",
"tags": ["TempsPasses"],
"description": "Let a user encode a time spent which will be then saved into the application.",
"operationId": "SaveTempsPasse",
"x-ms-visibility": "important",
"parameters": [
{
"name": "Cabinet",
"in": "query",
"required": false,
"type": "string",
"description": "Identifier of the firm to work with.",
"x-ms-summary": "Firm's identifier",
"x-ms-dynamic-values": {
"operationId": "GetCabinets",
"value-path": "id",
"value-collection": "result/items",
"value-title": "nom"
}
},
{
"name": "Content-Type",
"in": "header",
"required": true,
"type": "string",
"x-ms-visibility": "internal",
"default": "application/json"
},
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"Date": {
"type": "string",
"format": "date",
"description": "Date of the time spent (e.g. : 2022-05-25).",
"title": "Time spent's date"
},
"CodeActiviteId": {
"type": "integer",
"format": "int32",
"description": "Identifier of the activity code.",
"title": "Activity code's identifier"
},
"DossierId": {
"type": "integer",
"format": "int32",
"description": "Identifier of the case file.",
"title": "Case file's identifier"
},
"IntervenantId": {
"type": "integer",
"format": "int32",
"description": "Identifier of the stakeholder.",
"title": "Stakeholder's identifier"
},
"Libelle": {
"type": "string",
"description": "Label of the time spent.",
"title": "Time spent's label"
},
"MontantHt": {
"type": "number",
"description": "Amount without taxes.",
"title": "Pre-tax amount"
},
"Duree": {
"type": "string",
"pattern": "^\\d{1,2}:\\d{2}$",
"description": "Duration of the time spent (format HH:mm - e.g. : 01:00).",
"title": "Time spent's duration"
}
},
"required": [
"Date",
"CodeActiviteId",
"DossierId",
"IntervenantId",
"Duree"
]
}
}
]
}
}
},
"definitions": {},
@ -1218,6 +1625,9 @@
},
{
"name": "Cabinets"
},
{
"name": "TempsPasses"
}
],
"x-ms-connector-metadata": [
@ -1234,4 +1644,4 @@
"propertyValue": "Business Management;Productivity"
}
]
}
}