MCPcopy Index your code
hub / github.com/chartbrew/chartbrew / MongoQueryBuilder

Function MongoQueryBuilder

client/src/sources/mongodb/mongodb-builder.jsx:46–665  ·  view source on GitHub ↗
(props)

Source from the content-addressed store, hash-verified

44 MongoDB query builder with variable support
45*/
46function MongoQueryBuilder(props) {
47 const {
48 onChangeRequest, onSave, dataRequest, connection, onDelete,
49 } = props;
50
51 const [savedQuery, setSavedQuery] = useState(null);
52 const [saveQueryModal, setSaveQueryModal] = useState(false);
53 const [savedQuerySummary, setSavedQuerySummary] = useState("");
54 const [updatingSavedQuery, setUpdatingSavedQuery] = useState(false);
55 const [savingQuery, setSavingQuery] = useState(false);
56 const [, setTestSuccess] = useState(false);
57 const [testError, setTestError] = useState("");
58 const [testingQuery, setTestingQuery] = useState(false);
59 const [result, setResult] = useState("");
60 const [mongoRequest, setMongoRequest] = useState({
61 query: "collection('your_collection').find({status: {{status}}}).limit(100)",
62 });
63 const [invalidateCache, setInvalidateCache] = useState(false);
64 const [saveLoading, setSaveLoading] = useState(false);
65 const [activeResultsTab, setActiveResultsTab] = useState("table");
66 const [showTransform, setShowTransform] = useState(false);
67 const [variableSettings, setVariableSettings] = useState(null);
68 const [variableLoading, setVariableLoading] = useState(false);
69
70 const { isDark } = useTheme();
71 const params = useParams();
72 const dispatch = useDispatch();
73 const stateDrs = useSelector((state) => selectDataRequests(state, params.datasetId));
74 const team = useSelector(selectTeam);
75
76 useEffect(() => {
77 if (dataRequest) {
78 const newRequest = { ...mongoRequest, ...dataRequest };
79 if (!dataRequest.query) newRequest.query = mongoRequest.query;
80 setMongoRequest(newRequest);
81 }
82 }, []);
83
84 useEffect(() => {
85 onChangeRequest(mongoRequest);
86 }, [mongoRequest]);
87
88 useEffect(() => {
89 if (stateDrs && stateDrs.length > 0) {
90 const selectedResponse = stateDrs.find((o) => o.id === mongoRequest.id);
91 if (selectedResponse?.response) {
92 setResult(JSON.stringify(selectedResponse.response, null, 2));
93 }
94 }
95 }, [stateDrs, mongoRequest]);
96
97 const _onSaveQueryConfirmation = () => {
98 setSaveQueryModal(true);
99 };
100
101 const _onSaveQuery = () => {
102 setSavingQuery(true);
103 dispatch(createSavedQuery({

Callers

nothing calls this directly

Calls 5

useThemeFunction · 0.90
selectDataRequestsFunction · 0.90
_onSavePressedFunction · 0.70
_onChangeQueryFunction · 0.70
_onTestFunction · 0.70

Tested by

no test coverage detected