def delete(self, request, team_name, share_id, *args, **kwargs): """ 放弃插件分享 --- parameter: - name: team_name description: 团队名 required: true type: string paramType: path - name: share_id description: 分享记录ID required: true type: string paramType: path """ try: share_record = share_service.get_service_share_record_by_ID( ID=share_id, team_name=team_name) if not share_record: result = general_message(404, "share record not found", "分享流程不存在") return Response(result, status=404) if share_record.is_success or share_record.step >= 3: result = general_message(400, "share record is complete", "分享流程已经完成,无法放弃") return Response(result, status=404) share_plugin = share_repo.get_share_plugin(share_record.group_id) if share_plugin and share_plugin.is_complete: share_record.delete() PluginShareRecordEvent.objects.filter( record_id=share_record.ID).delete() share_plugin.delete() return Response(general_message(200, msg='', msg_show=''), 200) PluginShareRecordEvent.objects.filter( record_id=share_record.ID).delete() share_record.delete() result = general_message(200, "delete success", "放弃成功") return Response(result, status=200) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=500)
def get(self, request, team_name, share_id, *args, **kwargs): """ 查询分享的插件信息 --- parameter: - name: team_name description: 团队名 required: true type: string paramType: path - name: share_id description: 分享记录ID required: true type: string paramType: path """ team_id = self.team.tenant_id try: share_record = share_service.get_service_share_record_by_ID( ID=share_id, team_name=team_name) if not share_record: result = general_message(404, "share record not found", "分享流程不存在,请退出重试") return Response(result, status=404) if share_record.is_success or share_record.step >= 3: result = general_message(400, "share record is complete", "分享流程已经完成,请重新进行分享") return Response(result, status=400) share_plugin_info = dict() share_plugin = share_repo.get_share_plugin(share_record.group_id) if share_plugin: plugin_id = share_plugin.plugin_id share_plugin_info = share_plugin.to_dict() share_plugin_info["is_shared"] = True share_plugin_info.pop("update_time") else: plugin = plugin_repo.get_plugin_by_plugin_id( team_id, share_record.group_id) if not plugin: result = general_message(404, msg="plugin not exist", msg_show="插件不存在") return Response(result, status=400) plugin_id = plugin.plugin_id share_plugin_info["category"] = plugin.category share_plugin_info["plugin_key"] = make_uuid() share_plugin_info["plugin_id"] = plugin_id share_plugin_info["plugin_name"] = plugin.plugin_alias share_plugin_info["version"] = "1.0" share_plugin_info["desc"] = "This is a default description." share_plugin_info["scope"] = "team" share_plugin_info["share_id"] = share_record.group_id share_plugin_info["pic"] = "" share_plugin_info["share_user"] = str(self.user.user_id) share_plugin_info["share_team"] = team_name share_plugin_info["is_shared"] = False plugin_version = plugin_svc.get_tenant_plugin_newest_versions( self.response_region, self.tenant, plugin_id) share_plugin_info["build_version"] = plugin_version[ 0].build_version config_groups = [] for group in plugin_repo.get_plugin_config_groups( plugin_id, plugin_version[0].build_version): group_map = group.to_dict() items = plugin_svc.get_config_items_by_id_metadata_and_version( group.plugin_id, group.build_version, group.service_meta_type) config_items = [] for item in items: config_items.append(item.to_dict()) group_map['config_items'] = config_items config_groups.append(group_map) share_plugin_info["config_groups"] = config_groups return Response( general_message(200, "", "", bean={'share_plugin_info': share_plugin_info}), 200) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=500)