Skip to content
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

PREAPPS-3593: Folder count issue fixed for shared folder. #278

Merged
merged 4 commits into from
Nov 5, 2019

Conversation

anukritiJagatramka
Copy link

No description provided.

@@ -302,8 +322,12 @@ export class ZimbraNotifications {
if (items) {
items.forEach((i: any) => {
const item = normalizeFolder(i);
let itemId: any;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was another PR - #270. Aren't we proceeding with that ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The approch was changed, incorporated the same.

f.includes('Folder:')
);
const idSplit = item.id.split(':');
for (let folderId in allFolders) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can folderId be const?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

cachedData[allFolders[folderId]].ownerZimbraId === idSplit[0] &&
cachedData[allFolders[folderId]].sharedItemId === idSplit[1]
) {
sharedFolderId = cachedData[allFolders[folderId]].id;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to explain break condition in comment.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sharedFolderId = allFolders[folderId][id]

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@itsmeprashant allFolders is an array of keys of type Folder:, for example - ['Folder:2', 'Folder:1999']. It is different from cached data.
@avadhutprabhudesai Added comment.

const idSplit = item.id.split(':');
for (let folderId in allFolders) {
if (
cachedData[allFolders[folderId]].ownerZimbraId === idSplit[0] &&

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Store cachedData[allFolders[folderId]] into a variable and use it at multiple places.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

allFolders[folderId][ownerZimbraId] holds same data as cachedData[allFolders[folderId]].ownerZimbraId

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@itsmeprashant As mentioned above, allFolders is an array of string of type Folder:.
@avadhutprabhudesai Stored the data in variable and used it everywhere.

@@ -145,6 +145,26 @@ export class ZimbraNotifications {
this.getApolloClient().queryManager.broadcastQueries();
};

// Find the actual folder of the shared folder
private findSharedItemId = (item: any) => {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we destructure id here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tweaked logic to only send id to findSharedItemId, hence destructuring will not be required.

@@ -302,8 +322,12 @@ export class ZimbraNotifications {
if (items) {
items.forEach((i: any) => {
const item = normalizeFolder(i);
let itemId = item.id;
if (i.id.includes(':')) {
itemId = this.findSharedItemId(i);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just pass id to this function? Do we need any other attributes from item?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -302,8 +322,12 @@ export class ZimbraNotifications {
if (items) {
items.forEach((i: any) => {
const item = normalizeFolder(i);
let itemId = item.id;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const itemId = i.id.includes(':') ? this.findSharedItemId(i.id) : item.id; ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -302,8 +322,12 @@ export class ZimbraNotifications {
if (items) {
items.forEach((i: any) => {
const item = normalizeFolder(i);
let itemId = item.id;
if (i.id.includes(':')) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

get(i, 'id', '').includes(':')

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

folder.sharedItemId === idSplit[1]
) {
sharedFolderId = folder.id;
break;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of doing an assignment and a break here, you can instead return folder.id; and won't need to break out of the loop because the function ends.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@@ -302,8 +324,11 @@ export class ZimbraNotifications {
if (items) {
items.forEach((i: any) => {
const item = normalizeFolder(i);
const itemId = get(i, 'id', '').includes(':')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can access item.id here safely instead of using get, and it is confusing to use i instead of item.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Contributor

@pl12133 pl12133 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found some small code changes that don't affect functionality but it would be good to help maintainability.

@BhavinBathani BhavinBathani merged commit 04ceb43 into develop Nov 5, 2019
@BhavinBathani BhavinBathani deleted the PREAPPS-3593 branch November 5, 2019 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants