ServerRepo ServerRepo::fromJSON(const json_t *json, json_error_t */* error */) { ServerRepo repo; repo.id = getStringFromJson(json, "id"); repo.name = getStringFromJson(json, "name"); repo.description = getStringFromJson(json, "desc"); repo.mtime = json_integer_value(json_object_get(json, "mtime")); repo.size = json_integer_value(json_object_get(json, "size")); repo.root = getStringFromJson(json, "root"); repo.encrypted = json_is_true(json_object_get(json, "encrypted")); repo.type = getStringFromJson(json, "type"); repo.permission = getStringFromJson(json, "permission"); repo.readonly = (repo.permission == "r") ? true : false; repo._virtual = json_is_true(json_object_get(json, "virtual")); if (repo.type == "grepo") { repo.owner = getStringFromJson(json, "share_from"); repo.group_name = getStringFromJson(json, "owner"); repo.group_id = json_integer_value(json_object_get(json, "groupid")); } else { repo.owner = getStringFromJson(json, "owner"); repo.group_name = QString(); repo.group_id = 0; } return repo; }
StarredFile StarredFile::fromJSON(const json_t *json, json_error_t */* error */) { StarredFile file; file.repo_id = getStringFromJson(json, "repo_id"); if (file.repo_id.isEmpty()) { file.repo_id = getStringFromJson(json, "repo"); } file.repo_name = getStringFromJson(json, "repo_name"); file.path = getStringFromJson(json, "path"); file.mtime = json_integer_value(json_object_get(json, "mtime")); file.size = json_integer_value(json_object_get(json, "size")); return file; }
SeafEvent SeafEvent::fromJSON(const json_t *json, json_error_t */* error */) { SeafEvent event; event.author = getStringFromJson(json, "author"); if (event.author.isEmpty()) { event.author = "anonymous"; event.anonymous = true; } else { event.anonymous = false; } event.nick = getStringFromJson(json, "nick"); if (event.nick.isEmpty()) { event.nick = "anonymous"; } event.repo_id = getStringFromJson(json, "repo_id"); event.repo_name = getStringFromJson(json, "repo_name"); event.commit_id = getStringFromJson(json, "commit_id"); event.etype = getStringFromJson(json, "etype"); event.desc = getStringFromJson(json, "desc"); event.timestamp = json_integer_value(json_object_get(json, "time")); if (event.etype == kEventTypeRepoCreate) { event.desc = QObject::tr("Created library \"%1\"").arg(event.repo_name); } else if (event.etype == kEventTypeRepoDelete) { event.desc = QObject::tr("Deleted library \"%1\"").arg(event.repo_name); } event.desc = translateCommitDesc(event.desc); return event; }