💽 Raw import to mongo WIP

This commit is contained in:
2021-06-02 09:02:07 -07:00
parent 69f79c1ece
commit 9d27a9dd95
10 changed files with 16397 additions and 10 deletions

View File

@@ -8,12 +8,13 @@ import { io } from "socket.io-client";
import { import {
IMS_SOCKET_DATA_FETCHED, IMS_SOCKET_DATA_FETCHED,
IMS_SOCKET_CONNECTION_CONNECTED, IMS_SOCKET_CONNECTION_CONNECTED,
IMS_RAW_IMPORT_SUCCESSFUL,
} from "../constants/action-types"; } from "../constants/action-types";
export async function walkFolder(path: string): Promise<Array<IFolderData>> { export async function walkFolder(path: string): Promise<Array<IFolderData>> {
return axios return axios
.request<Array<IFolderData>>({ .request<Array<IFolderData>>({
url: API_BASE_URI + "walkFolder", url: "http://localhost:3000/api/import/walkFolders",
method: "POST", method: "POST",
data: { data: {
basePathToWalk: path, basePathToWalk: path,
@@ -23,8 +24,24 @@ export async function walkFolder(path: string): Promise<Array<IFolderData>> {
.then((response) => { .then((response) => {
const { data } = response; const { data } = response;
return data; return data;
}); })
.catch((error) => error);
} }
export const rawImportToDB = (payload: any) => async (dispatch) => {
return axios({
method: "POST",
url: "http://localhost:3000/api/import/rawImportToDb",
data: {
payload,
},
}).then((result) => {
dispatch({
type: IMS_RAW_IMPORT_SUCCESSFUL,
rawImportCompleted: result,
});
return result;
});
};
export const fetchComicBookMetadata = (options) => async (dispatch) => { export const fetchComicBookMetadata = (options) => async (dispatch) => {
const extractionOptions = { const extractionOptions = {
@@ -64,10 +81,27 @@ export const fetchComicBookMetadata = (options) => async (dispatch) => {
}); });
socket.on("comicBookCoverMetadata", (data: IExtractedComicBookCoverFile) => { socket.on("comicBookCoverMetadata", (data: IExtractedComicBookCoverFile) => {
console.log(data);
dispatch({ dispatch({
type: IMS_SOCKET_DATA_FETCHED, type: IMS_SOCKET_DATA_FETCHED,
data, data,
dataTransferred: true, dataTransferred: true,
}); });
dispatch(
rawImportToDB({
importStatus: {
isImported: true,
tagged: false,
matchedResult: {
score: "0",
},
},
rawFileDetails: data,
}),
);
});
socket.on("comicBookCoverMetadataSent", (status) => {
console.log(status);
}); });
}; };

16344
src/client/assets/scss/App.css Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -14,7 +14,6 @@ $border-color: red;
background-color: $bg-color; background-color: $bg-color;
} }
} }
.navbar-item.is-mega { .navbar-item.is-mega {
position: static; position: static;

View File

@@ -20,9 +20,9 @@ class Card extends React.Component<IProps, IState> {
public drawCoverCard = ( public drawCoverCard = (
metadata: IExtractedComicBookCoverFile[], metadata: IExtractedComicBookCoverFile[],
): JSX.Element[] => { ): JSX.Element[] => {
return map(metadata, (item: IExtractedComicBookCoverFile) => { return map(metadata, (item: IExtractedComicBookCoverFile, idx: number) => {
return ( return (
<div className="card"> <div className="card" key={idx}>
<div className="card-image"> <div className="card-image">
<figure className="image"> <figure className="image">
<img <img

View File

@@ -102,7 +102,7 @@ class Import extends React.Component<IProps, IState> {
} }
function mapStateToProps(state: IState) { function mapStateToProps(state: IState) {
console.log("STATE", state); console.log("state", state);
return { return {
// matches: state.comicInfo.searchResults, // matches: state.comicInfo.searchResults,
garam: state.fileOps.comicBookMetadata, garam: state.fileOps.comicBookMetadata,

View File

@@ -3,7 +3,7 @@ import { useSelector } from "react-redux";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
const Navbar: React.FunctionComponent = (props) => { const Navbar: React.FunctionComponent = (props) => {
const socketConnected = useSelector((state) => state.fileOps); const socketConnection = useSelector((state) => state.fileOps);
return ( return (
<nav className="navbar "> <nav className="navbar ">
@@ -189,7 +189,7 @@ const Navbar: React.FunctionComponent = (props) => {
<div className="navbar-item"> <div className="navbar-item">
<div className="field is-grouped"> <div className="field is-grouped">
<p className="control"> <p className="control">
{socketConnected.socketConnected ? ( {socketConnection.socketConnected ? (
<span className="icon is-small has-text-success"> <span className="icon is-small has-text-success">
<i className="fas fa-plug"></i> <i className="fas fa-plug"></i>
</span> </span>

View File

@@ -10,3 +10,5 @@ export const IMS_SOCKET_CONNECTION_CONNECTED =
export const IMS_SOCKET_CONNECTION_DISCONNECTED = export const IMS_SOCKET_CONNECTION_DISCONNECTED =
"IMS_SOCKET_CONNECTION_DISCONNECTED"; "IMS_SOCKET_CONNECTION_DISCONNECTED";
export const IMS_SOCKET_ERROR = "IMS_SOCKET_ERROR"; export const IMS_SOCKET_ERROR = "IMS_SOCKET_ERROR";
export const IMS_RAW_IMPORT_SUCCESSFUL = "IMS_RAW_IMPORT_SUCCESSFUL";

View File

@@ -3,11 +3,13 @@ import {
IMS_SOCKET_CONNECTION_DISCONNECTED, IMS_SOCKET_CONNECTION_DISCONNECTED,
IMS_SOCKET_DATA_FETCHED, IMS_SOCKET_DATA_FETCHED,
IMS_SOCKET_ERROR, IMS_SOCKET_ERROR,
IMS_RAW_IMPORT_SUCCESSFUL,
} from "../constants/action-types"; } from "../constants/action-types";
const initialState = { const initialState = {
dataTransferred: false, dataTransferred: false,
comicBookMetadata: [], comicBookMetadata: [],
socketConnected: false, socketConnected: false,
rawImportCompleted: {},
}; };
function fileOpsReducer(state = initialState, action) { function fileOpsReducer(state = initialState, action) {
@@ -15,7 +17,7 @@ function fileOpsReducer(state = initialState, action) {
case IMS_SOCKET_DATA_FETCHED: case IMS_SOCKET_DATA_FETCHED:
return { return {
...state, ...state,
comicBookMetadata: [...state.comicBookMetadata, action.data.data], comicBookMetadata: [...state.comicBookMetadata, action.data],
dataTransferred: true, dataTransferred: true,
}; };
@@ -24,6 +26,11 @@ function fileOpsReducer(state = initialState, action) {
...state, ...state,
socketConnected: action.socketConnected, socketConnected: action.socketConnected,
}; };
case IMS_RAW_IMPORT_SUCCESSFUL:
return {
...state,
rawImportCompleted: action.rawImportCompleted,
};
default: default:
return state; return state;
} }

View File

@@ -57,7 +57,7 @@ module.exports = {
extensions: ["*", ".ts", ".tsx", ".js", ".jsx", ".json"], extensions: ["*", ".ts", ".tsx", ".js", ".jsx", ".json"],
}, },
devServer: { devServer: {
port: 3000, port: 3050,
open: true, open: true,
hot: true, hot: true,
proxy: { proxy: {