diff --git a/.insomnia/ApiSpec/spc_7d3e54623d1f4923a49c576cd59a3541.yml b/.insomnia/ApiSpec/spc_7d3e54623d1f4923a49c576cd59a3541.yml
new file mode 100755
index 00000000..87710a87
--- /dev/null
+++ b/.insomnia/ApiSpec/spc_7d3e54623d1f4923a49c576cd59a3541.yml
@@ -0,0 +1,362 @@
+_id: spc_7d3e54623d1f4923a49c576cd59a3541
+type: ApiSpec
+parentId: wrk_84bc4b982502477baa52fb4972f3c717
+modified: 1625309127869
+created: 1625231075476
+fileName: fosscord-api.yaml
+contents: >-
+ swagger: "2.0"
+
+ info:
+ description: "Fosscord backend api docs"
+ version: "1.0.0"
+ title: "Fosscord Backend API"
+ termsOfService: "https://github.com/fosscord/fosscord/blob/master/LICENSE"
+ license:
+ name: "AGPL 3.0"
+ url: "https://www.gnu.org/licenses/agpl-3.0.html"
+ host: "dev.fosscord.com"
+
+ basePath: "/api/v9"
+
+ tags:
+ - name: "Audit Log"
+ description: "Guild Audit Log resource"
+ externalDocs:
+ description: "Find out more"
+ url: "https://discord.com/developers/docs/resources/audit-log"
+ - name: "Channel"
+ description: "Channel resource"
+ externalDocs:
+ description: "Find out more"
+ url: "https://discord.com/developers/docs/resources/channel"
+ schemes:
+ - "https"
+ - "http"
+ paths:
+ /guilds/{guildId}/audit-logs:
+ get:
+ summary: "Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG' permission."
+ tags:
+ - Audit Log
+ parameters:
+ - $ref: "#/definitionsParam/guildId"
+ - name: user_id
+ in: query
+ type: string
+ description: "Type of snowflake - Filter the log for actions made by a user"
+ - name: action_type
+ in: query
+ type: integer
+ description: "The type of audit log event"
+ - name: before
+ in: query
+ type: string
+ description: "Type of snowflake - Filter the log before a certain entry id"
+ - name: limit
+ in: query
+ type: integer
+ description: "How many entries are returned (default 50, minimum 1, maximum 100)"
+ responses:
+ '200':
+ description: "Audit Log Object"
+ schema:
+ $ref: "#/definitions/Audit%20Log"
+ /channels/{channelId}:
+ get:
+ summary: "Get a channel by ID. Returns a channel object. If the channel is a thread, a thread member object is included in the returned result."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ responses:
+ '200':
+ description: "Channel Object"
+ schema:
+ $ref: "#/definitions/Channel"
+ patch:
+ summary: "Update a channel's settings. Returns a channel on success, and a 400 BAD REQUEST on invalid parameters. All JSON parameters are optional."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ - name: body (Group DM)
+ in: body
+ description: "The request body when modifying Group DM channels - Fires a Channel Update Gateway event."
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "1-100 character channel name"
+ icon:
+ type: string
+ format: byte
+ description: "base64 encoded icon"
+ - name: body (Guild channel)
+ in: body
+ description: "Requires the MANAGE_CHANNELS permission for the guild. Fires a Channel Update Gateway event. If modifying a category, individual Channel Update events will fire for each child channel that also changes. If modifying permission overwrites, the MANAGE_ROLES permission is required. Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel)."
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "1-100 character channel name"
+ type:
+ type: integer
+ description: "The type of channel; only conversion between text and news is supported and only in guilds with the \"NEWS\" feature"
+ position:
+ type: integer
+ default: null
+ description: "The position of the channel in the left-hand listing"
+ topic:
+ type: string
+ default: null
+ description: "0-1024 character channel topic"
+ nsfw:
+ type: boolean
+ default: null
+ description: "Whether the channel is nsfw"
+ rate_limit_per_user:
+ type: integer
+ default: null
+ description: "Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages or manage_channel, are unaffected"
+ bitrate:
+ type: integer
+ default: null
+ description: "The bitrate (in bits) of the voice channel; 8000 to 96000 (128000 for VIP servers)"
+ user_limit:
+ type: integer
+ default: null
+ description: "The user limit of the voice channel; 0 refers to no limit, 1 to 99 refers to a user limit"
+ permission_overwrites:
+ type: array
+ items:
+ $ref: "#/definitions/Overwrite"
+ default: null
+ description: "Channel or category-specific permissions"
+ parent_id:
+ $ref: "#/definitions/Snowflake"
+ default: null
+ description: "Id of the new parent category for a channel"
+ rtc_region:
+ type: string
+ default: null
+ description: "Channel voice region id, automatic when set to null"
+ video_quality_mode:
+ type: integer
+ default: null
+ description: "The camera video quality mode of the voice channel"
+ default_auto_archive_duration:
+ type: integer
+ default: null
+ description: "The default duration for newly created threads in the channel, in minutes, to automatically archive the thread after recent activity"
+ - name: body (Thread)
+ in: body
+ description: "When setting archived to false, when locked is also false, only the SEND_MESSAGES permission is required.Otherwise, requires the MANAGE_THREADS permission. Fires a Thread Update Gateway event. Requires the thread to have archived set to false or be set to false in the request."
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: "1-100 character channel name"
+ archived:
+ type: boolean
+ description: "Whether the channel is archived"
+ auto_archive_duration:
+ type: integer
+ description: "Duration in minutes to automatically archive the thread after recent activity, can be set to: 60, 1440, 4320, 10080 (The 3 day and 7 day archive durations require the server to be boosted. The guild features will indicate if a server is able to use those settings)"
+ locked:
+ type: boolean
+ description: "When a thread is locked, only users with MANAGE_THREADS can unarchive it"
+ rate_limit_per_user:
+ type: integer
+ default: null
+ description: "Amount of seconds a user has to wait before sending another message (0-21600); bots, as well as users with the permission manage_messages, manage_thread, or manage_channel, are unaffected"
+ responses:
+ '200':
+ description: "Channel Object"
+ schema:
+ $ref: "#/definitions/Channel"
+ '400':
+ description: "Bad Request due to invalid parameters"
+ delete:
+ summary: "Delete a channel, or close a private message. Requires the MANAGE_CHANNELS permission for the guild, or MANAGE_THREADS if the channel is a thread. Deleting a category does not delete its child channels; they will have their parent_id removed and a Channel Update Gateway event will fire for each of them. Returns a channel object on success. Fires a Channel Delete Gateway event (or Thread Delete if the channel was a thread)."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ responses:
+ '200':
+ description: "Channel deleted sucessfully"
+ /channels/{channelId}/messages:
+ get:
+ summary: "Returns the messages for a channel. If operating on a guild channel, this endpoint requires the VIEW_CHANNEL permission to be present on the current user. If the current user is missing the 'READ_MESSAGE_HISTORY' permission in the channel then this will return no messages (since they cannot read the message history). Returns an array of message objects on success."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ - name: around
+ in: query
+ type: string
+ description: "Type of snowflake - Get messages around this message ID"
+ - name: before
+ in: query
+ type: string
+ description: "Type of snowflake - Get messages before this message ID"
+ - name: after
+ in: query
+ type: string
+ description: "Type of snowflake - Get messages after this message ID"
+ - name: limit
+ in: query
+ type: integer
+ description: "Max number of messages to return (1-100)"
+ default: 50
+ responses:
+ '200':
+ description: "Returns an array of message objects on success"
+ schema:
+ type: array
+ items:
+ $ref: "#/definitions/Message"
+ /channels/{channelId}/messages/{messageId}:
+ get:
+ summary: "Returns a specific message in the channel. If operating on a guild channel, this endpoint requires the 'READ_MESSAGE_HISTORY' permission to be present on the current user. Returns a message object on success."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ - $ref: "#/definitionsParam/messageId"
+ responses:
+ '200':
+ description: "Returns a message object on success"
+ schema:
+ $ref: "#/definitions/Message"
+ post:
+ summary: "Post a message to a guild text or DM channel. Returns a message object. Fires a Message Create Gateway event. See message formatting for more information on how to properly format messages."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ - $ref: "#/definitionsParam/messageId"
+ - name: body
+ in: body
+ required: true
+ description: "Request body that contains the necessary data for creating messages"
+ schema:
+ type: object
+ properties:
+ content:
+ type: string
+ description: "The message contents (up to 2000 characters)"
+ tts:
+ type: boolean
+ description: "True if this is a TTS message"
+ file:
+ type: string
+ format: binary
+ description: "The contents of the file being sent"
+ embeds:
+ type: array
+ items:
+ $ref: "#/definitions/Embed"
+ description: "Embedded rich content (up to 6000 characters)"
+ payload_json:
+ type: string
+ description: "JSON encoded body of non-file params"
+ allowed_mentions:
+ $ref: "#/definitions/Allowed%20Mention"
+ description: "Allowed mentions for the message"
+ message_refrence:
+ $ref: "#/definitions/Message%20Refrence"
+ description: "Include to make your message a reply"
+ components:
+ type: array
+ items:
+ $ref: "#/definitions/Message%20Component"
+ responses:
+ '200':
+ description: "Returns a message object on success"
+ schema:
+ $ref: "#/definitions/Message"
+ /channels/{channelId}/messages/{messageId}/crosspost:
+ post:
+ summary: "Crosspost a message in a News Channel to following channels. This endpoint requires the 'SEND_MESSAGES' permission, if the current user sent the message, or additionally the 'MANAGE_MESSAGES' permission, for all other messages, to be present for the current user."
+ tags:
+ - Channel
+ parameters:
+ - $ref: "#/definitionsParam/channelId"
+ - $ref: "#/definitionsParam/messageId"
+ definitions:
+ Snowflake:
+ type: string
+ pattern: "^\\d+$"
+ Audit Log:
+ type: object
+ properties:
+ webhooks:
+ type: array
+ items:
+ $ref: "#/definitions/Webhook"
+ description: "List of webhooks found in the audit log"
+ users:
+ type: array
+ items:
+ $ref: "#/definitions/User"
+ description: "List of users found in the audit log"
+ audit_log_entries:
+ type: array
+ items:
+ $ref: "#/definitions/Audit%20Log%20Entry"
+ description: "List of audit log entries"
+ integrations:
+ type: array
+ items:
+ $ref: "#/definitions/Integration"
+ description: "List of partial integration objects"
+ Audit Log Entry:
+ type: object
+ Webhook:
+ type: object
+ User:
+ type: object
+ Integration:
+ type: object
+ Channel:
+ type: object
+ Overwrite:
+ type: object
+ Message:
+ type: object
+ Embed:
+ type: object
+ Allowed Mention:
+ type: object
+ Message Refrence:
+ type: object
+ Message Component:
+ type: object
+ definitionsParam:
+ channelId:
+ name: channelId
+ in: path
+ required: true
+ type: string
+ description: "Type of snowflake - The target channel Id"
+ messageId:
+ name: messageId
+ in: path
+ required: true
+ type: string
+ description: "Type of snowflake - The message's ID to get"
+ guildId:
+ name: guildId
+ in: path
+ required: true
+ type: string
+ description: "Type of snowflake - The guild ID to get the audit logs for"
+ externalDocs:
+ description: "Discord API"
+ url: "https://discord.com/developers/docs/"
+contentType: yaml
diff --git a/.insomnia/Environment/env_7f7715cc4a425b45530e190a1a1d203dd2125894.yml b/.insomnia/Environment/env_7f7715cc4a425b45530e190a1a1d203dd2125894.yml
new file mode 100755
index 00000000..87627086
--- /dev/null
+++ b/.insomnia/Environment/env_7f7715cc4a425b45530e190a1a1d203dd2125894.yml
@@ -0,0 +1,12 @@
+_id: env_7f7715cc4a425b45530e190a1a1d203dd2125894
+type: Environment
+parentId: wrk_84bc4b982502477baa52fb4972f3c717
+modified: 1625231075690
+created: 1625231075690
+name: Base Environment
+data:
+ base_url: "{{ scheme }}://{{ host }}{{ base_path }}"
+dataPropertyOrder: null
+color: null
+isPrivate: false
+metaSortKey: 1625231075690
diff --git a/.insomnia/Environment/env_env_7f7715cc4a425b45530e190a1a1d203dd2125894_sub.yml b/.insomnia/Environment/env_env_7f7715cc4a425b45530e190a1a1d203dd2125894_sub.yml
new file mode 100755
index 00000000..fe8096f3
--- /dev/null
+++ b/.insomnia/Environment/env_env_7f7715cc4a425b45530e190a1a1d203dd2125894_sub.yml
@@ -0,0 +1,14 @@
+_id: env_env_7f7715cc4a425b45530e190a1a1d203dd2125894_sub
+type: Environment
+parentId: env_7f7715cc4a425b45530e190a1a1d203dd2125894
+modified: 1625237584737
+created: 1625237584737
+name: Swagger env
+data:
+ base_path: /api/v9
+ scheme: https
+ host: dev.fosscord.com
+dataPropertyOrder: null
+color: null
+isPrivate: false
+metaSortKey: 1625237584738
diff --git a/.insomnia/Request/req_0151c09d51324bd78a26c1236c6ce0b2.yml b/.insomnia/Request/req_0151c09d51324bd78a26c1236c6ce0b2.yml
new file mode 100755
index 00000000..6851fe25
--- /dev/null
+++ b/.insomnia/Request/req_0151c09d51324bd78a26c1236c6ce0b2.yml
@@ -0,0 +1,23 @@
+_id: req_0151c09d51324bd78a26c1236c6ce0b2
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625262677191
+created: 1625262677191
+url: "{{ base_url }}/channels/{{ channelId }}/messages/{{ messageId }}"
+name: Returns a specific message in the channel. If operating on a guild
+ channel, this endpoint requires the 'READ_MESSAGE_HISTORY' permission to be
+ present on the current user. Returns a message object on success.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625262677191
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_144fcf66270e4e4ba3bedf967afa4747.yml b/.insomnia/Request/req_144fcf66270e4e4ba3bedf967afa4747.yml
new file mode 100755
index 00000000..191c5476
--- /dev/null
+++ b/.insomnia/Request/req_144fcf66270e4e4ba3bedf967afa4747.yml
@@ -0,0 +1,22 @@
+_id: req_144fcf66270e4e4ba3bedf967afa4747
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625237676383
+created: 1625237676383
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Update a channel's settings. Returns a channel on success, and a 400 BAD
+ REQUEST on invalid parameters. All JSON parameters are optional.
+description: ""
+method: PATCH
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625237676383
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_1da02fc68c6c4865a3020cb16d129976.yml b/.insomnia/Request/req_1da02fc68c6c4865a3020cb16d129976.yml
new file mode 100755
index 00000000..47d9b8a0
--- /dev/null
+++ b/.insomnia/Request/req_1da02fc68c6c4865a3020cb16d129976.yml
@@ -0,0 +1,34 @@
+_id: req_1da02fc68c6c4865a3020cb16d129976
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536
+modified: 1625309127857
+created: 1625309127857
+url: "{{ base_url }}/guilds/{{ guildId }}/audit-logs"
+name: Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG'
+ permission.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: user_id
+ disabled: true
+ value: string
+ - name: action_type
+ disabled: true
+ value: "0"
+ - name: before
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "0"
+headers: []
+authentication: {}
+metaSortKey: -1625309127857
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_34e885af0db249e5bcbaf7fdb5e09fbc.yml b/.insomnia/Request/req_34e885af0db249e5bcbaf7fdb5e09fbc.yml
new file mode 100755
index 00000000..d7bea787
--- /dev/null
+++ b/.insomnia/Request/req_34e885af0db249e5bcbaf7fdb5e09fbc.yml
@@ -0,0 +1,22 @@
+_id: req_34e885af0db249e5bcbaf7fdb5e09fbc
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127856
+created: 1625309127856
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Get a channel by ID. Returns a channel object. If the channel is a thread,
+ a thread member object is included in the returned result.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127856
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_4788630b32f7439aa7b48c466753feac.yml b/.insomnia/Request/req_4788630b32f7439aa7b48c466753feac.yml
new file mode 100755
index 00000000..5f78eb6e
--- /dev/null
+++ b/.insomnia/Request/req_4788630b32f7439aa7b48c466753feac.yml
@@ -0,0 +1,22 @@
+_id: req_4788630b32f7439aa7b48c466753feac
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625237584728
+created: 1625237584728
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Update a channel's settings. Returns a channel on success, and a 400 BAD
+ REQUEST on invalid parameters. All JSON parameters are optional.
+description: ""
+method: PATCH
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625237584729
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_546e8de6ddef4b8aa657ecd7d954a83a.yml b/.insomnia/Request/req_546e8de6ddef4b8aa657ecd7d954a83a.yml
new file mode 100755
index 00000000..b10481c6
--- /dev/null
+++ b/.insomnia/Request/req_546e8de6ddef4b8aa657ecd7d954a83a.yml
@@ -0,0 +1,24 @@
+_id: req_546e8de6ddef4b8aa657ecd7d954a83a
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127846
+created: 1625309127846
+url: "{{ base_url }}/channels/{{ channelId }}/messages/{{ messageId }}/crosspost"
+name: Crosspost a message in a News Channel to following channels. This endpoint
+ requires the 'SEND_MESSAGES' permission, if the current user sent the message,
+ or additionally the 'MANAGE_MESSAGES' permission, for all other messages, to
+ be present for the current user.
+description: ""
+method: POST
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127846
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_653975ede5714e61a426c223cf0e2d44.yml b/.insomnia/Request/req_653975ede5714e61a426c223cf0e2d44.yml
new file mode 100755
index 00000000..40e81fcc
--- /dev/null
+++ b/.insomnia/Request/req_653975ede5714e61a426c223cf0e2d44.yml
@@ -0,0 +1,26 @@
+_id: req_653975ede5714e61a426c223cf0e2d44
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127852
+created: 1625309127852
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Delete a channel, or close a private message. Requires the MANAGE_CHANNELS
+ permission for the guild, or MANAGE_THREADS if the channel is a thread.
+ Deleting a category does not delete its child channels; they will have their
+ parent_id removed and a Channel Update Gateway event will fire for each of
+ them. Returns a channel object on success. Fires a Channel Delete Gateway
+ event (or Thread Delete if the channel was a thread).
+description: ""
+method: DELETE
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127852
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_67b2d27b24cb47afa38c5adb1785a324.yml b/.insomnia/Request/req_67b2d27b24cb47afa38c5adb1785a324.yml
new file mode 100755
index 00000000..32c6a8de
--- /dev/null
+++ b/.insomnia/Request/req_67b2d27b24cb47afa38c5adb1785a324.yml
@@ -0,0 +1,22 @@
+_id: req_67b2d27b24cb47afa38c5adb1785a324
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625262677198
+created: 1625262677198
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Get a channel by ID. Returns a channel object. If the channel is a thread,
+ a thread member object is included in the returned result.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625262677198
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_6d5bbc2f6ff5490f858428b6b5500417.yml b/.insomnia/Request/req_6d5bbc2f6ff5490f858428b6b5500417.yml
new file mode 100755
index 00000000..0ab9b5bb
--- /dev/null
+++ b/.insomnia/Request/req_6d5bbc2f6ff5490f858428b6b5500417.yml
@@ -0,0 +1,34 @@
+_id: req_6d5bbc2f6ff5490f858428b6b5500417
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536
+modified: 1625237676386
+created: 1625237676386
+url: "{{ base_url }}/guilds/{{ guildId }}/audit-logs"
+name: Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG'
+ permission.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: user_id
+ disabled: true
+ value: string
+ - name: action_type
+ disabled: true
+ value: "0"
+ - name: before
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "0"
+headers: []
+authentication: {}
+metaSortKey: -1625237676386
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_705afa0e6efa454896d733795927c5e8.yml b/.insomnia/Request/req_705afa0e6efa454896d733795927c5e8.yml
new file mode 100755
index 00000000..8200782e
--- /dev/null
+++ b/.insomnia/Request/req_705afa0e6efa454896d733795927c5e8.yml
@@ -0,0 +1,22 @@
+_id: req_705afa0e6efa454896d733795927c5e8
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625262677196
+created: 1625262677196
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Update a channel's settings. Returns a channel on success, and a 400 BAD
+ REQUEST on invalid parameters. All JSON parameters are optional.
+description: ""
+method: PATCH
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625262677196
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_7208c49ac0fa49ed9c095aa675d6c40d.yml b/.insomnia/Request/req_7208c49ac0fa49ed9c095aa675d6c40d.yml
new file mode 100755
index 00000000..3085c393
--- /dev/null
+++ b/.insomnia/Request/req_7208c49ac0fa49ed9c095aa675d6c40d.yml
@@ -0,0 +1,22 @@
+_id: req_7208c49ac0fa49ed9c095aa675d6c40d
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625237584731
+created: 1625237584731
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Get a channel by ID. Returns a channel object. If the channel is a thread,
+ a thread member object is included in the returned result.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625237584731
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_8ceaa170807a439db5dffc52c79d096e.yml b/.insomnia/Request/req_8ceaa170807a439db5dffc52c79d096e.yml
new file mode 100755
index 00000000..9a25dc35
--- /dev/null
+++ b/.insomnia/Request/req_8ceaa170807a439db5dffc52c79d096e.yml
@@ -0,0 +1,34 @@
+_id: req_8ceaa170807a439db5dffc52c79d096e
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536
+modified: 1625237584732
+created: 1625237584732
+url: "{{ base_url }}/guilds/{{ guildId }}/audit-logs"
+name: Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG'
+ permission.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: user_id
+ disabled: true
+ value: string
+ - name: action_type
+ disabled: true
+ value: "0"
+ - name: before
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "0"
+headers: []
+authentication: {}
+metaSortKey: -1625237584732
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_91103ee98a984241b9daad53f7464754.yml b/.insomnia/Request/req_91103ee98a984241b9daad53f7464754.yml
new file mode 100755
index 00000000..9c331020
--- /dev/null
+++ b/.insomnia/Request/req_91103ee98a984241b9daad53f7464754.yml
@@ -0,0 +1,37 @@
+_id: req_91103ee98a984241b9daad53f7464754
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625262677193
+created: 1625262677193
+url: "{{ base_url }}/channels/{{ channelId }}/messages"
+name: Returns the messages for a channel. If operating on a guild channel, this
+ endpoint requires the VIEW_CHANNEL permission to be present on the current
+ user. If the current user is missing the 'READ_MESSAGE_HISTORY' permission in
+ the channel then this will return no messages (since they cannot read the
+ message history). Returns an array of message objects on success.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: around
+ disabled: true
+ value: string
+ - name: before
+ disabled: true
+ value: string
+ - name: after
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "50"
+headers: []
+authentication: {}
+metaSortKey: -1625262677194
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_a9eee023ff07463793300cbab288d9f0.yml b/.insomnia/Request/req_a9eee023ff07463793300cbab288d9f0.yml
new file mode 100755
index 00000000..57ed304c
--- /dev/null
+++ b/.insomnia/Request/req_a9eee023ff07463793300cbab288d9f0.yml
@@ -0,0 +1,22 @@
+_id: req_a9eee023ff07463793300cbab288d9f0
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625237676384
+created: 1625237676384
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Get a channel by ID. Returns a channel object. If the channel is a thread,
+ a thread member object is included in the returned result.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625237676384
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_b8904b13a5e243acbab850cdf42e910c.yml b/.insomnia/Request/req_b8904b13a5e243acbab850cdf42e910c.yml
new file mode 100755
index 00000000..bc95e35a
--- /dev/null
+++ b/.insomnia/Request/req_b8904b13a5e243acbab850cdf42e910c.yml
@@ -0,0 +1,37 @@
+_id: req_b8904b13a5e243acbab850cdf42e910c
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127851
+created: 1625309127851
+url: "{{ base_url }}/channels/{{ channelId }}/messages"
+name: Returns the messages for a channel. If operating on a guild channel, this
+ endpoint requires the VIEW_CHANNEL permission to be present on the current
+ user. If the current user is missing the 'READ_MESSAGE_HISTORY' permission in
+ the channel then this will return no messages (since they cannot read the
+ message history). Returns an array of message objects on success.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: around
+ disabled: true
+ value: string
+ - name: before
+ disabled: true
+ value: string
+ - name: after
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "50"
+headers: []
+authentication: {}
+metaSortKey: -1625309127851
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_c66b4b765fdc4e9a9db8c4c0c11d5663.yml b/.insomnia/Request/req_c66b4b765fdc4e9a9db8c4c0c11d5663.yml
new file mode 100755
index 00000000..41d03129
--- /dev/null
+++ b/.insomnia/Request/req_c66b4b765fdc4e9a9db8c4c0c11d5663.yml
@@ -0,0 +1,23 @@
+_id: req_c66b4b765fdc4e9a9db8c4c0c11d5663
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127849
+created: 1625309127849
+url: "{{ base_url }}/channels/{{ channelId }}/messages/{{ messageId }}"
+name: Returns a specific message in the channel. If operating on a guild
+ channel, this endpoint requires the 'READ_MESSAGE_HISTORY' permission to be
+ present on the current user. Returns a message object on success.
+description: ""
+method: GET
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127849
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_cece238b361045edae5b0be24cdde2ac.yml b/.insomnia/Request/req_cece238b361045edae5b0be24cdde2ac.yml
new file mode 100755
index 00000000..a62ec7fa
--- /dev/null
+++ b/.insomnia/Request/req_cece238b361045edae5b0be24cdde2ac.yml
@@ -0,0 +1,23 @@
+_id: req_cece238b361045edae5b0be24cdde2ac
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127848
+created: 1625309127848
+url: "{{ base_url }}/channels/{{ channelId }}/messages/{{ messageId }}"
+name: Post a message to a guild text or DM channel. Returns a message object.
+ Fires a Message Create Gateway event. See message formatting for more
+ information on how to properly format messages.
+description: ""
+method: POST
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127848
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_eb3db1caf4dd4dd6b0c9f840b891d4e9.yml b/.insomnia/Request/req_eb3db1caf4dd4dd6b0c9f840b891d4e9.yml
new file mode 100755
index 00000000..220c8654
--- /dev/null
+++ b/.insomnia/Request/req_eb3db1caf4dd4dd6b0c9f840b891d4e9.yml
@@ -0,0 +1,26 @@
+_id: req_eb3db1caf4dd4dd6b0c9f840b891d4e9
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625262677195
+created: 1625262677195
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Delete a channel, or close a private message. Requires the MANAGE_CHANNELS
+ permission for the guild, or MANAGE_THREADS if the channel is a thread.
+ Deleting a category does not delete its child channels; they will have their
+ parent_id removed and a Channel Update Gateway event will fire for each of
+ them. Returns a channel object on success. Fires a Channel Delete Gateway
+ event (or Thread Delete if the channel was a thread).
+description: ""
+method: DELETE
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625262677195
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_f0bc1302a3cf4897a89c6d7743d6d421.yml b/.insomnia/Request/req_f0bc1302a3cf4897a89c6d7743d6d421.yml
new file mode 100755
index 00000000..8b332365
--- /dev/null
+++ b/.insomnia/Request/req_f0bc1302a3cf4897a89c6d7743d6d421.yml
@@ -0,0 +1,22 @@
+_id: req_f0bc1302a3cf4897a89c6d7743d6d421
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+modified: 1625309127854
+created: 1625309127854
+url: "{{ base_url }}/channels/{{ channelId }}"
+name: Update a channel's settings. Returns a channel on success, and a 400 BAD
+ REQUEST on invalid parameters. All JSON parameters are optional.
+description: ""
+method: PATCH
+body: {}
+parameters: []
+headers: []
+authentication: {}
+metaSortKey: -1625309127854
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/Request/req_fc26963ee41647f99f464b90e393a9e2.yml b/.insomnia/Request/req_fc26963ee41647f99f464b90e393a9e2.yml
new file mode 100755
index 00000000..c6a3b33b
--- /dev/null
+++ b/.insomnia/Request/req_fc26963ee41647f99f464b90e393a9e2.yml
@@ -0,0 +1,34 @@
+_id: req_fc26963ee41647f99f464b90e393a9e2
+type: Request
+parentId: fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536
+modified: 1625262677200
+created: 1625262677200
+url: "{{ base_url }}/guilds/{{ guildId }}/audit-logs"
+name: Returns an audit log object for the guild. Requires the 'VIEW_AUDIT_LOG'
+ permission.
+description: ""
+method: GET
+body: {}
+parameters:
+ - name: user_id
+ disabled: true
+ value: string
+ - name: action_type
+ disabled: true
+ value: "0"
+ - name: before
+ disabled: true
+ value: string
+ - name: limit
+ disabled: true
+ value: "0"
+headers: []
+authentication: {}
+metaSortKey: -1625262677200
+isPrivate: false
+settingStoreCookies: true
+settingSendCookies: true
+settingDisableRenderRequestBody: false
+settingEncodeUrl: true
+settingRebuildPath: true
+settingFollowRedirects: global
diff --git a/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536.yml b/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536.yml
new file mode 100755
index 00000000..74202f62
--- /dev/null
+++ b/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536.yml
@@ -0,0 +1,10 @@
+_id: fld_wrk_84bc4b982502477baa52fb4972f3c71728dd7536
+type: RequestGroup
+parentId: wrk_84bc4b982502477baa52fb4972f3c717
+modified: 1625237584736
+created: 1625237584736
+name: Audit Log
+description: Guild Audit Log resource
+environment: {}
+environmentPropertyOrder: null
+metaSortKey: -1625237584736
diff --git a/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b.yml b/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b.yml
new file mode 100755
index 00000000..a140b9b2
--- /dev/null
+++ b/.insomnia/RequestGroup/fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b.yml
@@ -0,0 +1,10 @@
+_id: fld_wrk_84bc4b982502477baa52fb4972f3c717879f0b1b
+type: RequestGroup
+parentId: wrk_84bc4b982502477baa52fb4972f3c717
+modified: 1625237584734
+created: 1625237584734
+name: Channel
+description: Channel resource
+environment: {}
+environmentPropertyOrder: null
+metaSortKey: -1625237584734
diff --git a/.insomnia/Workspace/wrk_84bc4b982502477baa52fb4972f3c717.yml b/.insomnia/Workspace/wrk_84bc4b982502477baa52fb4972f3c717.yml
new file mode 100755
index 00000000..7fab2ca5
--- /dev/null
+++ b/.insomnia/Workspace/wrk_84bc4b982502477baa52fb4972f3c717.yml
@@ -0,0 +1,8 @@
+_id: wrk_84bc4b982502477baa52fb4972f3c717
+type: Workspace
+parentId: null
+modified: 1625231075470
+created: 1625231075470
+name: fosscord-api.yaml
+description: ""
+scope: design
|