Added DMail support #5
@ -3,13 +3,24 @@ package endpoints
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/model"
|
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/model"
|
||||||
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/utils"
|
"git.dragse.it/anthrove/e621-sdk-go/pkg/e621/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// GetDmail retrieves a specific DMail by its ID.
|
||||||
|
//
|
||||||
|
// This function performs an HTTP GET request to the e621 DMail endpoint and parses
|
||||||
|
// the JSON content to extract the DMail data.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - requestContext: The model.RequestContext for the API request.
|
||||||
|
// - ID: The ID of the DMail to be fetched.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// - model.DMail: A struct containing the DMail data.
|
||||||
|
// - error: An error, if any, encountered during the API request or response handling.
|
||||||
func GetDmail(requestContext model.RequestContext, ID int) (model.DMail, error) {
|
func GetDmail(requestContext model.RequestContext, ID int) (model.DMail, error) {
|
||||||
// Create a new HTTP GET request to fetch the post information.
|
// Create a new HTTP GET request to fetch the post information.
|
||||||
r, err := http.NewRequest("GET", fmt.Sprintf("%s/dmails/%d.json", requestContext.Host, ID), nil)
|
r, err := http.NewRequest("GET", fmt.Sprintf("%s/dmails/%d.json", requestContext.Host, ID), nil)
|
||||||
@ -52,7 +63,17 @@ func GetDmail(requestContext model.RequestContext, ID int) (model.DMail, error)
|
|||||||
return postResponse, nil
|
return postResponse, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleateDmail(requestContext model.RequestContext, ID int) error {
|
// DeleteDmail deletes a specific DMail by its ID.
|
||||||
|
//
|
||||||
|
// This function performs an HTTP DELETE request to the e621 DMail endpoint.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - requestContext: The model.RequestContext for the API request.
|
||||||
|
// - ID: The ID of the DMail to be deleted.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// - error: An error, if any, encountered during the API request or response handling.
|
||||||
|
func DeleteDmail(requestContext model.RequestContext, ID int) error {
|
||||||
// Create a new HTTP GET request to fetch the post information.
|
// Create a new HTTP GET request to fetch the post information.
|
||||||
r, err := http.NewRequest("DELETE", fmt.Sprintf("%s/dmails/%d.json", requestContext.Host, ID), nil)
|
r, err := http.NewRequest("DELETE", fmt.Sprintf("%s/dmails/%d.json", requestContext.Host, ID), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -82,10 +103,23 @@ func DeleateDmail(requestContext model.RequestContext, ID int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarkAsReadDmail marks a specific DMail as read by its ID.
|
||||||
|
//
|
||||||
|
// This function performs an HTTP PUT request to the e621 DMail endpoint.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - requestContext: The model.RequestContext for the API request.
|
||||||
|
// - ID: The ID of the DMail to be marked as read.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// - error: An error, if any, encountered during the API request or response handling.
|
||||||
func MarkAsReadDmail(requestContext model.RequestContext, ID int) error {
|
func MarkAsReadDmail(requestContext model.RequestContext, ID int) error {
|
||||||
// Create a new HTTP GET request to fetch the post information.
|
// Create a new HTTP GET request to fetch the post information.
|
||||||
r, err := http.NewRequest("PUT", fmt.Sprintf("%s/dmails/%d/mark_as_read.json", requestContext.Host, ID), nil)
|
r, err := http.NewRequest("PUT", fmt.Sprintf("%s/dmails/%d/mark_as_read.json", requestContext.Host, ID), nil)
|
||||||
log.Print(r.URL)
|
if err != nil {
|
||||||
|
// Log the error and return an empty Post struct and the error.
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
r.Header.Set("User-Agent", requestContext.UserAgent)
|
r.Header.Set("User-Agent", requestContext.UserAgent)
|
||||||
r.Header.Add("Accept", "application/json")
|
r.Header.Add("Accept", "application/json")
|
||||||
@ -108,6 +142,18 @@ func MarkAsReadDmail(requestContext model.RequestContext, ID int) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllDmails retrieves all DMails.
|
||||||
|
//
|
||||||
|
// This function performs an HTTP GET request to the e621 DMail endpoint and parses
|
||||||
|
// the JSON content to extract the DMail data.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - requestContext: The model.RequestContext for the API request.
|
||||||
|
// - query: A map containing the query parameters for the request.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// - []model.DMail: A slice of structs containing the DMail data.
|
||||||
|
// - error: An error, if any, encountered during the API request or response handling.
|
||||||
func GetAllDmails(requestContext model.RequestContext, query map[string]string) ([]model.DMail, error) {
|
func GetAllDmails(requestContext model.RequestContext, query map[string]string) ([]model.DMail, error) {
|
||||||
// Create a new HTTP GET request.
|
// Create a new HTTP GET request.
|
||||||
r, err := http.NewRequest("GET", fmt.Sprintf("%s/dmails.json", requestContext.Host), nil)
|
r, err := http.NewRequest("GET", fmt.Sprintf("%s/dmails.json", requestContext.Host), nil)
|
||||||
@ -153,6 +199,15 @@ func GetAllDmails(requestContext model.RequestContext, query map[string]string)
|
|||||||
return postResponse, nil
|
return postResponse, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarkAsReadAllDmails marks all DMails as read.
|
||||||
|
//
|
||||||
|
// This function performs an HTTP PUT request to the e621 DMail endpoint.
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// - requestContext: The model.RequestContext for the API request.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// - error: An error, if any, encountered during the API request or response handling.
|
||||||
func MarkAsReadAllDmails(requestContext model.RequestContext) error {
|
func MarkAsReadAllDmails(requestContext model.RequestContext) error {
|
||||||
// Create a new HTTP GET request to fetch the post information.
|
// Create a new HTTP GET request to fetch the post information.
|
||||||
r, err := http.NewRequest("PUT", fmt.Sprintf("%s/dmails/mark_all_as_read.json", requestContext.Host), nil)
|
r, err := http.NewRequest("PUT", fmt.Sprintf("%s/dmails/mark_all_as_read.json", requestContext.Host), nil)
|
||||||
|
Reference in New Issue
Block a user