Skip to content

Commit 6591105

Browse files
authored
Merge pull request #2879 from objectcomputing/release/0.8
Deploy v0.8.14 into Production
2 parents 4d8d305 + 413ea3a commit 6591105

File tree

203 files changed

+1849
-4309
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

203 files changed

+1849
-4309
lines changed

.github/workflows/gradle-build-production.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ jobs:
8787
--set-env-vars "^@^MICRONAUT_ENVIRONMENTS=cloud,google,gcp" \
8888
--set-env-vars "SLACK_WEBHOOK_URL=${{ secrets.SLACK_WEBHOOK_URL }}" \
8989
--set-env-vars "SLACK_BOT_TOKEN=${{ secrets.SLACK_BOT_TOKEN }}" \
90+
--set-env-vars "SLACK_SIGNING_SECRET=${{ secrets.SLACK_PULSE_SIGNING_SECRET }}" \
9091
--platform "managed" \
9192
--max-instances 8 \
9293
--allow-unauthenticated

.github/workflows/gradle-deploy-develop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ jobs:
112112
--set-env-vars "^@^MICRONAUT_ENVIRONMENTS=dev,cloud,google,gcp" \
113113
--set-env-vars "SLACK_WEBHOOK_URL=${{ secrets.SLACK_WEBHOOK_URL }}" \
114114
--set-env-vars "SLACK_BOT_TOKEN=${{ secrets.SLACK_BOT_TOKEN }}" \
115+
--set-env-vars "SLACK_SIGNING_SECRET=${{ secrets.SLACK_PULSE_SIGNING_SECRET }}" \
115116
--platform "managed" \
116117
--max-instances 2 \
117118
--allow-unauthenticated

.github/workflows/gradle-deploy-native-develop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ jobs:
111111
--set-env-vars "^@^MICRONAUT_ENVIRONMENTS=dev,cloud,google,gcp" \
112112
--set-env-vars "SLACK_WEBHOOK_URL=${{ secrets.SLACK_WEBHOOK_URL }}" \
113113
--set-env-vars "SLACK_BOT_TOKEN=${{ secrets.SLACK_BOT_TOKEN }}" \
114+
--set-env-vars "SLACK_SIGNING_SECRET=${{ secrets.SLACK_PULSE_SIGNING_SECRET }}" \
114115
--platform "managed" \
115116
--max-instances 2 \
116117
--allow-unauthenticated

docker-compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: '3'
22
services:
33
postgresql:
4-
image: postgres:11.6
4+
image: postgres:17.2
55
environment:
66
POSTGRES_DB: checkinsdb
77
POSTGRES_USER: postgres

server/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
id "jacoco"
88
}
99

10-
version "0.8.13"
10+
version "0.8.14"
1111
group "com.objectcomputing.checkins"
1212

1313
repositories {

server/src/main/java/com/objectcomputing/checkins/configuration/CheckInsConfiguration.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public static class ApplicationConfig {
3232
private GoogleApiConfig googleApi;
3333

3434
@NotNull
35-
private NotificationsConfig notifications;
35+
private SlackConfig slack;
3636

3737
@Getter
3838
@Setter
@@ -72,22 +72,16 @@ public static class ScopeConfig {
7272

7373
@Getter
7474
@Setter
75-
@ConfigurationProperties("notifications")
76-
public static class NotificationsConfig {
77-
78-
@NotNull
79-
private SlackConfig slack;
75+
@ConfigurationProperties("slack")
76+
public static class SlackConfig {
77+
@NotBlank
78+
private String webhookUrl;
8079

81-
@Getter
82-
@Setter
83-
@ConfigurationProperties("slack")
84-
public static class SlackConfig {
85-
@NotBlank
86-
private String webhookUrl;
80+
@NotBlank
81+
private String botToken;
8782

88-
@NotBlank
89-
private String botToken;
90-
}
83+
@NotBlank
84+
private String signingSecret;
9185
}
9286
}
9387
}

server/src/main/java/com/objectcomputing/checkins/notifications/social_media/SlackPoster.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ public class SlackPoster {
2121
private CheckInsConfiguration configuration;
2222

2323
public HttpResponse post(String slackBlock) {
24-
// See if we can have a webhook URL.
25-
String slackWebHook = configuration.getApplication().getNotifications().getSlack().getWebhookUrl();
24+
// See if we have a webhook URL.
25+
String slackWebHook = configuration.getApplication()
26+
.getSlack().getWebhookUrl();
2627
if (slackWebHook != null) {
2728
// POST it to Slack.
2829
BlockingHttpClient client = slackClient.toBlocking();

server/src/main/java/com/objectcomputing/checkins/notifications/social_media/SlackSearch.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.slack.api.methods.response.conversations.ConversationsListResponse;
1111
import com.slack.api.methods.request.users.UsersLookupByEmailRequest;
1212
import com.slack.api.methods.response.users.UsersLookupByEmailResponse;
13+
import com.slack.api.methods.request.users.UsersInfoRequest;
14+
import com.slack.api.methods.response.users.UsersInfoResponse;
1315

1416
import jakarta.inject.Singleton;
1517
import jakarta.inject.Inject;
@@ -32,7 +34,7 @@ public SlackSearch(CheckInsConfiguration checkInsConfiguration) {
3234
}
3335

3436
public String findChannelId(String channelName) {
35-
String token = configuration.getApplication().getNotifications().getSlack().getBotToken();
37+
String token = configuration.getApplication().getSlack().getBotToken();
3638
if (token != null) {
3739
try {
3840
MethodsClient client = Slack.getInstance().methods(token);
@@ -57,7 +59,7 @@ public String findChannelId(String channelName) {
5759
}
5860

5961
public String findUserId(String userEmail) {
60-
String token = configuration.getApplication().getNotifications().getSlack().getBotToken();
62+
String token = configuration.getApplication().getSlack().getBotToken();
6163
if (token != null) {
6264
try {
6365
MethodsClient client = Slack.getInstance().methods(token);
@@ -76,5 +78,26 @@ public String findUserId(String userEmail) {
7678
}
7779
return null;
7880
}
81+
82+
public String findUserEmail(String userId) {
83+
String token = configuration.getApplication().getSlack().getBotToken();
84+
if (token != null) {
85+
try {
86+
MethodsClient client = Slack.getInstance().methods(token);
87+
UsersInfoResponse response = client.usersInfo(
88+
UsersInfoRequest.builder().user(userId).build()
89+
);
90+
91+
if (response.isOk()) {
92+
return response.getUser().getProfile().getEmail();
93+
}
94+
} catch(IOException e) {
95+
LOG.error("SlackSearch.findUserEmail: " + e.toString());
96+
} catch(SlackApiException e) {
97+
LOG.error("SlackSearch.findUserEmail: " + e.toString());
98+
}
99+
}
100+
return null;
101+
}
79102
}
80103

server/src/main/java/com/objectcomputing/checkins/services/action_item/ActionItemController.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.objectcomputing.checkins.services.action_item;
22

3-
import com.objectcomputing.checkins.services.permissions.Permission;
4-
import com.objectcomputing.checkins.services.permissions.RequiredPermission;
53
import io.micronaut.core.annotation.Nullable;
64
import io.micronaut.http.HttpRequest;
75
import io.micronaut.http.HttpResponse;
@@ -35,7 +33,6 @@ public ActionItemController(ActionItemServices actionItemServices) {
3533
* @return {@link HttpResponse <ActionItem>}
3634
*/
3735
@Post
38-
@RequiredPermission(Permission.CAN_CREATE_CHECKINS)
3936
public HttpResponse<ActionItem> createActionItem(@Body @Valid ActionItemCreateDTO actionItem,
4037
HttpRequest<?> request) {
4138
ActionItem newActionItem = actionItemServices.save(new ActionItem(actionItem.getCheckinid(),
@@ -53,7 +50,6 @@ public HttpResponse<ActionItem> createActionItem(@Body @Valid ActionItemCreateDT
5350
* @return {@link HttpResponse< ActionItem >}
5451
*/
5552
@Put
56-
@RequiredPermission(Permission.CAN_UPDATE_CHECKINS)
5753
public HttpResponse<?> updateActionItem(@Body @Valid ActionItem actionItem, HttpRequest<?> request) {
5854
ActionItem updatedActionItem = actionItemServices.update(actionItem);
5955
return HttpResponse
@@ -70,7 +66,6 @@ public HttpResponse<?> updateActionItem(@Body @Valid ActionItem actionItem, Http
7066
* @param id, id of {@link ActionItem} to delete
7167
*/
7268
@Delete("/{id}")
73-
@RequiredPermission(Permission.CAN_UPDATE_CHECKINS)
7469
public HttpResponse<?> deleteActionItem(UUID id) {
7570
actionItemServices.delete(id);
7671
return HttpResponse
@@ -84,7 +79,6 @@ public HttpResponse<?> deleteActionItem(UUID id) {
8479
* @return {@link ActionItem}
8580
*/
8681
@Get("/{id}")
87-
@RequiredPermission(Permission.CAN_VIEW_CHECKINS)
8882
public ActionItem readActionItem(UUID id) {
8983
return actionItemServices.read(id);
9084
}
@@ -97,7 +91,6 @@ public ActionItem readActionItem(UUID id) {
9791
* @return {@link List < CheckIn > list of checkins}
9892
*/
9993
@Get("/{?checkinid,createdbyid}")
100-
@RequiredPermission(Permission.CAN_VIEW_CHECKINS)
10194
public Set<ActionItem> findActionItems(@Nullable UUID checkinid,
10295
@Nullable UUID createdbyid) {
10396
return actionItemServices.findByFields(checkinid, createdbyid);

server/src/main/java/com/objectcomputing/checkins/services/action_item/ActionItemServicesImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.objectcomputing.checkins.services.action_item;
22

3+
import com.objectcomputing.checkins.services.permissions.Permission;
4+
import com.objectcomputing.checkins.services.permissions.RequiredPermission;
35
import com.objectcomputing.checkins.services.validate.crud.CRUDValidator;
46
import jakarta.inject.Named;
57
import jakarta.inject.Singleton;
@@ -24,6 +26,7 @@ public ActionItemServicesImpl(ActionItemRepository actionItemRepo,
2426
this.crudValidator = crudValidator;
2527
}
2628

29+
@RequiredPermission(Permission.CAN_CREATE_CHECKINS)
2730
public ActionItem save(@Valid @NotNull ActionItem actionItem) {
2831
ActionItem actionItemRet;
2932

@@ -45,6 +48,7 @@ public ActionItem save(@Valid @NotNull ActionItem actionItem) {
4548

4649
}
4750

51+
@RequiredPermission(Permission.CAN_VIEW_CHECKINS)
4852
public ActionItem read(@NotNull UUID id) {
4953

5054
ActionItem actionItemResult = actionItemRepo.findById(id).orElse(null);
@@ -56,6 +60,7 @@ public ActionItem read(@NotNull UUID id) {
5660

5761
}
5862

63+
@RequiredPermission(Permission.CAN_UPDATE_CHECKINS)
5964
public ActionItem update(@Valid @NotNull ActionItem actionItem) {
6065
ActionItem actionItemRet = null;
6166

@@ -68,6 +73,7 @@ public ActionItem update(@Valid @NotNull ActionItem actionItem) {
6873

6974
}
7075

76+
@RequiredPermission(Permission.CAN_VIEW_CHECKINS)
7177
public Set<ActionItem> findByFields(UUID checkinid, UUID createdbyid) {
7278

7379
crudValidator.validatePermissionsFindByFields(checkinid, createdbyid);
@@ -79,6 +85,7 @@ public Set<ActionItem> findByFields(UUID checkinid, UUID createdbyid) {
7985

8086
}
8187

88+
@RequiredPermission(Permission.CAN_UPDATE_CHECKINS)
8289
public void delete(@NotNull UUID id) {
8390
ActionItem actionItemResult = actionItemRepo.findById(id).orElse(null);
8491

0 commit comments

Comments
 (0)