File tree Expand file tree Collapse file tree
LrmCloud.Shared/DTOs/Resources Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -65,6 +65,13 @@ public async Task<KeySyncPushResponse> PushAsync(
6565 {
6666 var result = await ApplyEntryChangeAsync ( projectId , entry , ct ) ;
6767
68+ if ( result . Error != null )
69+ {
70+ // Skip invalid entries (e.g., empty key names)
71+ _logger . LogWarning ( "Skipping entry due to validation error: {Error}" , result . Error ) ;
72+ continue ;
73+ }
74+
6875 if ( result . IsConflict )
6976 {
7077 response . Conflicts . Add ( result . Conflict ! ) ;
@@ -371,6 +378,12 @@ private async Task<EntryChangeResult> ApplyEntryChangeAsync(
371378 EntryChangeDto entry ,
372379 CancellationToken ct )
373380 {
381+ // Validate key name
382+ if ( string . IsNullOrWhiteSpace ( entry . Key ) )
383+ {
384+ return new EntryChangeResult { Error = "Key name cannot be empty" } ;
385+ }
386+
374387 // Find or create the resource key
375388 var resourceKey = await _db . ResourceKeys
376389 . Include ( k => k . Translations )
@@ -625,6 +638,7 @@ private class EntryChangeResult
625638 public string ? BeforeValue { get ; set ; }
626639 public string ? BeforeHash { get ; set ; }
627640 public string ? BeforeComment { get ; set ; }
641+ public string ? Error { get ; set ; }
628642 }
629643
630644 private async Task < EntryDeletionResult > ApplyEntryDeletionAsync (
Original file line number Diff line number Diff line change @@ -160,6 +160,12 @@ public async Task<PagedResult<ResourceKeyDetailDto>> GetResourceKeysPagedAsync(
160160 return ( false , null , "You don't have permission to manage resources in this project" ) ;
161161 }
162162
163+ // Validate key name
164+ if ( string . IsNullOrWhiteSpace ( request . KeyName ) )
165+ {
166+ return ( false , null , "Key name cannot be empty" ) ;
167+ }
168+
163169 // Check if key already exists
164170 var exists = await _db . ResourceKeys
165171 . AnyAsync ( k => k . ProjectId == projectId && k . KeyName == request . KeyName ) ;
Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ namespace LrmCloud.Shared.DTOs.Resources;
88public class CreateResourceKeyRequest
99{
1010 [ Required ( ErrorMessage = "Key name is required" ) ]
11+ [ MinLength ( 1 , ErrorMessage = "Key name cannot be empty" ) ]
1112 [ MaxLength ( 500 , ErrorMessage = "Key name must not exceed 500 characters" ) ]
1213 public required string KeyName { get ; set ; }
1314
You can’t perform that action at this time.
0 commit comments