backend-coding-challenge's People
Forkers
federico-abss tiberiu-biking ruchisehgal nox69 ifaluwa anandsyncs clarencedsilva pranav8494 kasramp abugnais ankit-arora12 rclacerna undimmable pgeadas bjoe88 hongdaj mguschin rafaelferraro makobernal johndutchover fnva001backend-coding-challenge's Issues
Employees reported they were notified about reminders that were already acknowledged by them
Steps to reproduce the bug
- Create a simple non-recurrent reminder;
- Acknowledge the reminder;
- The employees are notified by email even after they have already acknowledged the reminder;
Expected behavior
Acknowledged reminders should not be sent by email to employees;
Current behavior
All reminders are being sent by email to employees;
generateJooqClasses task fails on Windows [Workaround Available]
Hello!
Currently, when building this project on a Windows machine, the generateJooqClasses
task fails. There appears to be an issue where docker-java attempts to use a unix socket although running from a Windows machine.
Windows 10 Home
Docker Version 20.10.17
Java 11.0.16.1
Steps to reproduce
- Clone the repository and go into the directory backend-coding-challenge
- Run the command
./gradlew.bat generateJooqClasses
Expected Behavior
JOOQ Classes generated.
Expected Output:
127.0.0.1:5432 - no response
waiting for db
127.0.0.1:5432 - no response
waiting for db
127.0.0.1:5432 - no response
waiting for db
127.0.0.1:5432 - accepting connections
BUILD SUCCESSFUL in 16s
1 actionable task: 1 executed
Current Behavior
> ./gradlew.bat generateJooqClasses --stacktrace
Error during callback
java.net.SocketException: A socket operation encountered a dead network.
at org.newsclub.net.unix.NativeUnixSocket.connect(Native Method)
at org.newsclub.net.unix.AFUNIXSocketImpl.connect(AFUNIXSocketImpl.java:263)
at org.newsclub.net.unix.AFUNIXSocket.connect(AFUNIXSocket.java:156)
at com.github.dockerjava.jaxrs.ApacheUnixSocket.connect(ApacheUnixSocket.java:62)
at com.github.dockerjava.jaxrs.UnixConnectionSocketFactory.connectSocket(UnixConnectionSocketFactory.java:74)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:480)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:296)
at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:623)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:621)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:432)
at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:333)
at com.github.dockerjava.jaxrs.async.POSTCallbackNotifier.response(POSTCallbackNotifier.java:29)
at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:50)
at com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier.call(AbstractCallbackNotifier.java:24)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
> Task :generateJooqClasses FAILED
FAILURE: Build failed with an exception.
Workaround
I have found a related issue in the jooq-plugin library here: revolut-engineering/jooq-plugin#15
In order to workaround this, I had to update the com.revolut.jooq-docker
plugin from version 0.3.3
-> 0.3.7
as well as go to my environment variables and add an extra system variable DOCKER_HOST
as npipe:////./pipe/docker_engine
.
If you look on the linked issue, there was a fix made on the docker-java library released here: https://github.com/docker-java/docker-java/releases/tag/3.2.12 in the following PR: (docker-java/docker-java#1701) to avoid adding the system variable workaround.
The base jooq-plugin library does not currently have this fix in yet. A fork can be created to simply update the docker-java version. There are also existing forks listed under the issue that have the fix implemented.
Employees can not remove their reminders
Expected behavior
The user should be able to remove their own reminders from the service.
Current behavior
Currently, the service does not provide a way for the users to remove their own reminders.
Employees are able to create reminders without a description
Steps to reproduce the bug
- Create a simple non-recurrent reminder without a description;
- The reminder is created;
Expected behavior
The user should be warned that a reminder should contain a description and the reminder should not be created;
Current behavior
The reminder is created without a description;
No LICENSE
I have an interview with y'all tomorrow, and I noticed there's no license on the repo, you might consider adding one!
The security team reported that employees may be able to interact with other employee's reminders
Steps to reproduce the issue
- Employee A performs a
GET
request to the/reminders
endpoint providing an employee B's id as theemployeeId
request param; - The employee A receives the reminders of employee B in the response;
Expected behaviour
Employee A should not be able to see another employee's reminders;
Current behaviour
Employee A is able to see another employee's reminders;
Docker image for java 17 doesn't work for mac M1
This has been introduced in the latest commit https://github.com/personio/backend-coding-challenge/pull/8/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557R1
=> ERROR [internal] load metadata for docker.io/library/eclipse-temurin:17-jre-alpine 1.3s
------
> [internal] load metadata for docker.io/library/eclipse-temurin:17-jre-alpine:
------
failed to solve: eclipse-temurin:17-jre-alpine: no match for platform in manifest sha256:8a139831f95086a107f510f239cb311d4196b94f0f15192a22f8f7a43f343d02: not found
No matching manifest for linux/arm64/v8 in the manifest list entries
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.