From fe8e33a7b51d8eba3ee77237b43ce15636967bbd Mon Sep 17 00:00:00 2001 From: Jay07GIT Date: Fri, 25 Apr 2025 10:14:06 +0530 Subject: [PATCH] added email field in create zone api Signed-off-by: Jay07GIT --- .../scala/vinyldns/api/domain/zone/ZoneService.scala | 3 --- .../scala/vinyldns/api/route/DnsJsonProtocol.scala | 1 + modules/core/src/main/protobuf/VinylDNSProto.proto | 1 + .../main/scala/vinyldns/core/domain/zone/Zone.scala | 11 +++++++++-- .../vinyldns/core/protobuf/ProtobufConversions.scala | 4 +++- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/api/src/main/scala/vinyldns/api/domain/zone/ZoneService.scala b/modules/api/src/main/scala/vinyldns/api/domain/zone/ZoneService.scala index 9a727f5ef..ba6a191d9 100644 --- a/modules/api/src/main/scala/vinyldns/api/domain/zone/ZoneService.scala +++ b/modules/api/src/main/scala/vinyldns/api/domain/zone/ZoneService.scala @@ -275,8 +275,6 @@ class ZoneService( ignoreAccess ) generatedZones = listZonesResult.generatedZones - _ = println("fasdfasfadfdafdafdsfdadsfdfdasafds ",generatedZones) - } yield ListGeneratedZonesResponse( generatedZones, listZonesResult.zonesFilter, @@ -296,7 +294,6 @@ class ZoneService( ignoreAccess ) generatedZones = listZonesResult.generatedZones - _ = println("fasdfasfadfdafdafdsfdadsfdfdasafds ",generatedZones) } yield ListGeneratedZonesResponse( generatedZones, nameFilter, diff --git a/modules/api/src/main/scala/vinyldns/api/route/DnsJsonProtocol.scala b/modules/api/src/main/scala/vinyldns/api/route/DnsJsonProtocol.scala index 36443b8ea..78f668d8c 100644 --- a/modules/api/src/main/scala/vinyldns/api/route/DnsJsonProtocol.scala +++ b/modules/api/src/main/scala/vinyldns/api/route/DnsJsonProtocol.scala @@ -129,6 +129,7 @@ trait DnsJsonProtocol extends JsonValidation { override def fromJson(js: JValue): ValidatedNel[String, ZoneGenerationInput] = ( (js \ "groupId").required[String]("Missing group id"), + (js \ "email").required[String]("Missing email id"), (js \ "provider").required[String]("Missing provider"), (js \ "zoneName").required[String]("Missing zone name"), (js \ "status").default(GenerateZoneStatus, GenerateZoneStatus.Active), diff --git a/modules/core/src/main/protobuf/VinylDNSProto.proto b/modules/core/src/main/protobuf/VinylDNSProto.proto index bcdebd81d..8e137a692 100644 --- a/modules/core/src/main/protobuf/VinylDNSProto.proto +++ b/modules/core/src/main/protobuf/VinylDNSProto.proto @@ -53,6 +53,7 @@ message GenerateZone { optional ZoneGenerationResponse response = 21; required int64 created = 22; optional int64 updated = 23; + required string email = 24; } message ZoneGenerationResponse { diff --git a/modules/core/src/main/scala/vinyldns/core/domain/zone/Zone.scala b/modules/core/src/main/scala/vinyldns/core/domain/zone/Zone.scala index 0eab7b7c6..a7c530a07 100644 --- a/modules/core/src/main/scala/vinyldns/core/domain/zone/Zone.scala +++ b/modules/core/src/main/scala/vinyldns/core/domain/zone/Zone.scala @@ -133,6 +133,7 @@ object Zone { } final case class GenerateZone( groupId: String, + email: String, provider: String, // "powerdns", "cloudflare", "google", "bind" zoneName: String, status: GenerateZoneStatus = GenerateZoneStatus.Active, @@ -155,12 +156,14 @@ final case class GenerateZone( id: String = UUID.randomUUID().toString, created: Instant = Instant.now.truncatedTo(ChronoUnit.MILLIS), updated: Option[Instant] = None, + ){ override def toString: String = { val sb = new StringBuilder sb.append("GenerateZone: [") sb.append("id=\"").append(id).append("\"; ") sb.append("groupId=\"").append(groupId).append("\"; ") + sb.append("email=\"").append(email).append("\"; ") sb.append("provider=\"").append(provider).append("\"; ") sb.append("zoneName=\"").append(zoneName).append("\"; ") sb.append("status=\"").append(zoneName).append("\"; ") @@ -191,6 +194,7 @@ object GenerateZone { GenerateZone( groupId, + email, provider, zoneName, status, @@ -218,6 +222,7 @@ object GenerateZone { currentGenerateZone.copy( groupId, + email, provider, zoneName , status, @@ -306,6 +311,7 @@ final case class UpdateZoneInput( final case class UpdateGenerateZoneInput( groupId: String, + email: String, provider: String, // "powerdns", "cloudflare", "google", "bind" zoneName: String, status: GenerateZoneStatus = GenerateZoneStatus.Active, @@ -318,14 +324,14 @@ final case class UpdateGenerateZoneInput( accountId: Option[String] = None, // Account ID (Cloudflare) projectId: Option[String] = None, // GCP Project ID (Google) ns_ipaddress: Option[List[String]] = None, // NS IpAddress (Bind) - admin_email: Option[String] = None, // NS IpAddress (Bind) + admin_email: Option[String] = None, // Admin Email (Bind) ttl: Option[Int] = None, // TTL (Bind) refresh: Option[Int] = None, // Refresh (Bind) retry: Option[Int] = None, // Retry (Bind) expire: Option[Int] = None, // Expire (Bind) negative_cache_ttl: Option[Int] = None, // Negative Cache TTL (Bind) response: Option[ZoneGenerationResponse] = None, - id: String = UUID.randomUUID().toString, + id: String = UUID.randomUUID().toString ) @@ -338,6 +344,7 @@ case class ZoneGenerationResponse( case class ZoneGenerationInput( groupId: String, + email: String, provider: String, // "powerdns", "cloudflare", "google", "bind" zoneName: String, status: GenerateZoneStatus = GenerateZoneStatus.Active, diff --git a/modules/core/src/main/scala/vinyldns/core/protobuf/ProtobufConversions.scala b/modules/core/src/main/scala/vinyldns/core/protobuf/ProtobufConversions.scala index 131f2a700..4c2b60eca 100644 --- a/modules/core/src/main/scala/vinyldns/core/protobuf/ProtobufConversions.scala +++ b/modules/core/src/main/scala/vinyldns/core/protobuf/ProtobufConversions.scala @@ -191,6 +191,7 @@ trait ProtobufConversions { zone.GenerateZone( groupId = zn.getGroupId, + email = zn.getEmail, provider = zn.getProvider, zoneName = zn.getZoneName, status = status, @@ -213,7 +214,7 @@ trait ProtobufConversions { id = zn.getId, response = if (zn.hasResponse) Some(fromPB(zn.getResponse)) else None, created = Instant.ofEpochMilli(zn.getCreated), - updated = if (zn.hasUpdated) Some(Instant.ofEpochMilli(zn.getUpdated)) else None, + updated = if (zn.hasUpdated) Some(Instant.ofEpochMilli(zn.getUpdated)) else None ) } @@ -504,6 +505,7 @@ trait ProtobufConversions { .newBuilder() .setId(generateZone.id) .setGroupId(generateZone.groupId) + .setEmail(generateZone.email) .setCreated(generateZone.created.toEpochMilli) .setProvider(generateZone.provider) .setZoneName(generateZone.zoneName)