roy_sanu
asked on
Regarding issue on passing endpoint into angularjs
Hello experts,
I have an endpoint API below which checks the inappropriate content in a video
I want to pass this above endpoint API mark below space of my comments through angularjs application which can verify the uploaded file with the inappropriate content in it.let us know through the snippet of code… Pls find my code below
I have an endpoint API below which checks the inappropriate content in a video
POST 'https://api.sightengine.com/1.0/moderation.json'
'api_user={api_user}' \
'api_secret={api_secret}' \
'media=@/path/to/local/file.jpg'
I want to pass this above endpoint API mark below space of my comments through angularjs application which can verify the uploaded file with the inappropriate content in it.let us know through the snippet of code… Pls find my code below
export class VideoUploadService {
public videup: VideoUpload;
constructor(private http: Http, private router: Router, @Inject('videoUploadEndPoint') private videoUploadUrl) { }
requestUrl: string;
responseData: any;
//handleError: any;
postVideoData(file: any, title: any, videoCatgy: any, country: any, language: any, starttime: any, endtime: any, duration: any) {
var formData: any = new FormData();
formData.append("uploadFileName", file, file.name);//alert(file.name);
// verifying the video content with Sightengine endpoint from here onwards. Let us
know..
formData.append('videoTitle', title);
formData.append('videoCatgy', videoCatgy);
formData.append('userName', 'testuser');
formData.append('startTmName', starttime);
formData.append('endTmName', endtime);
formData.append('durClpName', duration);
var returnReponse = new Promise((resolve, reject) => {
this.http.post(this.videoUploadUrl + 'videoclip/', formData, {
// headers: headers
}).subscribe(
res => {//console.log(res.json());
this.responseData = res.json();
resolve(this.responseData);
this.router.navigate(['']);
},
error => {
this.router.navigate(['']);
reject(error);
}
);
});
}
private extractData(res: Response) {
let body = res.json();
return body || {};
}
private handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(errMsg);
}
}
I am not sure what the question is - can you elaborate?
ASKER
Thank you Julian for your response.
we have an application which uploads videos but our idea is to verify the videos content using
third party tool such as sightengine(https://sightengine.com/) which has API which verify the inappropriate content if the video has.
The third party product has an api which verify the local videos and streams from the nodejs
POST 'https://api.sightengine.com/1.0/moderation.json'
'api_user={api_user}' \
'api_secret={api_secret}' \
'media=@/path/to/local/fil e.jpg'
My question is it possible to pass this end point through angularjs application instead of nodejs . I have an upload function above. let us know your idea
Thank you so much for your response...
we have an application which uploads videos but our idea is to verify the videos content using
third party tool such as sightengine(https://sightengine.com/) which has API which verify the inappropriate content if the video has.
The third party product has an api which verify the local videos and streams from the nodejs
POST 'https://api.sightengine.com/1.0/moderation.json'
'api_user={api_user}' \
'api_secret={api_secret}' \
'media=@/path/to/local/fil
My question is it possible to pass this end point through angularjs application instead of nodejs . I have an upload function above. let us know your idea
Thank you so much for your response...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
We deploy all the videos in AWS S3 bucket
The process would be something like I guess
1. Upload videos
2. Server saves videos in pending location
2. Server initiates call to SE
3. Server receives response from SE
4. Server approved videos will go to the S3 bucket.
The process would be something like I guess
1. Upload videos
2. Server saves videos in pending location
2. Server initiates call to SE
3. Server receives response from SE
4. Server approved videos will go to the S3 bucket.
Fine, but that is all server side - still need to understand why you need to call SE from Angular. Surely Angular's involvement is in getting the Video from the user and uploading it - the rest should be on the server side.
Have you looked at Amazon Lambda functions - where you can write code to act on an event - like a video upload - that automatically does whatever you need it to?
Have you looked at Amazon Lambda functions - where you can write code to act on an event - like a video upload - that automatically does whatever you need it to?
ASKER
Yes it is not safe to do it from angularjs side I think ...Yes we use lambda function which trigger to do that..
Then I am a bit lost as to what the question is because I thought it was about AngularJS making the call to SE?
ASKER
I had a discussion with SE guys they inform me by the words below
"Our users typically submit the videos from their own servers, not from the client code. So not from angularjs but from the code on your back-end that processes the videos."
"Our users typically submit the videos from their own servers, not from the client code. So not from angularjs but from the code on your back-end that processes the videos."
ASKER
i am guessing this piece for code to verify from the nodejs side would be the right one below.. let us know your comments or any other idea to pass endpoint POST 'https://api.sightengine.com/1.0/moderation.json' from nodejs..
//
Set your API_USER and API_SECRET values here. See http://sightengine.com to create your account
var API_USER = "sam";
var API_SECRET = "secretkey";
var SightengineClient = require ('./sightengine');
var Sightengine = new SightengineClient(API_USER, API_SECRET);
var imagepath = "/path/to/image.jpg";
Sightengine.checkNudityForFile(imagepath, function(error, result) {
if(error) console.dir(error);
else console.log(result);
});
Our users typically submit the videos from their own servers, not from the client code. So not from angularjs but from the code on your back-end that processes the videos.That sounds about right.
Regarding whether the Node.js code is right - I cannot say - it looks fine but then I am not versed enough in the SE service to say for sure.
The best way to find out is to test the code and see what it returns.
If you don't come right with that then close this question and open another one with NodeJS as the Topic area so that you can get more eyes on the problem.