From a469c3de1bf8803ad580c9b98e876708b787f84b Mon Sep 17 00:00:00 2001 From: Mikhail Serdyukov Date: Sat, 27 Mar 2021 16:38:44 +0300 Subject: [PATCH 1/3] Add swagger api file --- swagger.yaml | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 swagger.yaml diff --git a/swagger.yaml b/swagger.yaml new file mode 100644 index 0000000..315ef7b --- /dev/null +++ b/swagger.yaml @@ -0,0 +1,282 @@ +swagger: "2.0" +info: + version: "1.0.0" + title: "Closecom" +tags: +- name: "account" +- name: "bluetooth" +- name: "messenger" +paths: + /account/create: + post: + tags: + - "account" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/Account" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/Token" + "400": + description: "Invalid email or password" + "405": + description: "Email already registered" + /account/auth: + post: + tags: + - "account" + parameters: + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/Account" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/Token" + "400": + description: "Invalid email or password" + "405": + description: "Email already registered" + /account/delete: + post: + tags: + - "account" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + responses: + "200": + description: "OK" + "401": + description: "Invalid token" + /bluetooth/user_info: + get: + tags: + - "bluetooth" + parameters: + - in: "query" + name: "bid" + required: true + type: "string" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/User" + "400": + description: "Invalid BID" + "401": + description: "Invalid token" + /bluetooth/set_bid: + post: + tags: + - "bluetooth" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + - in: "query" + name: "bid" + required: true + type: "string" + responses: + "200": + description: "OK" + "400": + description: "Invalid BID" + "401": + description: "Invalid token" + /messenger/dialogs: + get: + tags: + - "messenger" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/Dialogs" + "400": + description: "Invalid email" + "401": + description: "Invalid token" + /messenger/dialog_history: + get: + tags: + - "messenger" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + - in: "query" + name: "email" + required: true + type: "string" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/Dialog" + "400": + description: "Invalid email" + "401": + description: "Invalid token" + /messenger/send_message: + post: + tags: + - "messenger" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + - in: "query" + name: "email" + required: true + type: "string" + - in: "body" + name: "body" + required: true + schema: + $ref: "#/definitions/Message" + responses: + "200": + description: "OK" + schema: + $ref: "#/definitions/Dialog" + "400": + description: "Invalid email" + "401": + description: "Invalid token" + "405": + description: "Invalid message" + /messenger/delete_message: + post: + tags: + - "messenger" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + - in: "query" + name: "message_id" + required: true + type: "integer" + responses: + "200": + description: "OK" + "400": + description: "Invalid message id" + "401": + description: "Invalid token" + /messenger/delete_dialog: + post: + tags: + - "messenger" + parameters: + - in: "query" + name: "token" + required: true + type: "string" + - in: "query" + name: "dialog_id" + required: true + type: "integer" + responses: + "200": + description: "OK" + "400": + description: "Invalid message id" + "401": + description: "Invalid token" +definitions: + Id: + type: "integer" + example: 21796 + Email: + type: "string" + example: "user@mail.ru" + Account: + type: "object" + properties: + email: + $ref: "#/definitions/Email" + password: + type: "string" + description: "SHA-256 hash of user original password" + example: "f33ae3bc9a22cd7564990a794" + User: + type: "object" + properties: + email: + $ref: "#/definitions/Email" + name: + type: "string" + description: "User name" + example: "John" + Token: + type: "object" + properties: + token: + type: "string" + example: "e150a1ec81e8e93e1eae2c3a7" + Message: + type: "object" + properties: + sender: + $ref: "#/definitions/Email" + text: + type: "string" + example: "Hello, John!" + StoredMessage: + type: "object" + properties: + message_id: + $ref: "#/definitions/Id" + sender: + $ref: "#/definitions/Email" + text: + type: "string" + example: "Hello, John!" + Dialog: + type: "object" + properties: + user: + $ref: "#/definitions/User" + messages: + type: "array" + items: + $ref: "#/definitions/StoredMessage" + DialogInfo: + type: "object" + properties: + dialog_id: + $ref: "#/definitions/Id" + user: + $ref: "#/definitions/User" + last_message: + $ref: "#/definitions/Message" + Dialogs: + type: "object" + properties: + dialogs: + type: "array" + items: + $ref: "#/definitions/DialogInfo" \ No newline at end of file From 2e8013ff40eb5febe318b3b7167778d12220f34f Mon Sep 17 00:00:00 2001 From: Mikhail Serdyukov Date: Sat, 27 Mar 2021 16:47:43 +0300 Subject: [PATCH 2/3] Add recovery method --- swagger.yaml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/swagger.yaml b/swagger.yaml index 315ef7b..cf4d86b 100644 --- a/swagger.yaml +++ b/swagger.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "1.0.0" + version: "1.0.1" title: "Closecom" tags: - name: "account" @@ -59,6 +59,21 @@ paths: description: "OK" "401": description: "Invalid token" + /account/recovery: + post: + description: "Restore password for account by user email" + tags: + - "account" + parameters: + - in: "query" + name: "email" + required: true + type: "string" + responses: + "200": + description: "OK" + "401": + description: "Invalid token" /bluetooth/user_info: get: tags: From 5c6df2c76971c7b4faf5d0ae20577e45c8ed1d06 Mon Sep 17 00:00:00 2001 From: Mikhail Serdyukov Date: Sat, 27 Mar 2021 17:09:25 +0300 Subject: [PATCH 3/3] Api change --- swagger.yaml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/swagger.yaml b/swagger.yaml index cf4d86b..58dbe1b 100644 --- a/swagger.yaml +++ b/swagger.yaml @@ -140,16 +140,16 @@ paths: required: true type: "string" - in: "query" - name: "email" + name: "dialog_id" required: true - type: "string" + type: "integer" responses: "200": description: "OK" schema: $ref: "#/definitions/Dialog" "400": - description: "Invalid email" + description: "Invalid dialog id" "401": description: "Invalid token" /messenger/send_message: @@ -162,9 +162,9 @@ paths: required: true type: "string" - in: "query" - name: "email" + name: "dialog_id" required: true - type: "string" + type: "integer" - in: "body" name: "body" required: true @@ -260,6 +260,9 @@ definitions: text: type: "string" example: "Hello, John!" + timestamp: + type: "integer" + example: 1616853526 StoredMessage: type: "object" properties: @@ -270,6 +273,9 @@ definitions: text: type: "string" example: "Hello, John!" + timestamp: + type: "integer" + example: 1616853526 Dialog: type: "object" properties: