-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
First release #1
base: main
Are you sure you want to change the base?
Conversation
@casalsgh sorry to tag you, but this is ready to merge. |
Hey, @jannatkhandev just to make you aware, this is a 4k+ line pull request, the review will take more time than it would be since, I can't look at this PR in my free time. So I'll have to check if it makes sense with the rest of the company for me to help you through it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I couldn't review everything, but since the code is mostly similar, I think you'll be able to extrapolate a lot of those comments to more places
Thanks for the detailed feedback, I will ensure I inspect rest of the code as well. |
Hey there, |
Thanks for the detailed feedback. I have addressed the review and have made changes accordingly. |
I really appreciate your time, I shall be highly grateful to you :) |
async function createLabelSection(label: ILabel): Promise<LayoutBlock[]> { | ||
const labelNameBlock = getSectionBlock(label.name); | ||
const labelContextBlock = getContextBlock( | ||
`Color: ${String(label.color).charAt(0).toUpperCase() + String(label.color).slice(1)} | ` + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets put this into a separate function wdyt?
this function is dealing contextually with label blocks, I don't think it is good for it to know exactly how the color field is internally
Ok so, I took some time to look at your code, and it is getting pretty good, congratulations 🚀
|
Also, dropping here a cool article about defensive programming, I think you'll benefit a lot from thinking like this: https://medium.com/@arumukherjee121/the-art-of-defensive-programming-62c6f22b2758 Since it is really annoying to update apps, and manage your deployed apps, we need to get the first version as stable as possible, and we do it, by programming defensively |
I really appreciate your time, the feedback and review really helps me grow as a developer. I will make all the improvements over the weekend and will get ready by Monday addressing all the comments. Yet again, thanks for your time and feedback. |
Don't worry, I'm happy to help :) Also, don't worry about being quick to ship stuff, take your time, ponder on your code, experiment, change stuff, that is really important for your growth as a developer. |
a3745a8
to
45fa44a
Compare
Hello sir, I deeply retrospected the code and made all requested changes, made the app more robust and code easy to follow. (Also sorry for messing up the commits, I changed my machine [now I run VPS on a server and use it in VSCode via SSH]) |
}; | ||
|
||
constructor(info: IAppInfo, logger: ILogger, accessors: IAppAccessors) { | ||
super(info, logger, accessors); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not just:
this.labelService = new LabelService(this);
...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I call the constructor here it goes into a cyclic loop of invocations as we use TodoistApp in the constructor of each service, hence.
Looking nice, I just think your validations are a little to optimistic, besides that, the code is looking good, congrats! |
A fully functional end-to-end test RC app for Todoist integration.
closes RocketChat/Rocket.Chat#34896
🚀 Looking forward to add many more features.
Screen.Recording.2025-01-07.at.5.1.mp4
Todoist App provides you the following slash commands, /todoist:
Allows users to create tasks from message, create task within project.