Skip to content

Commit c59ccb7

Browse files
authored
Merge pull request #78 from Staketab/dev
add domainId for activities endpoints
2 parents 2a5e200 + 52e741a commit c59ccb7

File tree

4 files changed

+54
-16
lines changed

4 files changed

+54
-16
lines changed

src/main/java/com/staketab/minanames/dto/ActivityDTO.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
public class ActivityDTO {
99

1010
private String id;
11+
private String domainId;
1112
private String domainName;
1213
private String ownerAddress;
1314
private String transaction;

src/main/java/com/staketab/minanames/repository/ActivityRepository.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.staketab.minanames.entity.ActivityEntity;
44
import com.staketab.minanames.entity.DomainEntity;
5+
import com.staketab.minanames.repository.projection.ActivityProjection;
56
import org.springframework.data.domain.Page;
67
import org.springframework.data.domain.Pageable;
78
import org.springframework.data.jpa.repository.JpaRepository;
@@ -13,15 +14,29 @@ public interface ActivityRepository extends JpaRepository<ActivityEntity, String
1314

1415
@Query(nativeQuery = true,
1516
value = """
16-
select *
17-
from activity
18-
where owner_address = :address and is_show is true""")
19-
Page<ActivityEntity> findAllActivities(Pageable buildPageable, String address);
17+
select a.id as id,
18+
a.details as details,
19+
a.domain_name as domainName,
20+
a.owner_address as ownerAddress,
21+
a.timestamp as timestamp,
22+
a.tx_hash as txHash,
23+
a.status as status,
24+
d.id as domainId
25+
from activity a left join domains d on d.name = a.domain_name
26+
where a.owner_address = :address and a.is_show is true""")
27+
Page<ActivityProjection> findAllActivities(Pageable buildPageable, String address);
2028

2129
@Query(nativeQuery = true,
2230
value = """
23-
select *
24-
from activity
25-
where domain_name = :domainName and is_show is true""")
26-
Page<ActivityEntity> findAllActivitiesByDomainName(Pageable buildPageable, String domainName);
31+
select a.id as id,
32+
a.details as details,
33+
a.domain_name as domainName,
34+
a.owner_address as ownerAddress,
35+
a.timestamp as timestamp,
36+
a.tx_hash as txHash,
37+
a.status as status,
38+
d.id as domainId
39+
from activity a left join domains d on d.name = a.domain_name
40+
where a.domain_name = :domainName and a.is_show is true""")
41+
Page<ActivityProjection> findAllActivitiesByDomainName(Pageable buildPageable, String domainName);
2742
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.staketab.minanames.repository.projection;
2+
3+
public interface ActivityProjection {
4+
5+
String getId();
6+
7+
String getDetails();
8+
9+
String getDomainName();
10+
11+
String getOwnerAddress();
12+
13+
Long getTimestamp();
14+
15+
String getTxHash();
16+
17+
String getStatus();
18+
19+
String getDomainId();
20+
}

src/main/java/com/staketab/minanames/service/impl/ActivityServiceImpl.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.staketab.minanames.entity.ActivityStatus;
77
import com.staketab.minanames.entity.DomainEntity;
88
import com.staketab.minanames.repository.ActivityRepository;
9+
import com.staketab.minanames.repository.projection.ActivityProjection;
910
import com.staketab.minanames.service.ActivityService;
1011
import lombok.RequiredArgsConstructor;
1112
import lombok.extern.slf4j.Slf4j;
@@ -64,15 +65,16 @@ private ActivityEntity buildActivityEntity(DomainEntity domainEntity, ActivitySt
6465
.build();
6566
}
6667

67-
private ActivityDTO buildActivityDTO(ActivityEntity activityEntity) {
68+
private ActivityDTO buildActivityDTO(ActivityProjection activityProjection) {
6869
return ActivityDTO.builder()
69-
.id(activityEntity.getId())
70-
.activity(ActivityStatus.valueOf(activityEntity.getStatus()).getMessage())
71-
.transaction(activityEntity.getTxHash())
72-
.details(activityEntity.getDetails())
73-
.timestamp(activityEntity.getTimestamp())
74-
.ownerAddress(activityEntity.getOwnerAddress())
75-
.domainName(activityEntity.getDomainName())
70+
.id(activityProjection.getId())
71+
.activity(ActivityStatus.valueOf(activityProjection.getStatus()).getMessage())
72+
.transaction(activityProjection.getTxHash())
73+
.details(activityProjection.getDetails())
74+
.timestamp(activityProjection.getTimestamp())
75+
.ownerAddress(activityProjection.getOwnerAddress())
76+
.domainName(activityProjection.getDomainName())
77+
.domainId(activityProjection.getDomainId())
7678
.build();
7779
}
7880
}

0 commit comments

Comments
 (0)