Skip to content

Commit 32e2cfc

Browse files
AS-3093: Return url.
1 parent 1efccaa commit 32e2cfc

File tree

14 files changed

+143
-3
lines changed

14 files changed

+143
-3
lines changed

farms-api/farms-api-rest-common/src/main/java/ca/bc/gov/farms/api/rest/v1/resource/BenchmarkPerUnitRsrc.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public class BenchmarkPerUnitRsrc extends BaseResource implements BenchmarkPerUn
4343
private BigDecimal yearMinus3Expense;
4444
private BigDecimal yearMinus2Expense;
4545
private BigDecimal yearMinus1Expense;
46+
private Long urlId;
47+
private String url;
4648
private String userEmail;
4749

4850
@Override
@@ -285,6 +287,26 @@ public void setYearMinus1Expense(BigDecimal yearMinus1Expense) {
285287
this.yearMinus1Expense = yearMinus1Expense;
286288
}
287289

290+
@Override
291+
public Long getUrlId() {
292+
return urlId;
293+
}
294+
295+
@Override
296+
public void setUrlId(Long urlId) {
297+
this.urlId = urlId;
298+
}
299+
300+
@Override
301+
public String getUrl() {
302+
return url;
303+
}
304+
305+
@Override
306+
public void setUrl(String url) {
307+
this.url = url;
308+
}
309+
288310
@Override
289311
public String getUserEmail() {
290312
return userEmail;

farms-api/farms-api-rest-endpoints/src/main/java/ca/bc/gov/farms/api/rest/v1/resource/factory/BenchmarkPerUnitRsrcFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ private void populateDefaultResource(BenchmarkPerUnitRsrc resource, BenchmarkPer
6262
resource.setYearMinus3Expense(dto.getYearMinus3Expense());
6363
resource.setYearMinus2Expense(dto.getYearMinus2Expense());
6464
resource.setYearMinus1Expense(dto.getYearMinus1Expense());
65+
resource.setUrlId(dto.getUrlId());
66+
resource.setUrl(dto.getUrl());
6567
}
6668

6769
@Override
@@ -119,6 +121,8 @@ static BenchmarkPerUnitRsrc populate(BenchmarkPerUnitDto dto) {
119121
result.setYearMinus3Expense(dto.getYearMinus3Expense());
120122
result.setYearMinus2Expense(dto.getYearMinus2Expense());
121123
result.setYearMinus1Expense(dto.getYearMinus1Expense());
124+
result.setUrlId(dto.getUrlId());
125+
result.setUrl(dto.getUrl());
122126

123127
return result;
124128
}
@@ -171,5 +175,7 @@ public void updateBenchmarkPerUnit(BenchmarkPerUnitDto dto, BenchmarkPerUnit mod
171175
dto.setYearMinus3Expense(model.getYearMinus3Expense());
172176
dto.setYearMinus2Expense(model.getYearMinus2Expense());
173177
dto.setYearMinus1Expense(model.getYearMinus1Expense());
178+
dto.setUrlId(model.getUrlId());
179+
dto.setUrl(model.getUrl());
174180
}
175181
}

farms-api/farms-api-rest-endpoints/src/test/java/ca/bc/gov/farms/api/rest/v1/endpoints/BenchmarkPerUnitEndpointsTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public void testCreateBenchmarkPerUnit() throws Exception {
8484
benchmarkPerUnit.setYearMinus3Expense(new BigDecimal("186.58"));
8585
benchmarkPerUnit.setYearMinus2Expense(new BigDecimal("258.28"));
8686
benchmarkPerUnit.setYearMinus1Expense(new BigDecimal("258.28"));
87+
benchmarkPerUnit.setUrlId(1L);
8788
benchmarkPerUnit.setUserEmail("jsmith@gmail.com");
8889

8990
Response response = target("/benchmarkPerUnits").request().post(Entity.json(benchmarkPerUnit));
@@ -116,6 +117,8 @@ public void testCreateBenchmarkPerUnit() throws Exception {
116117
assertEquals(186.58, jsonObject.getDouble("yearMinus3Expense"));
117118
assertEquals(258.28, jsonObject.getDouble("yearMinus2Expense"));
118119
assertEquals(258.28, jsonObject.getDouble("yearMinus1Expense"));
120+
assertEquals(1, jsonObject.getInt("urlId"));
121+
assertEquals("https://google.com", jsonObject.getString("url"));
119122
assertEquals("null", jsonObject.getString("userEmail"));
120123
}
121124

@@ -157,6 +160,8 @@ public void testGetBenchmarkPerUnitsByProgramYear() throws Exception {
157160
assertEquals(186.58, benchmarkPerUnit.getDouble("yearMinus3Expense"));
158161
assertEquals(258.28, benchmarkPerUnit.getDouble("yearMinus2Expense"));
159162
assertEquals(258.28, benchmarkPerUnit.getDouble("yearMinus1Expense"));
163+
assertEquals(1, benchmarkPerUnit.getInt("urlId"));
164+
assertEquals("https://google.com", benchmarkPerUnit.getString("url"));
160165
assertEquals("null", benchmarkPerUnit.getString("userEmail"));
161166
}
162167

@@ -193,6 +198,8 @@ public void testGetBenchmarkPerUnit() throws Exception {
193198
assertEquals(186.58, jsonObject.getDouble("yearMinus3Expense"));
194199
assertEquals(258.28, jsonObject.getDouble("yearMinus2Expense"));
195200
assertEquals(258.28, jsonObject.getDouble("yearMinus1Expense"));
201+
assertEquals(1, jsonObject.getInt("urlId"));
202+
assertEquals("https://google.com", jsonObject.getString("url"));
196203
assertEquals("null", jsonObject.getString("userEmail"));
197204
}
198205

@@ -218,6 +225,7 @@ public void testUpdateBenchmarkPerUnit() throws Exception {
218225
benchmarkPerUnit.setYearMinus3Expense(new BigDecimal("1186.58"));
219226
benchmarkPerUnit.setYearMinus2Expense(new BigDecimal("1258.28"));
220227
benchmarkPerUnit.setYearMinus1Expense(new BigDecimal("1258.28"));
228+
benchmarkPerUnit.setUrlId(2L);
221229
benchmarkPerUnit.setUserEmail("jsmith@gmail.com");
222230

223231
Response response = target("/benchmarkPerUnits/60584").request().put(Entity.json(benchmarkPerUnit));
@@ -250,6 +258,8 @@ public void testUpdateBenchmarkPerUnit() throws Exception {
250258
assertEquals(1186.58, jsonObject.getDouble("yearMinus3Expense"));
251259
assertEquals(1258.28, jsonObject.getDouble("yearMinus2Expense"));
252260
assertEquals(1258.28, jsonObject.getDouble("yearMinus1Expense"));
261+
assertEquals(2, jsonObject.getInt("urlId"));
262+
assertEquals("https://microsoft.com", jsonObject.getString("url"));
253263
assertEquals("null", jsonObject.getString("userEmail"));
254264
}
255265

farms-api/farms-model/src/main/java/ca/bc/gov/farms/model/v1/BenchmarkPerUnit.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ public interface BenchmarkPerUnit extends Serializable {
7878
public BigDecimal getYearMinus1Expense();
7979
public void setYearMinus1Expense(BigDecimal yearMinus1Expense);
8080

81+
public Long getUrlId();
82+
public void setUrlId(Long urlId);
83+
84+
public String getUrl();
85+
public void setUrl(String url);
86+
8187
public String getUserEmail();
8288
public void setUserEmail(String userEmail);
8389
}

farms-api/farms-persistence/src/main/java/ca/bc/gov/farms/persistence/v1/dto/BenchmarkPerUnitDto.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public class BenchmarkPerUnitDto extends BaseDto<BenchmarkPerUnitDto> {
3939
private BigDecimal yearMinus3Expense;
4040
private BigDecimal yearMinus2Expense;
4141
private BigDecimal yearMinus1Expense;
42+
private Long urlId;
43+
private String url;
4244

4345
private Integer revisionCount;
4446
private String createUser;
@@ -126,6 +128,8 @@ public boolean equalsAll(BenchmarkPerUnitDto other) {
126128
result = result && dtoUtils.equals("yearMinus3Expense", this, other);
127129
result = result && dtoUtils.equals("yearMinus2Expense", this, other);
128130
result = result && dtoUtils.equals("yearMinus1Expense", this, other);
131+
result = result && dtoUtils.equals("urlId", urlId, other.urlId);
132+
result = result && dtoUtils.equals("url", url, other.url);
129133
}
130134

131135
return result;
@@ -323,6 +327,22 @@ public void setYearMinus1Expense(BigDecimal yearMinus1Expense) {
323327
this.yearMinus1Expense = yearMinus1Expense;
324328
}
325329

330+
public Long getUrlId() {
331+
return urlId;
332+
}
333+
334+
public void setUrlId(Long urlId) {
335+
this.urlId = urlId;
336+
}
337+
338+
public String getUrl() {
339+
return url;
340+
}
341+
342+
public void setUrl(String url) {
343+
this.url = url;
344+
}
345+
326346
public Integer getRevisionCount() {
327347
return revisionCount;
328348
}

farms-api/farms-persistence/src/main/resources/ca/bc/gov/farms/persistence/v1/dao/mybatis/mapper/BenchmarkPerUnitMapper.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
<result property="yearMinus3Expense" column="year_minus_3_expense" javaType="java.math.BigDecimal" jdbcType="NUMERIC" />
3030
<result property="yearMinus2Expense" column="year_minus_2_expense" javaType="java.math.BigDecimal" jdbcType="NUMERIC" />
3131
<result property="yearMinus1Expense" column="year_minus_1_expense" javaType="java.math.BigDecimal" jdbcType="NUMERIC" />
32+
<result property="urlId" column="url_id" javaType="java.lang.Long" jdbcType="BIGINT" />
33+
<result property="url" column="url" javaType="java.lang.String" jdbcType="VARCHAR" />
3234

3335
<result property="revisionCount" column="revision_count" javaType="java.lang.Integer" jdbcType="NUMERIC" />
3436
<result property="createUser" column="who_created" javaType="java.lang.String" jdbcType="VARCHAR" />
@@ -61,7 +63,9 @@
6163
et.year_minus_4_expense,
6264
et.year_minus_3_expense,
6365
et.year_minus_2_expense,
64-
et.year_minus_1_expense
66+
et.year_minus_1_expense,
67+
u.url_id,
68+
u.url
6569
</sql>
6670

6771
<sql id="fromClause">
@@ -115,6 +119,7 @@
115119
"year_minus_4_expense" numeric,
116120
"year_minus_5_expense" numeric,
117121
"year_minus_6_expense" numeric) USING (benchmark_per_unit_id)
122+
left join farms.farm_urls u using (url_id)
118123
</sql>
119124

120125
<select id="fetch" resultMap="BenchmarkPerUnitDtoMap">
@@ -142,6 +147,7 @@
142147
municipality_code,
143148
inventory_item_code,
144149
structure_group_code,
150+
url_id,
145151
revision_count,
146152
who_created,
147153
when_created,
@@ -174,6 +180,11 @@
174180
where current_date between sgc.established_date::date and sgc.expiry_date::date
175181
and sgc.structure_group_code = #{dto.inventoryCode, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN}
176182
),
183+
(
184+
select u.url_id
185+
from farms.farm_urls u
186+
where u.url_id = #{dto.urlId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
187+
),
177188
1,
178189
#{userId, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN},
179190
now(),
@@ -233,6 +244,11 @@
233244
where current_date between sgc.established_date::date and sgc.expiry_date::date
234245
and sgc.structure_group_code = #{dto.inventoryCode, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN}
235246
),
247+
url_id = (
248+
select u.url_id
249+
from farms.farm_urls u
250+
where u.url_id = #{dto.urlId, javaType=java.lang.Long, jdbcType=BIGINT, mode=IN}
251+
),
236252
revision_count = revision_count + 1,
237253
who_updated = #{userId, javaType=java.lang.String, jdbcType=VARCHAR, mode=IN},
238254
when_updated = now()

farms-api/farms-persistence/src/test/java/ca/bc/gov/farms/api/rest/v1/spring/EndpointsSpringConfigTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,9 @@ public PostgreSQLContainer<?> postgresContainer() {
7171
"farms/tables/farms.farm_structure_group_codes.sql",
7272
"farms/tables/farms.farm_subscription_status_codes.sql",
7373
"farms/tables/farms.farm_tip_rating_codes.sql",
74-
"farms/tables/farms.farm_year_configuration_params.sql",
7574
"farms/tables/farms.farm_triage_queue_codes.sql",
75+
"farms/tables/farms.farm_urls.sql",
76+
"farms/tables/farms.farm_year_configuration_params.sql",
7677
"farms/tables/foreign_keys.sql",
7778
"farms/tables/data.sql");
7879
}

farms-api/farms-persistence/src/test/java/ca/bc/gov/farms/persistence/v1/dao/BenchmarkPerUnitDaoTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public void testInsert() {
5454
dto.setYearMinus3Expense(new BigDecimal("186.58"));
5555
dto.setYearMinus2Expense(new BigDecimal("258.28"));
5656
dto.setYearMinus1Expense(new BigDecimal("258.28"));
57+
dto.setUrlId(1L);
5758

5859
BenchmarkPerUnitDto result = null;
5960
try {
@@ -88,6 +89,8 @@ public void testInsert() {
8889
assertThat(result.getYearMinus3Expense()).isEqualByComparingTo(new BigDecimal("186.58"));
8990
assertThat(result.getYearMinus2Expense()).isEqualByComparingTo(new BigDecimal("258.28"));
9091
assertThat(result.getYearMinus1Expense()).isEqualByComparingTo(new BigDecimal("258.28"));
92+
assertThat(result.getUrlId()).isEqualTo(1);
93+
assertThat(result.getUrl()).isEqualTo("https://google.com");
9194
}
9295

9396
@Test
@@ -128,6 +131,8 @@ public void testFetchByProgramYear() {
128131
assertThat(dto.getYearMinus3Expense()).isEqualByComparingTo(new BigDecimal("186.58"));
129132
assertThat(dto.getYearMinus2Expense()).isEqualByComparingTo(new BigDecimal("258.28"));
130133
assertThat(dto.getYearMinus1Expense()).isEqualByComparingTo(new BigDecimal("258.28"));
134+
assertThat(dto.getUrlId()).isEqualTo(1);
135+
assertThat(dto.getUrl()).isEqualTo("https://google.com");
131136
}
132137

133138
@Test
@@ -159,6 +164,7 @@ public void testUpdate() {
159164
dto.setYearMinus3Expense(new BigDecimal("1186.58"));
160165
dto.setYearMinus2Expense(new BigDecimal("1258.28"));
161166
dto.setYearMinus1Expense(new BigDecimal("1258.28"));
167+
dto.setUrlId(2L);
162168

163169
BenchmarkPerUnitDto result = null;
164170
try {
@@ -192,6 +198,8 @@ public void testUpdate() {
192198
assertThat(result.getYearMinus3Expense()).isEqualByComparingTo(new BigDecimal("1186.58"));
193199
assertThat(result.getYearMinus2Expense()).isEqualByComparingTo(new BigDecimal("1258.28"));
194200
assertThat(result.getYearMinus1Expense()).isEqualByComparingTo(new BigDecimal("1258.28"));
201+
assertThat(result.getUrlId()).isEqualTo(2);
202+
assertThat(result.getUrl()).isEqualTo("https://microsoft.com");
195203
}
196204

197205
@Test

farms-api/farms-persistence/src/test/resources/farms/sequences.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ CREATE SEQUENCE farms.farm_iid_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 5536
1111
CREATE SEQUENCE farms.farm_li_seq INCREMENT 1 MINVALUE 0 NO MAXVALUE START 39909 CACHE 20;
1212
CREATE SEQUENCE farms.farm_mrp_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 21 CACHE 20;
1313
CREATE SEQUENCE farms.farm_sga_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 21 CACHE 20;
14+
CREATE SEQUENCE farms.farm_url_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 1 CACHE 20;
1415
CREATE SEQUENCE farms.farm_ycp_seq INCREMENT 1 MINVALUE 1 NO MAXVALUE START 241 CACHE 20;

farms-api/farms-persistence/src/test/resources/farms/tables/data.sql

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,3 +346,29 @@ insert into farms.farm_crop_unit_defaults (
346346
current_user,
347347
current_timestamp
348348
);
349+
350+
insert into farms.farm_urls (
351+
url_id,
352+
url,
353+
revision_count,
354+
who_created,
355+
when_created,
356+
who_updated,
357+
when_updated
358+
) values (
359+
nextval('farms.farm_url_seq'),
360+
'https://google.com',
361+
1,
362+
current_user,
363+
current_timestamp,
364+
current_user,
365+
current_timestamp
366+
), (
367+
nextval('farms.farm_url_seq'),
368+
'https://microsoft.com',
369+
1,
370+
current_user,
371+
current_timestamp,
372+
current_user,
373+
current_timestamp
374+
);

0 commit comments

Comments
 (0)