Support

API: Internal/Beta

The support-service is implementing a basic system for support messages.

Rationale

At the moment this service is sending messages to the #devsupport/#support channels of slack. The messages are sent to slack via their webhooks feature. This service is not specified only to work with slack, but can be hooked up to any chat/mail service that supports webhooks.

Support ticket format

  • User information

    • UCloud username

    • Security role

    • Real name

  • Technical info

    • Request ID

    • User agent (Browser)

  • Type (Bug, Suggestion)

  • Custom message from the user

Table of Contents

1. Examples
Description
Creating a ticket
2. Remote Procedure Calls
Name Description
createTicket No description
3. Data Models
Name Description
CreateTicketRequest No description

Example: Creating a ticket

Frequency of useCommon
Actors
  • An authenticated user (user)
Communication Flow: Kotlin
SupportDescriptions.createTicket.call(
    CreateTicketRequest(
        message = "Consequatur harum excepturi nemo consequatur laboriosam repellendus vel quos.", 
        subject = "My subject", 
    ),
    user
).orThrow()

/*
Unit
*/
Communication Flow: Curl
# ------------------------------------------------------------------------------------------------------
# $host is the UCloud instance to contact. Example: 'http://localhost:8080' or 'https://cloud.sdu.dk'
# $accessToken is a valid access-token issued by UCloud
# ------------------------------------------------------------------------------------------------------

# Authenticated as user
curl -XPOST -H "Authorization: Bearer $accessToken" -H "Content-Type: content-type: application/json; charset=utf-8" "$host/api/support/ticket" -d '{
    "subject": "My subject",
    "message": "Consequatur harum excepturi nemo consequatur laboriosam repellendus vel quos."
}'


# {
# }
Communication Flow: Visual

Remote Procedure Calls

createTicket

API: Internal/Beta Auth: Users

Request Response Error
CreateTicketRequest Unit CommonErrorMessage

Data Models

CreateTicketRequest

API: Internal/Beta

data class CreateTicketRequest(
    val subject: String,
    val message: String,
)
Properties
subject: String
message: String