/* tslint:disable */
/* eslint-disable */
/**
* Gravatar Public API
* Gravatar\'s public API endpoints
*
* The version of the OpenAPI document: 3.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import * as runtime from '../runtime.js';
import type {
Avatar,
SetEmailAvatarRequest,
UpdateAvatarRequest,
} from '../models/index.js';
import {
AvatarFromJSON,
AvatarToJSON,
SetEmailAvatarRequestFromJSON,
SetEmailAvatarRequestToJSON,
UpdateAvatarRequestFromJSON,
UpdateAvatarRequestToJSON,
} from '../models/index.js';
export interface DeleteAvatarRequest {
imageHash: string;
}
export interface GetAvatarsRequest {
selectedEmailHash?: string;
}
export interface SetEmailAvatarOperationRequest {
imageId: string;
setEmailAvatarRequest: SetEmailAvatarRequest;
}
export interface UpdateAvatarOperationRequest {
imageHash: string;
updateAvatarRequest: UpdateAvatarRequest;
}
export interface UploadAvatarRequest {
image: Blob;
selectedEmailHash?: string;
selectAvatar?: boolean | null;
}
/**
* AvatarsApi - interface
*
* @export
* @interface AvatarsApiInterface
*/
export interface AvatarsApiInterface {
/**
* Deletes a specific avatar for the authenticated user.
* @summary Delete avatar
* @param {string} imageHash The hash of the avatar to delete.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AvatarsApiInterface
*/
deleteAvatarRaw(requestParameters: DeleteAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
/**
* Deletes a specific avatar for the authenticated user.
* Delete avatar
*/
deleteAvatar(requestParameters: DeleteAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
/**
* Retrieves a list of available avatars for the authenticated user.
* @summary List avatars
* @param {string} [selectedEmailHash] The SHA256 hash of the email address used to determine which avatar is selected. The \'selected\' attribute in the avatar list will be set to \'true\' for the avatar associated with this email.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AvatarsApiInterface
*/
getAvatarsRaw(requestParameters: GetAvatarsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Avatar>>>;
/**
* Retrieves a list of available avatars for the authenticated user.
* List avatars
*/
getAvatars(requestParameters: GetAvatarsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Avatar>>;
/**
* Sets the avatar for the provided email hash.
* @summary Set avatar for the hashed email
* @param {string} imageId Image ID of the avatar to set as the provided hashed email avatar.
* @param {SetEmailAvatarRequest} setEmailAvatarRequest Avatar selection details
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AvatarsApiInterface
*/
setEmailAvatarRaw(requestParameters: SetEmailAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
/**
* Sets the avatar for the provided email hash.
* Set avatar for the hashed email
*/
setEmailAvatar(requestParameters: SetEmailAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
/**
* Updates the avatar data for a given avatar for the authenticated user.
* @summary Update avatar data
* @param {string} imageHash The hash of the avatar to update.
* @param {UpdateAvatarRequest} updateAvatarRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AvatarsApiInterface
*/
updateAvatarRaw(requestParameters: UpdateAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Avatar>>;
/**
* Updates the avatar data for a given avatar for the authenticated user.
* Update avatar data
*/
updateAvatar(requestParameters: UpdateAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Avatar>;
/**
* Uploads a new avatar image for the authenticated user.
* @summary Upload new avatar image
* @param {Blob} image The avatar image file
* @param {string} [selectedEmailHash] The SHA256 hash of email. If provided, the uploaded image will be selected as the avatar for this email.
* @param {boolean} [selectAvatar] Determines if the uploaded image should be set as the avatar for the email. If not passed, the image is only selected as the email\'s avatar if no previous avatar has been set. Accepts \'1\'/\'true\' to always set the avatar or \'0\'/\'false\' to never set the avatar.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AvatarsApiInterface
*/
uploadAvatarRaw(requestParameters: UploadAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Avatar>>;
/**
* Uploads a new avatar image for the authenticated user.
* Upload new avatar image
*/
uploadAvatar(requestParameters: UploadAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Avatar>;
}
/**
*
*/
export class AvatarsApi extends runtime.BaseAPI implements AvatarsApiInterface {
/**
* Deletes a specific avatar for the authenticated user.
* Delete avatar
*/
async deleteAvatarRaw(requestParameters: DeleteAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
if (requestParameters['imageHash'] == null) {
throw new runtime.RequiredError(
'imageHash',
'Required parameter "imageHash" was null or undefined when calling deleteAvatar().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oauth", []);
}
const response = await this.request({
path: `/me/avatars/{imageHash}`.replace(`{${"imageHash"}}`, encodeURIComponent(String(requestParameters['imageHash']))),
method: 'DELETE',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Deletes a specific avatar for the authenticated user.
* Delete avatar
*/
async deleteAvatar(requestParameters: DeleteAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.deleteAvatarRaw(requestParameters, initOverrides);
}
/**
* Retrieves a list of available avatars for the authenticated user.
* List avatars
*/
async getAvatarsRaw(requestParameters: GetAvatarsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<Avatar>>> {
const queryParameters: any = {};
if (requestParameters['selectedEmailHash'] != null) {
queryParameters['selected_email_hash'] = requestParameters['selectedEmailHash'];
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oauth", []);
}
const response = await this.request({
path: `/me/avatars`,
method: 'GET',
headers: headerParameters,
query: queryParameters,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(AvatarFromJSON));
}
/**
* Retrieves a list of available avatars for the authenticated user.
* List avatars
*/
async getAvatars(requestParameters: GetAvatarsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<Avatar>> {
const response = await this.getAvatarsRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Sets the avatar for the provided email hash.
* Set avatar for the hashed email
*/
async setEmailAvatarRaw(requestParameters: SetEmailAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
if (requestParameters['imageId'] == null) {
throw new runtime.RequiredError(
'imageId',
'Required parameter "imageId" was null or undefined when calling setEmailAvatar().'
);
}
if (requestParameters['setEmailAvatarRequest'] == null) {
throw new runtime.RequiredError(
'setEmailAvatarRequest',
'Required parameter "setEmailAvatarRequest" was null or undefined when calling setEmailAvatar().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oauth", []);
}
const response = await this.request({
path: `/me/avatars/{imageId}/email`.replace(`{${"imageId"}}`, encodeURIComponent(String(requestParameters['imageId']))),
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: SetEmailAvatarRequestToJSON(requestParameters['setEmailAvatarRequest']),
}, initOverrides);
return new runtime.VoidApiResponse(response);
}
/**
* Sets the avatar for the provided email hash.
* Set avatar for the hashed email
*/
async setEmailAvatar(requestParameters: SetEmailAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
await this.setEmailAvatarRaw(requestParameters, initOverrides);
}
/**
* Updates the avatar data for a given avatar for the authenticated user.
* Update avatar data
*/
async updateAvatarRaw(requestParameters: UpdateAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Avatar>> {
if (requestParameters['imageHash'] == null) {
throw new runtime.RequiredError(
'imageHash',
'Required parameter "imageHash" was null or undefined when calling updateAvatar().'
);
}
if (requestParameters['updateAvatarRequest'] == null) {
throw new runtime.RequiredError(
'updateAvatarRequest',
'Required parameter "updateAvatarRequest" was null or undefined when calling updateAvatar().'
);
}
const queryParameters: any = {};
const headerParameters: runtime.HTTPHeaders = {};
headerParameters['Content-Type'] = 'application/json';
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oauth", []);
}
const response = await this.request({
path: `/me/avatars/{imageHash}`.replace(`{${"imageHash"}}`, encodeURIComponent(String(requestParameters['imageHash']))),
method: 'PATCH',
headers: headerParameters,
query: queryParameters,
body: UpdateAvatarRequestToJSON(requestParameters['updateAvatarRequest']),
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => AvatarFromJSON(jsonValue));
}
/**
* Updates the avatar data for a given avatar for the authenticated user.
* Update avatar data
*/
async updateAvatar(requestParameters: UpdateAvatarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Avatar> {
const response = await this.updateAvatarRaw(requestParameters, initOverrides);
return await response.value();
}
/**
* Uploads a new avatar image for the authenticated user.
* Upload new avatar image
*/
async uploadAvatarRaw(requestParameters: UploadAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Avatar>> {
if (requestParameters['image'] == null) {
throw new runtime.RequiredError(
'image',
'Required parameter "image" was null or undefined when calling uploadAvatar().'
);
}
const queryParameters: any = {};
if (requestParameters['selectedEmailHash'] != null) {
queryParameters['selected_email_hash'] = requestParameters['selectedEmailHash'];
}
if (requestParameters['selectAvatar'] != null) {
queryParameters['select_avatar'] = requestParameters['selectAvatar'];
}
const headerParameters: runtime.HTTPHeaders = {};
if (this.configuration && this.configuration.accessToken) {
// oauth required
headerParameters["Authorization"] = await this.configuration.accessToken("oauth", []);
}
const consumes: runtime.Consume[] = [
{ contentType: 'multipart/form-data' },
];
// @ts-ignore: canConsumeForm may be unused
const canConsumeForm = runtime.canConsumeForm(consumes);
let formParams: { append(param: string, value: any): any };
let useForm = false;
// use FormData to transmit files using content-type "multipart/form-data"
useForm = canConsumeForm;
if (useForm) {
formParams = new FormData();
} else {
formParams = new URLSearchParams();
}
if (requestParameters['image'] != null) {
formParams.append('image', requestParameters['image'] as any);
}
const response = await this.request({
path: `/me/avatars`,
method: 'POST',
headers: headerParameters,
query: queryParameters,
body: formParams,
}, initOverrides);
return new runtime.JSONApiResponse(response, (jsonValue) => AvatarFromJSON(jsonValue));
}
/**
* Uploads a new avatar image for the authenticated user.
* Upload new avatar image
*/
async uploadAvatar(requestParameters: UploadAvatarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Avatar> {
const response = await this.uploadAvatarRaw(requestParameters, initOverrides);
return await response.value();
}
}