def _save_screenshots()

in experimenter/experimenter/experiments/api/v5/serializers.py [0:0]


    def _save_screenshots(self, screenshots, branch):
        if screenshots is None:
            return
        updated_screenshots = {x["id"]: x for x in screenshots if x.get("id")}
        for screenshot in branch.screenshots.all():
            screenshot_id = screenshot.id
            if screenshot_id not in updated_screenshots:
                screenshot.delete()
            else:
                serializer = NimbusBranchScreenshotSerializer(
                    screenshot,
                    data=updated_screenshots[screenshot_id],
                    partial=True,
                )
                if serializer.is_valid(raise_exception=True):
                    serializer.save()

        new_screenshots = (x for x in screenshots if not x.get("id", None))
        for screenshot_data in new_screenshots:
            serializer = NimbusBranchScreenshotSerializer(
                data=screenshot_data, partial=True
            )
            if serializer.is_valid(raise_exception=True):
                serializer.save(branch=branch)