tutorbookapp/tutorbook

View on GitHub
lib/api/update/people-tags.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { dequal } from 'dequal/lite';

import { User, UserTag } from 'lib/model/user';
import { updateUser } from 'lib/api/db/user';
import updateUserTags from 'lib/api/update/user-tags';

export default async function updatePeopleTags(
  people: User[],
  actions?: { add?: UserTag[]; remove?: UserTag[] }
): Promise<void> {
  await Promise.all(
    people.map(async (person) => {
      const user = updateUserTags(person, actions);
      if (dequal(user.tags, person.tags)) return;
      await updateUser(user);
    })
  );
}