mirror of
https://github.com/adityachandelgit/BookLore.git
synced 2026-01-05 23:40:13 -06:00
Fix email v2
This commit is contained in:
@@ -26,5 +26,7 @@ public interface EmailProviderV2Repository extends JpaRepository<EmailProviderV2
|
||||
|
||||
@Query("SELECT e FROM EmailProviderV2Entity e WHERE e.shared = true AND e.userId IN (SELECT u.id FROM BookLoreUserEntity u WHERE u.permissions.permissionAdmin = true)")
|
||||
List<EmailProviderV2Entity> findAllBySharedTrueAndAdmin();
|
||||
}
|
||||
|
||||
@Query("SELECT e FROM EmailProviderV2Entity e WHERE e.id = :id AND e.shared = true AND e.userId IN (SELECT u.id FROM BookLoreUserEntity u WHERE u.permissions.permissionAdmin = true)")
|
||||
Optional<EmailProviderV2Entity> findSharedProviderById(@Param("id") Long id);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,11 @@ public class SendEmailV2Service {
|
||||
|
||||
public void emailBook(SendBookByEmailRequest request) {
|
||||
BookLoreUser user = authenticationService.getAuthenticatedUser();
|
||||
EmailProviderV2Entity emailProvider = emailProviderRepository.findByIdAndUserId(request.getProviderId(), user.getId()).orElseThrow(() -> ApiError.EMAIL_PROVIDER_NOT_FOUND.createException(request.getProviderId()));
|
||||
EmailProviderV2Entity emailProvider = emailProviderRepository.findByIdAndUserId(request.getProviderId(), user.getId())
|
||||
.orElseGet(() ->
|
||||
emailProviderRepository.findSharedProviderById(request.getProviderId())
|
||||
.orElseThrow(() -> ApiError.EMAIL_PROVIDER_NOT_FOUND.createException(request.getProviderId()))
|
||||
);
|
||||
BookEntity book = bookRepository.findById(request.getBookId()).orElseThrow(() -> ApiError.BOOK_NOT_FOUND.createException(request.getBookId()));
|
||||
EmailRecipientV2Entity emailRecipient = emailRecipientRepository.findByIdAndUserId(request.getRecipientId(), user.getId()).orElseThrow(() -> ApiError.EMAIL_RECIPIENT_NOT_FOUND.createException(request.getRecipientId()));
|
||||
sendEmailInVirtualThread(emailProvider, emailRecipient.getEmail(), book);
|
||||
|
||||
@@ -8,15 +8,15 @@ import {Observable} from 'rxjs';
|
||||
})
|
||||
export class EmailService {
|
||||
|
||||
private readonly apiUrl = `${API_CONFIG.BASE_URL}/api/v1/emails`;
|
||||
private readonly apiUrl = `${API_CONFIG.BASE_URL}/api/v2/email`;
|
||||
|
||||
private http = inject(HttpClient);
|
||||
|
||||
emailBook(request: { bookId: number, providerId: number, recipientId: number }): Observable<void> {
|
||||
return this.http.post<void>(`${this.apiUrl}/send-book`, request);
|
||||
return this.http.post<void>(`${this.apiUrl}/book`, request);
|
||||
}
|
||||
|
||||
emailBookQuick(bookId: number): Observable<void> {
|
||||
return this.http.post<void>(`${this.apiUrl}/send-book/${bookId}`, {});
|
||||
return this.http.post<void>(`${this.apiUrl}/book/${bookId}`, {});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user