Merge remote-tracking branch 'origin/master' into prendota/plugin-manager-new-protocol
[idea/community.git] / platform / platform-impl / src / com / intellij / ide / plugins / marketplace / PluginRepositoryObjects.kt
similarity index 64%
rename from platform/platform-impl/src/com/intellij/openapi/updateSettings/PluginRepositoryObjects.kt
rename to platform/platform-impl/src/com/intellij/ide/plugins/marketplace/PluginRepositoryObjects.kt
index d181d9a7e6992dfad22da9586ea0b0abb5a19ea5..65396d2054b9cab1f01a5c9a97ebf41bb81339c8 100644 (file)
@@ -1,10 +1,12 @@
-// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.intellij.openapi.updateSettings
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package com.intellij.ide.plugins.marketplace
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties
 import com.fasterxml.jackson.annotation.JsonProperty
 import com.intellij.ide.plugins.PluginNode
 
+const val PAID_TAG = "Paid"
+
 /**
  * Object from Search Service for getting compatible updates for IDE.
  * [externalUpdateId] update ID from Plugin Repository database.
@@ -55,3 +57,31 @@ data class IntellijUpdateMetadata(
     return pluginNode
   }
 }
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+internal class MarketplaceSearchPluginData(
+  @get:JsonProperty("xmlId")
+  val id: String = "",
+  var isPaid: Boolean = false,
+  val rating: String = "",
+  val name: String = "",
+  val vendor: String = "",
+  @get:JsonProperty("updateId")
+  val externalUpdateId: String? = null,
+  @get:JsonProperty("id")
+  val externalPluginId: String? = null,
+  val downloads: String = ""
+) {
+  fun toPluginNode(): PluginNode {
+    val pluginNode = PluginNode()
+    pluginNode.setId(id)
+    pluginNode.name = name
+    pluginNode.rating = rating
+    pluginNode.downloads = downloads
+    pluginNode.vendor = vendor
+    pluginNode.externalPluginId = externalPluginId
+    pluginNode.externalUpdateId = externalUpdateId
+    if (isPaid) pluginNode.tags = listOf(PAID_TAG)
+    return pluginNode
+  }
+}
\ No newline at end of file