Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Email endpoints #3116

Merged
merged 6 commits into from
Jul 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions docs/controllers/EmailController.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
components:
schemas:
emailSettings:
type: string
description: The field to sort by from the request.
example: 'media.metadata.title'
responses:
email200:
description: Successful response - Email
content:
application/json:
schema:
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EmailSettings'
ereader200:
description: Successful response - Ereader
content:
application/json:
schema:
type: object
properties:
ereaderDevices:
type: array
items:
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EreaderDeviceObject'
paths:
/api/emails/settings:
get:
description: Get email settings
operationId: getEmailSettings
tags:
- Email
responses:
200:
$ref: '#/components/responses/email200'
patch:
summary: Update email settings
operationId: updateEmailSettings
tags:
- Email
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSettings'
responses:
200:
$ref: '#/components/responses/email200'
/api/emails/test:
post:
summary: Send test email
operationId: sendTestEmail
tags:
- Email
responses:
200:
description: Successful response
/api/emails/ereader-devices:
post:
summary: Update e-reader devices
operationId: updateEReaderDevices
tags:
- Email
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
ereaderDevices:
type: array
items:
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EreaderDeviceObject'
responses:
200:
$ref: '#/components/responses/ereader200'
400:
description: Invalid payload
/api/emails/send-ebook-to-device:
post:
summary: Send ebook to device
operationId: sendEBookToDevice
tags:
- Email
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
libraryItemId:
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId'
deviceName:
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/ereaderName'
responses:
200:
description: Successful response
400:
description: Invalid request
403:
description: Forbidden
404:
description: Not found
78 changes: 78 additions & 0 deletions docs/objects/settings/EmailSettings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
components:
schemas:
ereaderName:
type: string
description: The name of the e-reader device.
EreaderDeviceObject:
type: object
description: An e-reader device configured to receive EPUB through e-mail.
properties:
name:
$ref: '#/components/schemas/ereaderName'
email:
type: string
description: The email address associated with the e-reader device.
availabilityOption:
type: string
description: The availability option for the device.
enum: ['adminOrUp', 'userOrUp', 'guestOrUp', 'specificUsers']
users:
type: array
description: List of specific users allowed to access the device.
items:
type: string
required:
- name
- email
- availabilityOption
EmailSettings:
type: object
description: The email settings configuration for the server. This includes the credentials to send e-books and an array of e-reader devices.
properties:
id:
type: string
description: The unique identifier for the email settings. Currently this is always `email-settings`
example: email-settings
host:
type: string
description: The SMTP host address.
nullable: true
port:
type: integer
format: int32
description: The port number for the SMTP server.
example: 465
secure:
type: boolean
description: Indicates if the connection should use SSL/TLS.
example: true
rejectUnauthorized:
type: boolean
description: Indicates if unauthorized SSL/TLS certificates should be rejected.
example: true
user:
type: string
description: The username for SMTP authentication.
nullable: true
pass:
type: string
description: The password for SMTP authentication.
nullable: true
testAddress:
type: string
description: The test email address used for sending test emails.
nullable: true
fromAddress:
type: string
description: The default "from" email address for outgoing emails.
nullable: true
ereaderDevices:
type: array
description: List of configured e-reader devices.
items:
$ref: '#/components/schemas/EreaderDeviceObject'
required:
- id
- port
- secure
- ereaderDevices
Loading
Loading