chromium/google_apis/drive/drive_api_parser.cc

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifdef UNSAFE_BUFFERS_BUILD
// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
#pragma allow_unsafe_buffers
#endif

#include "google_apis/drive/drive_api_parser.h"

#include <stddef.h>

#include <memory>
#include <string_view>

#include "base/json/json_value_converter.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "google_apis/common/parser_util.h"
#include "google_apis/common/time_util.h"

namespace google_apis {

namespace {

const int64_t kUnsetFileSize =;

bool CreateFileResourceFromValue(const base::Value* value,
                                 std::unique_ptr<FileResource>* file) {}

bool CreateTeamDriveResourceFromValue(
    const base::Value* value,
    std::unique_ptr<TeamDriveResource>* file) {}

// Converts |url_string| to |result|.  Always returns true to be used
// for JSONValueConverter::RegisterCustomField method.
// TODO(mukai): make it return false in case of invalid |url_string|.
bool GetGURLFromString(std::string_view url_string, GURL* result) {}

// Converts |value| to |result|.
bool GetParentsFromValue(const base::Value* value,
                         std::vector<ParentReference>* result) {}

// Converts |value| to |result|. The key of |value| is app_id, and its value
// is URL to open the resource on the web app.
bool GetOpenWithLinksFromDictionaryValue(
    const base::Value* value,
    std::vector<FileResource::OpenWithLink>* result) {}

// Drive v2 API JSON names.

// Definition order follows the order of documentation in
// https://developers.google.com/drive/v2/reference/

// Common
const char kLargestChangeId[] =;
const char kNextPageToken[] =;

// About Resource
// https://developers.google.com/drive/v2/reference/about
const char kAboutKind[] =;
const char kQuotaBytesTotal[] =;
const char kQuotaBytesUsedAggregate[] =;
const char kRootFolderId[] =;

// Parent Resource
// https://developers.google.com/drive/v2/reference/parents
const char kParentReferenceKind[] =;

// File Resource
// https://developers.google.com/drive/v2/reference/files
const char kFileKind[] =;
const char kTitle[] =;
const char kMimeType[] =;
const char kCreatedDate[] =;
const char kModificationDate[] =;
const char kModifiedDate[] =;
const char kModifiedByMeDate[] =;
const char kLastViewedByMeDate[] =;
const char kSharedWithMeDate[] =;
const char kMd5Checksum[] =;
const char kFileSize[] =;
const char kAlternateLink[] =;
const char kParents[] =;
const char kOpenWithLinks[] =;
const char kLabels[] =;
const char kImageMediaMetadata[] =;
const char kShared[] =;
// These 5 flags are defined under |labels|.
const char kLabelTrashed[] =;
const char kLabelStarred[] =;
// These 3 flags are defined under |imageMediaMetadata|.
const char kImageMediaMetadataWidth[] =;
const char kImageMediaMetadataHeight[] =;
const char kImageMediaMetadataRotation[] =;
// URL to the share dialog UI, which is provided only in v2internal.
const char kShareLink[] =;

const char kDriveFolderMimeType[] =;

// Team Drive
const char kTeamDriveKind[] =;
const char kTeamDriveListKind[] =;
const char kCapabilities[] =;

// Team Drive capabilities.
// See "capabilities" in
// https://developers.google.com/drive/v2/reference/teamdrives#resource.
const char kCanAddChildren[] =;
const char kCanComment[] =;
const char kCanCopy[] =;
const char kCanDeleteTeamDrive[] =;
const char kCanDownload[] =;
const char kCanEdit[] =;
const char kCanListChildren[] =;
const char kCanManageMembers[] =;
const char kCanReadRevisions[] =;
const char kCanRemoveChildren[] =;
const char kCanRename[] =;
const char kCanRenameTeamDrive[] =;
const char kCanShare[] =;

// Files List
// https://developers.google.com/drive/v2/reference/files/list
const char kFileListKind[] =;
const char kNextLink[] =;

// File Resource capabilities.
// See "capabilities" in
// https://developers.google.com/drive/v2/reference/files#resource.
const char kCanChangeRestrictedDownload[] =;
const char kCanDelete[] =;
const char kCanMoveItemIntoTeamDrive[] =;
const char kCanMoveTeamDriveItem[] =;
const char kCanReadTeamDrive[] =;
const char kCanTrash[] =;
const char kCanUntrash[] =;

// Change Resource
// https://developers.google.com/drive/v2/reference/changes
const char kChangeKind[] =;
const char kType[] =;
const char kFileId[] =;
const char kDeleted[] =;
const char kFile[] =;
const char kTeamDrive[] =;
const char kTeamDriveId[] =;
const char kStartPageToken[] =;
const char kNewStartPageToken[] =;

// Changes List
// https://developers.google.com/drive/v2/reference/changes/list
const char kChangeListKind[] =;

// Maps category name to enum ChangeType.
struct ChangeTypeMap {};

constexpr ChangeTypeMap kChangeTypeMap[] =;

}  // namespace

////////////////////////////////////////////////////////////////////////////////
// AboutResource implementation

AboutResource::AboutResource()
    :{}

AboutResource::~AboutResource() {}

// static
std::unique_ptr<AboutResource> AboutResource::CreateFrom(
    const base::Value& value) {}

// static
void AboutResource::RegisterJSONConverter(
    base::JSONValueConverter<AboutResource>* converter) {}

bool AboutResource::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// TeamDriveCapabilities implementation

TeamDriveCapabilities::TeamDriveCapabilities()
    :{}

TeamDriveCapabilities::TeamDriveCapabilities(const TeamDriveCapabilities& src) =
    default;

TeamDriveCapabilities::~TeamDriveCapabilities() = default;

// static
void TeamDriveCapabilities::RegisterJSONConverter(
    base::JSONValueConverter<TeamDriveCapabilities>* converter) {}

////////////////////////////////////////////////////////////////////////////////
// TeamDriveResource implementation

TeamDriveResource::TeamDriveResource() {}

TeamDriveResource::~TeamDriveResource() {}

// static
std::unique_ptr<TeamDriveResource> TeamDriveResource::CreateFrom(
    const base::Value& value) {}

// static
void TeamDriveResource::RegisterJSONConverter(
    base::JSONValueConverter<TeamDriveResource>* converter) {}

bool TeamDriveResource::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// TeamDriveList implementation

TeamDriveList::TeamDriveList() {}

TeamDriveList::~TeamDriveList() {}

// static
void TeamDriveList::RegisterJSONConverter(
    base::JSONValueConverter<TeamDriveList>* converter) {}

// static
bool TeamDriveList::HasTeamDriveListKind(const base::Value& value) {}

// static
std::unique_ptr<TeamDriveList> TeamDriveList::CreateFrom(
    const base::Value& value) {}

bool TeamDriveList::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// ParentReference implementation

ParentReference::ParentReference() {}

ParentReference::~ParentReference() {}

// static
void ParentReference::RegisterJSONConverter(
    base::JSONValueConverter<ParentReference>* converter) {}

// static
std::unique_ptr<ParentReference> ParentReference::CreateFrom(
    const base::Value& value) {}

bool ParentReference::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// FileResourceCapabilities implementation

FileResourceCapabilities::FileResourceCapabilities()
    :{}

FileResourceCapabilities::FileResourceCapabilities(
    const FileResourceCapabilities& src) = default;

FileResourceCapabilities::~FileResourceCapabilities() {}

// static
void FileResourceCapabilities::RegisterJSONConverter(
    base::JSONValueConverter<FileResourceCapabilities>* converter) {}

////////////////////////////////////////////////////////////////////////////////
// FileResource implementation

FileResource::FileResource() :{}

FileResource::FileResource(const FileResource& other) = default;

FileResource::~FileResource() {}

// static
void FileResource::RegisterJSONConverter(
    base::JSONValueConverter<FileResource>* converter) {}

// static
std::unique_ptr<FileResource> FileResource::CreateFrom(
    const base::Value& value) {}

bool FileResource::IsDirectory() const {}

bool FileResource::IsHostedDocument() const {}

bool FileResource::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// FileList implementation

FileList::FileList() {}

FileList::~FileList() {}

// static
void FileList::RegisterJSONConverter(
    base::JSONValueConverter<FileList>* converter) {}

// static
bool FileList::HasFileListKind(const base::Value& value) {}

// static
std::unique_ptr<FileList> FileList::CreateFrom(const base::Value& value) {}

bool FileList::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// ChangeResource implementation

ChangeResource::ChangeResource()
    :{}

ChangeResource::~ChangeResource() {}

// static
void ChangeResource::RegisterJSONConverter(
    base::JSONValueConverter<ChangeResource>* converter) {}

// static
std::unique_ptr<ChangeResource> ChangeResource::CreateFrom(
    const base::Value& value) {}

bool ChangeResource::Parse(const base::Value& value) {}

// static
bool ChangeResource::GetType(std::string_view type_name,
                             ChangeResource::ChangeType* result) {}

////////////////////////////////////////////////////////////////////////////////
// ChangeList implementation

ChangeList::ChangeList() = default;

ChangeList::~ChangeList() = default;

// static
void ChangeList::RegisterJSONConverter(
    base::JSONValueConverter<ChangeList>* converter) {}

// static
bool ChangeList::HasChangeListKind(const base::Value& value) {}

// static
std::unique_ptr<ChangeList> ChangeList::CreateFrom(const base::Value& value) {}

bool ChangeList::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// FileLabels implementation

FileLabels::FileLabels() :{}

FileLabels::~FileLabels() {}

// static
void FileLabels::RegisterJSONConverter(
    base::JSONValueConverter<FileLabels>* converter) {}

// static
std::unique_ptr<FileLabels> FileLabels::CreateFrom(const base::Value& value) {}

bool FileLabels::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// ImageMediaMetadata implementation

ImageMediaMetadata::ImageMediaMetadata()
    :{}

ImageMediaMetadata::~ImageMediaMetadata() {}

// static
void ImageMediaMetadata::RegisterJSONConverter(
    base::JSONValueConverter<ImageMediaMetadata>* converter) {}

// static
std::unique_ptr<ImageMediaMetadata> ImageMediaMetadata::CreateFrom(
    const base::Value& value) {}

bool ImageMediaMetadata::Parse(const base::Value& value) {}

////////////////////////////////////////////////////////////////////////////////
// StartPageToken implementation

StartPageToken::StartPageToken() = default;

StartPageToken::~StartPageToken() = default;

// static
void StartPageToken::RegisterJSONConverter(
    base::JSONValueConverter<StartPageToken>* converter) {}

// static
std::unique_ptr<StartPageToken> StartPageToken::CreateFrom(
    const base::Value& value) {}

bool StartPageToken::Parse(const base::Value& value) {}

}  // namespace google_apis