Changeset View
Changeset View
Standalone View
Standalone View
src/drive/teamdrive.cpp
Context not available. | |||||
27 | #include <QJsonDocument> | 27 | #include <QJsonDocument> | ||
---|---|---|---|---|---|
28 | 28 | | |||
29 | namespace { | 29 | namespace { | ||
30 | static const QString ApiKind = QStringLiteral("drive#teamDrive"); | ||||
31 | static const QString ApiKindList = QStringLiteral("drive#teamDriveList"); | ||||
30 | static const QString AdminManagedRestrictionsAttr = QStringLiteral("adminManagedRestrictions"); | 32 | static const QString AdminManagedRestrictionsAttr = QStringLiteral("adminManagedRestrictions"); | ||
31 | static const QString BackgroundImageFileAttr = QStringLiteral("backgroundImageFile"); | 33 | static const QString BackgroundImageFileAttr = QStringLiteral("backgroundImageFile"); | ||
32 | static const QString BackgroundImageLinkAttr = QStringLiteral("backgroundImageLink"); | 34 | static const QString BackgroundImageLinkAttr = QStringLiteral("backgroundImageLink"); | ||
Context not available. | |||||
358 | TeamdrivePtr Teamdrive::Private::fromJSON(const QVariantMap &map) | 360 | TeamdrivePtr Teamdrive::Private::fromJSON(const QVariantMap &map) | ||
359 | { | 361 | { | ||
360 | if (!map.contains(KindAttr) || | 362 | if (!map.contains(KindAttr) || | ||
361 | map[KindAttr].toString() != QLatin1String("drive#teamDrive")) | 363 | map[KindAttr].toString() != ApiKind) | ||
362 | { | 364 | { | ||
363 | return TeamdrivePtr(); | 365 | return TeamdrivePtr(); | ||
364 | } | 366 | } | ||
365 | 367 | | |||
366 | auto teamdrive = TeamdrivePtr::create(); | 368 | auto teamdrive = TeamdrivePtr::create(); | ||
367 | teamdrive->d->id = map[IdAttr].toString(); | 369 | if (map.contains(IdAttr)) { | ||
368 | teamdrive->d->name = map[NameAttr].toString(); | 370 | teamdrive->d->id = map[IdAttr].toString(); | ||
369 | teamdrive->d->themeId = map[ThemeIdAttr].toString(); | 371 | } | ||
370 | teamdrive->d->colorRgb = map[ColorRgbAttr].toString(); | 372 | if (map.contains(NameAttr)) { | ||
371 | teamdrive->d->backgroundImageLink = map[BackgroundImageLinkAttr].toString(); | 373 | teamdrive->d->name = map[NameAttr].toString(); | ||
372 | teamdrive->d->createdDate = QDateTime::fromString(map[CreatedDateAttr].toString(), Qt::ISODate); | 374 | } | ||
373 | 375 | if (map.contains(ThemeIdAttr)) { | |||
374 | const QVariantMap backgroundImageFileMap = map[BackgroundImageFileAttr].toMap(); | 376 | teamdrive->d->themeId = map[ThemeIdAttr].toString(); | ||
375 | auto backgroundImageFile = BackgroundImageFilePtr::create(); | 377 | } | ||
376 | backgroundImageFile->d->id = backgroundImageFileMap[IdAttr].toString(); | 378 | if (map.contains(ColorRgbAttr)) { | ||
377 | backgroundImageFile->d->xCoordinate = backgroundImageFileMap[XCoordinateAttr].toReal(); | 379 | teamdrive->d->colorRgb = map[ColorRgbAttr].toString(); | ||
378 | backgroundImageFile->d->yCoordinate = backgroundImageFileMap[YCoordinateAttr].toReal(); | 380 | } | ||
379 | backgroundImageFile->d->width = backgroundImageFileMap[WidthAttr].toReal(); | 381 | if (map.contains(BackgroundImageLinkAttr)) { | ||
380 | teamdrive->d->backgroundImageFile = backgroundImageFile; | 382 | teamdrive->d->backgroundImageLink = map[BackgroundImageLinkAttr].toString(); | ||
381 | 383 | } | |||
382 | const QVariantMap capabilitiesMap = map[CapabilitiesAttr].toMap(); | 384 | if (map.contains(CreatedDateAttr)) { | ||
383 | auto capabilities = CapabilitiesPtr::create(); | 385 | teamdrive->d->createdDate = QDateTime::fromString(map[CreatedDateAttr].toString(), Qt::ISODate); | ||
384 | capabilities->d->canAddChildren = capabilitiesMap[CanAddChildrenAttr].toBool(); | 386 | } | ||
385 | capabilities->d->canChangeCopyRequiresWriterPermissionRestriction = capabilitiesMap[CanChangeCopyRequiresWriterPermissionRestrictionAttr].toBool(); | 387 | | ||
386 | capabilities->d->canChangeDomainUsersOnlyRestriction = capabilitiesMap[CanChangeDomainUsersOnlyRestrictionAttr].toBool(); | 388 | if (map.contains(BackgroundImageFileAttr)) { | ||
387 | capabilities->d->canChangeTeamDriveBackground = capabilitiesMap[CanChangeTeamDriveBackgroundAttr].toBool(); | 389 | const QVariantMap backgroundImageFileMap = map[BackgroundImageFileAttr].toMap(); | ||
388 | capabilities->d->canChangeTeamMembersOnlyRestriction = capabilitiesMap[CanChangeTeamMembersOnlyRestrictionAttr].toBool(); | 390 | auto backgroundImageFile = BackgroundImageFilePtr::create(); | ||
389 | capabilities->d->canComment = capabilitiesMap[CanCommentAttr].toBool(); | 391 | backgroundImageFile->d->id = backgroundImageFileMap[IdAttr].toString(); | ||
390 | capabilities->d->canCopy = capabilitiesMap[CanCopyAttr].toBool(); | 392 | backgroundImageFile->d->xCoordinate = backgroundImageFileMap[XCoordinateAttr].toReal(); | ||
391 | capabilities->d->canDeleteChildren = capabilitiesMap[CanDeleteChildrenAttr].toBool(); | 393 | backgroundImageFile->d->yCoordinate = backgroundImageFileMap[YCoordinateAttr].toReal(); | ||
392 | capabilities->d->canDeleteTeamDrive = capabilitiesMap[CanDeleteTeamDriveAttr].toBool(); | 394 | backgroundImageFile->d->width = backgroundImageFileMap[WidthAttr].toReal(); | ||
393 | capabilities->d->canDownload = capabilitiesMap[CanDownloadAttr].toBool(); | 395 | teamdrive->d->backgroundImageFile = backgroundImageFile; | ||
394 | capabilities->d->canEdit = capabilitiesMap[CanEditAttr].toBool(); | 396 | } | ||
395 | capabilities->d->canListChildren = capabilitiesMap[CanListChildrenAttr].toBool(); | 397 | | ||
396 | capabilities->d->canManageMembers = capabilitiesMap[CanManageMembersAttr].toBool(); | 398 | if (map.contains(CapabilitiesAttr)) { | ||
397 | capabilities->d->canReadRevisions = capabilitiesMap[CanReadRevisionsAttr].toBool(); | 399 | const QVariantMap capabilitiesMap = map[CapabilitiesAttr].toMap(); | ||
398 | capabilities->d->canRename = capabilitiesMap[CanRenameAttr].toBool(); | 400 | auto capabilities = CapabilitiesPtr::create(); | ||
399 | capabilities->d->canRenameTeamDrive = capabilitiesMap[CanRenameTeamDriveAttr].toBool(); | 401 | capabilities->d->canAddChildren = capabilitiesMap[CanAddChildrenAttr].toBool(); | ||
400 | capabilities->d->canShare = capabilitiesMap[CanShareAttr].toBool(); | 402 | capabilities->d->canChangeCopyRequiresWriterPermissionRestriction = capabilitiesMap[CanChangeCopyRequiresWriterPermissionRestrictionAttr].toBool(); | ||
401 | capabilities->d->canTrashChildren = capabilitiesMap[CanTrashChildrenAttr].toBool(); | 403 | capabilities->d->canChangeDomainUsersOnlyRestriction = capabilitiesMap[CanChangeDomainUsersOnlyRestrictionAttr].toBool(); | ||
402 | teamdrive->d->capabilities = capabilities; | 404 | capabilities->d->canChangeTeamDriveBackground = capabilitiesMap[CanChangeTeamDriveBackgroundAttr].toBool(); | ||
403 | 405 | capabilities->d->canChangeTeamMembersOnlyRestriction = capabilitiesMap[CanChangeTeamMembersOnlyRestrictionAttr].toBool(); | |||
404 | const QVariantMap restrictionsMap = map[RestrictionsAttr].toMap(); | 406 | capabilities->d->canComment = capabilitiesMap[CanCommentAttr].toBool(); | ||
405 | auto restrictions = RestrictionsPtr::create(); | 407 | capabilities->d->canCopy = capabilitiesMap[CanCopyAttr].toBool(); | ||
406 | restrictions->d->adminManagedRestrictions = restrictionsMap[AdminManagedRestrictionsAttr].toBool(); | 408 | capabilities->d->canDeleteChildren = capabilitiesMap[CanDeleteChildrenAttr].toBool(); | ||
407 | restrictions->d->copyRequiresWriterPermission = restrictionsMap[CopyRequiresWriterPermissionAttr].toBool(); | 409 | capabilities->d->canDeleteTeamDrive = capabilitiesMap[CanDeleteTeamDriveAttr].toBool(); | ||
408 | restrictions->d->domainUsersOnly = restrictionsMap[DomainUsersOnlyAttr].toBool(); | 410 | capabilities->d->canDownload = capabilitiesMap[CanDownloadAttr].toBool(); | ||
409 | restrictions->d->teamMembersOnly = restrictionsMap[TeamMembersOnlyAttr].toBool(); | 411 | capabilities->d->canEdit = capabilitiesMap[CanEditAttr].toBool(); | ||
410 | teamdrive->d->restrictions = restrictions; | 412 | capabilities->d->canListChildren = capabilitiesMap[CanListChildrenAttr].toBool(); | ||
413 | capabilities->d->canManageMembers = capabilitiesMap[CanManageMembersAttr].toBool(); | ||||
414 | capabilities->d->canReadRevisions = capabilitiesMap[CanReadRevisionsAttr].toBool(); | ||||
415 | capabilities->d->canRename = capabilitiesMap[CanRenameAttr].toBool(); | ||||
416 | capabilities->d->canRenameTeamDrive = capabilitiesMap[CanRenameTeamDriveAttr].toBool(); | ||||
417 | capabilities->d->canShare = capabilitiesMap[CanShareAttr].toBool(); | ||||
418 | capabilities->d->canTrashChildren = capabilitiesMap[CanTrashChildrenAttr].toBool(); | ||||
419 | teamdrive->d->capabilities = capabilities; | ||||
420 | } | ||||
421 | | ||||
422 | if (map.contains(RestrictionsAttr)) { | ||||
423 | const QVariantMap restrictionsMap = map[RestrictionsAttr].toMap(); | ||||
424 | auto restrictions = RestrictionsPtr::create(); | ||||
425 | restrictions->d->adminManagedRestrictions = restrictionsMap[AdminManagedRestrictionsAttr].toBool(); | ||||
426 | restrictions->d->copyRequiresWriterPermission = restrictionsMap[CopyRequiresWriterPermissionAttr].toBool(); | ||||
427 | restrictions->d->domainUsersOnly = restrictionsMap[DomainUsersOnlyAttr].toBool(); | ||||
428 | restrictions->d->teamMembersOnly = restrictionsMap[TeamMembersOnlyAttr].toBool(); | ||||
429 | teamdrive->d->restrictions = restrictions; | ||||
430 | } | ||||
411 | 431 | | |||
412 | return teamdrive; | 432 | return teamdrive; | ||
413 | } | 433 | } | ||
Context not available. | |||||
453 | return d->name; | 473 | return d->name; | ||
454 | } | 474 | } | ||
455 | 475 | | |||
476 | void Teamdrive::setName(const QString &name) const | ||||
477 | { | ||||
478 | d->name = name; | ||||
479 | } | ||||
480 | | ||||
456 | QString Teamdrive::themeId() const | 481 | QString Teamdrive::themeId() const | ||
457 | { | 482 | { | ||
458 | return d->themeId; | 483 | return d->themeId; | ||
Context not available. | |||||
509 | const QVariant data = document.toVariant(); | 534 | const QVariant data = document.toVariant(); | ||
510 | const QVariantMap map = data.toMap(); | 535 | const QVariantMap map = data.toMap(); | ||
511 | if (!map.contains(KindAttr) || | 536 | if (!map.contains(KindAttr) || | ||
512 | map[KindAttr].toString() != QLatin1String("drive#teamDriveList")) { | 537 | map[KindAttr].toString() != ApiKindList) { | ||
513 | return TeamdrivesList(); | 538 | return TeamdrivesList(); | ||
514 | } | 539 | } | ||
515 | 540 | | |||
Context not available. | |||||
536 | QByteArray Teamdrive::toJSON(const TeamdrivePtr &teamdrive) | 561 | QByteArray Teamdrive::toJSON(const TeamdrivePtr &teamdrive) | ||
537 | { | 562 | { | ||
538 | QVariantMap teamDriveMap; | 563 | QVariantMap teamDriveMap; | ||
539 | teamDriveMap[IdAttr] = teamdrive->id(); | 564 | teamDriveMap[KindAttr] = ApiKind; | ||
540 | teamDriveMap[NameAttr] = teamdrive->name(); | 565 | if (!teamdrive->id().isEmpty()) { | ||
541 | teamDriveMap[ThemeIdAttr] = teamdrive->themeId(); | 566 | teamDriveMap[IdAttr] = teamdrive->id(); | ||
542 | teamDriveMap[ColorRgbAttr] = teamdrive->colorRgb(); | 567 | } | ||
543 | teamDriveMap[BackgroundImageLinkAttr] = teamdrive->backgroundImageLink(); | 568 | if (!teamdrive->name().isEmpty()) { | ||
544 | teamDriveMap[CreatedDateAttr] = teamdrive->createdDate(); | 569 | teamDriveMap[NameAttr] = teamdrive->name(); | ||
545 | 570 | } | |||
546 | QVariantMap restrictionsMap; | 571 | if (!teamdrive->themeId().isEmpty()) { | ||
547 | restrictionsMap[AdminManagedRestrictionsAttr] = teamdrive->restrictions()->adminManagedRestrictions(); | 572 | teamDriveMap[ThemeIdAttr] = teamdrive->themeId(); | ||
548 | restrictionsMap[CopyRequiresWriterPermissionAttr] = teamdrive->restrictions()->copyRequiresWriterPermission(); | 573 | } | ||
549 | restrictionsMap[DomainUsersOnlyAttr] = teamdrive->restrictions()->domainUsersOnly(); | 574 | if (!teamdrive->colorRgb().isEmpty()) { | ||
550 | restrictionsMap[TeamMembersOnlyAttr] = teamdrive->restrictions()->teamMembersOnly(); | 575 | teamDriveMap[ColorRgbAttr] = teamdrive->colorRgb(); | ||
551 | teamDriveMap[RestrictionsAttr] = restrictionsMap; | 576 | } | ||
552 | 577 | if (!teamdrive->backgroundImageLink().isEmpty()) { | |||
553 | QVariantMap backgroundImageFileMap; | 578 | teamDriveMap[BackgroundImageLinkAttr] = teamdrive->backgroundImageLink(); | ||
554 | backgroundImageFileMap[IdAttr] = teamdrive->backgroundImageFile()->id(); | 579 | } | ||
555 | backgroundImageFileMap[XCoordinateAttr] = teamdrive->backgroundImageFile()->xCoordinate(); | 580 | if (teamdrive->createdDate().isValid()) { | ||
556 | backgroundImageFileMap[YCoordinateAttr] = teamdrive->backgroundImageFile()->yCoordinate(); | 581 | teamDriveMap[CreatedDateAttr] = teamdrive->createdDate(); | ||
557 | backgroundImageFileMap[WidthAttr] = teamdrive->backgroundImageFile()->width(); | 582 | } | ||
558 | teamDriveMap[BackgroundImageFileAttr] = backgroundImageFileMap; | 583 | | ||
559 | 584 | if (teamdrive->restrictions()) { | |||
560 | QVariantMap capabilitiesMap; | 585 | QVariantMap restrictionsMap; | ||
561 | capabilitiesMap[CanAddChildrenAttr] = teamdrive->capabilities()->canAddChildren(); | 586 | restrictionsMap[AdminManagedRestrictionsAttr] = teamdrive->restrictions()->adminManagedRestrictions(); | ||
562 | capabilitiesMap[CanChangeCopyRequiresWriterPermissionRestrictionAttr] = teamdrive->capabilities()->canChangeCopyRequiresWriterPermissionRestriction(); | 587 | restrictionsMap[CopyRequiresWriterPermissionAttr] = teamdrive->restrictions()->copyRequiresWriterPermission(); | ||
563 | capabilitiesMap[CanChangeDomainUsersOnlyRestrictionAttr] = teamdrive->capabilities()->canChangeDomainUsersOnlyRestriction(); | 588 | restrictionsMap[DomainUsersOnlyAttr] = teamdrive->restrictions()->domainUsersOnly(); | ||
564 | capabilitiesMap[CanChangeTeamDriveBackgroundAttr] = teamdrive->capabilities()->canChangeTeamDriveBackground(); | 589 | restrictionsMap[TeamMembersOnlyAttr] = teamdrive->restrictions()->teamMembersOnly(); | ||
565 | capabilitiesMap[CanChangeTeamMembersOnlyRestrictionAttr] = teamdrive->capabilities()->canChangeTeamMembersOnlyRestriction(); | 590 | teamDriveMap[RestrictionsAttr] = restrictionsMap; | ||
566 | capabilitiesMap[CanCommentAttr] = teamdrive->capabilities()->canComment(); | 591 | } | ||
567 | capabilitiesMap[CanCopyAttr] = teamdrive->capabilities()->canCopy(); | 592 | | ||
568 | capabilitiesMap[CanDeleteChildrenAttr] = teamdrive->capabilities()->canDeleteChildren(); | 593 | if (teamdrive->backgroundImageFile()) { | ||
569 | capabilitiesMap[CanDeleteTeamDriveAttr] = teamdrive->capabilities()->canDeleteTeamDrive(); | 594 | QVariantMap backgroundImageFileMap; | ||
570 | capabilitiesMap[CanDownloadAttr] = teamdrive->capabilities()->canDownload(); | 595 | backgroundImageFileMap[IdAttr] = teamdrive->backgroundImageFile()->id(); | ||
571 | capabilitiesMap[CanEditAttr] = teamdrive->capabilities()->canEdit(); | 596 | backgroundImageFileMap[XCoordinateAttr] = teamdrive->backgroundImageFile()->xCoordinate(); | ||
572 | capabilitiesMap[CanListChildrenAttr] = teamdrive->capabilities()->canListChildren(); | 597 | backgroundImageFileMap[YCoordinateAttr] = teamdrive->backgroundImageFile()->yCoordinate(); | ||
573 | capabilitiesMap[CanManageMembersAttr] = teamdrive->capabilities()->canManageMembers(); | 598 | backgroundImageFileMap[WidthAttr] = teamdrive->backgroundImageFile()->width(); | ||
574 | capabilitiesMap[CanReadRevisionsAttr] = teamdrive->capabilities()->canReadRevisions(); | 599 | teamDriveMap[BackgroundImageFileAttr] = backgroundImageFileMap; | ||
575 | capabilitiesMap[CanRenameAttr] = teamdrive->capabilities()->canRename(); | 600 | } | ||
576 | capabilitiesMap[CanRenameTeamDriveAttr] = teamdrive->capabilities()->canRenameTeamDrive(); | 601 | | ||
577 | capabilitiesMap[CanShareAttr] = teamdrive->capabilities()->canShare(); | 602 | if (teamdrive->capabilities()) { | ||
578 | capabilitiesMap[CanTrashChildrenAttr] = teamdrive->capabilities()->canTrashChildren(); | 603 | QVariantMap capabilitiesMap; | ||
579 | teamDriveMap[CapabilitiesAttr] = capabilitiesMap; | 604 | capabilitiesMap[CanAddChildrenAttr] = teamdrive->capabilities()->canAddChildren(); | ||
605 | capabilitiesMap[CanChangeCopyRequiresWriterPermissionRestrictionAttr] = teamdrive->capabilities()->canChangeCopyRequiresWriterPermissionRestriction(); | ||||
606 | capabilitiesMap[CanChangeDomainUsersOnlyRestrictionAttr] = teamdrive->capabilities()->canChangeDomainUsersOnlyRestriction(); | ||||
607 | capabilitiesMap[CanChangeTeamDriveBackgroundAttr] = teamdrive->capabilities()->canChangeTeamDriveBackground(); | ||||
608 | capabilitiesMap[CanChangeTeamMembersOnlyRestrictionAttr] = teamdrive->capabilities()->canChangeTeamMembersOnlyRestriction(); | ||||
609 | capabilitiesMap[CanCommentAttr] = teamdrive->capabilities()->canComment(); | ||||
610 | capabilitiesMap[CanCopyAttr] = teamdrive->capabilities()->canCopy(); | ||||
611 | capabilitiesMap[CanDeleteChildrenAttr] = teamdrive->capabilities()->canDeleteChildren(); | ||||
612 | capabilitiesMap[CanDeleteTeamDriveAttr] = teamdrive->capabilities()->canDeleteTeamDrive(); | ||||
613 | capabilitiesMap[CanDownloadAttr] = teamdrive->capabilities()->canDownload(); | ||||
614 | capabilitiesMap[CanEditAttr] = teamdrive->capabilities()->canEdit(); | ||||
615 | capabilitiesMap[CanListChildrenAttr] = teamdrive->capabilities()->canListChildren(); | ||||
616 | capabilitiesMap[CanManageMembersAttr] = teamdrive->capabilities()->canManageMembers(); | ||||
617 | capabilitiesMap[CanReadRevisionsAttr] = teamdrive->capabilities()->canReadRevisions(); | ||||
618 | capabilitiesMap[CanRenameAttr] = teamdrive->capabilities()->canRename(); | ||||
619 | capabilitiesMap[CanRenameTeamDriveAttr] = teamdrive->capabilities()->canRenameTeamDrive(); | ||||
620 | capabilitiesMap[CanShareAttr] = teamdrive->capabilities()->canShare(); | ||||
621 | capabilitiesMap[CanTrashChildrenAttr] = teamdrive->capabilities()->canTrashChildren(); | ||||
622 | teamDriveMap[CapabilitiesAttr] = capabilitiesMap; | ||||
623 | } | ||||
580 | 624 | | |||
581 | QJsonDocument document = QJsonDocument::fromVariant(teamDriveMap); | 625 | QJsonDocument document = QJsonDocument::fromVariant(teamDriveMap); | ||
582 | return document.toJson(QJsonDocument::Compact); | 626 | return document.toJson(QJsonDocument::Compact); | ||
Context not available. |