62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
|
// @flow
|
||
|
import * as ACTIONS from 'constants/action_types';
|
||
|
import { COPYRIGHT_ISSUES, OTHER_LEGAL_ISSUES } from 'constants/report_content';
|
||
|
|
||
|
type Dispatch = (action: any) => any;
|
||
|
|
||
|
export const doReportContent = (category: string, params: string) => (dispatch: Dispatch) => {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_STARTED,
|
||
|
});
|
||
|
|
||
|
let REPORT_URL;
|
||
|
switch (category) {
|
||
|
case COPYRIGHT_ISSUES:
|
||
|
REPORT_URL = 'https://reports.lbry.com/copyright_issue/new';
|
||
|
break;
|
||
|
case OTHER_LEGAL_ISSUES:
|
||
|
REPORT_URL = 'https://reports.lbry.com/other_legal_issue/new';
|
||
|
break;
|
||
|
default:
|
||
|
REPORT_URL = 'https://reports.lbry.com/common/new';
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
fetch(`${REPORT_URL}?${params}`, { method: 'POST' })
|
||
|
.then((response) => {
|
||
|
if (response) {
|
||
|
response
|
||
|
.json()
|
||
|
.then((json) => {
|
||
|
if (json.success) {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_COMPLETED,
|
||
|
});
|
||
|
} else {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_FAILED,
|
||
|
data: json.error,
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
.catch((err) => {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_FAILED,
|
||
|
data: 'Server error: Invalid response',
|
||
|
});
|
||
|
});
|
||
|
} else {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_FAILED,
|
||
|
data: 'Server error: No response',
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
.catch((err) => {
|
||
|
dispatch({
|
||
|
type: ACTIONS.REPORT_CONTENT_FAILED,
|
||
|
data: err,
|
||
|
});
|
||
|
});
|
||
|
};
|