wip
This commit is contained in:
		
							parent
							
								
									019199168e
								
							
						
					
					
						commit
						bad25a804c
					
				| 
						 | 
				
			
			@ -2,42 +2,14 @@ import { Injectable } from '@nestjs/common';
 | 
			
		|||
import { Endpoint } from '@/server/api/endpoint-base.js';
 | 
			
		||||
import { EmailService } from '@/core/EmailService.js';
 | 
			
		||||
 | 
			
		||||
export const meta = {
 | 
			
		||||
	tags: ['users'],
 | 
			
		||||
 | 
			
		||||
	requireCredential: false,
 | 
			
		||||
 | 
			
		||||
	res: {
 | 
			
		||||
		type: 'object',
 | 
			
		||||
		optional: false, nullable: false,
 | 
			
		||||
		properties: {
 | 
			
		||||
			available: {
 | 
			
		||||
				type: 'boolean',
 | 
			
		||||
				optional: false, nullable: false,
 | 
			
		||||
			},
 | 
			
		||||
			reason: {
 | 
			
		||||
				type: 'string',
 | 
			
		||||
				optional: false, nullable: true,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
} as const;
 | 
			
		||||
 | 
			
		||||
export const paramDef = {
 | 
			
		||||
	type: 'object',
 | 
			
		||||
	properties: {
 | 
			
		||||
		emailAddress: { type: 'string' },
 | 
			
		||||
	},
 | 
			
		||||
	required: ['emailAddress'],
 | 
			
		||||
} as const;
 | 
			
		||||
 | 
			
		||||
// eslint-disable-next-line import/no-default-export
 | 
			
		||||
@Injectable()
 | 
			
		||||
export default class extends Endpoint<typeof meta, typeof paramDef> {
 | 
			
		||||
export default class extends Endpoint<'email-address/available'> {
 | 
			
		||||
	name = 'email-address/available' as const;
 | 
			
		||||
	constructor(
 | 
			
		||||
		private emailService: EmailService,
 | 
			
		||||
	) {
 | 
			
		||||
		super(meta, paramDef, async (ps, me) => {
 | 
			
		||||
		super(async (ps, me) => {
 | 
			
		||||
			return await this.emailService.validateEmailForAccount(ps.emailAddress);
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4171,6 +4171,38 @@ export const endpoints = {
 | 
			
		|||
		}],
 | 
			
		||||
	},
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	'email-address/available': {
 | 
			
		||||
		tags: ['users'],
 | 
			
		||||
	
 | 
			
		||||
		requireCredential: false,
 | 
			
		||||
	
 | 
			
		||||
		defines: [{
 | 
			
		||||
			req: {
 | 
			
		||||
				type: 'object',
 | 
			
		||||
				properties: {
 | 
			
		||||
					emailAddress: { type: 'string' },
 | 
			
		||||
				},
 | 
			
		||||
				required: ['emailAddress'],
 | 
			
		||||
			},
 | 
			
		||||
			res: {
 | 
			
		||||
				type: 'object',
 | 
			
		||||
				properties: {
 | 
			
		||||
					available: { type: 'boolean' },
 | 
			
		||||
					reason: {
 | 
			
		||||
						oneOf: [
 | 
			
		||||
							{ type: 'string', enum: ['used', 'format', 'disposable', 'mx', 'smtp'] },
 | 
			
		||||
							{ type: 'null' },
 | 
			
		||||
						],
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
				required: [
 | 
			
		||||
					'available',
 | 
			
		||||
					'reason',
 | 
			
		||||
				],
 | 
			
		||||
			},
 | 
			
		||||
		}],
 | 
			
		||||
	},
 | 
			
		||||
} as const satisfies { [x: string]: IEndpointMeta; };
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue