You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
7.6 KiB
169 lines
7.6 KiB
using Newtonsoft.Json;
|
|
using Swift.API.Common;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Web.Script.Serialization;
|
|
|
|
namespace Swift.API.TPAPIs.GMESocialWallAPI
|
|
{
|
|
public class SocialWallAPIService : ISocialWallAPIService
|
|
{
|
|
private const string providerName = "FuseMachine";
|
|
string logId = "";
|
|
string _baseURL = "http://10.1.1.171:8080/v1";
|
|
DbResult dbResult = new DbResult();
|
|
DbResult _dbResult = new DbResult();
|
|
public FeedResponse GetFeeds(FeedRequest data, out DbResult err)
|
|
{
|
|
FeedResponse _feedResponse = new FeedResponse();
|
|
string str = "";
|
|
string sResponseFromServer = "";
|
|
var serializer = new JavaScriptSerializer();
|
|
var auth = Utility.GetSocialWallApiAuthKey();
|
|
var _request = serializer.Serialize(data);
|
|
_dbResult = Utility.LogRequest(data.userId, providerName, "GetFeeds", "", _request);
|
|
logId = _dbResult.Id;
|
|
try
|
|
{
|
|
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/feeds/admins?userId=" + data.userId + "&country=" + data.country + "&onlyReported=" + data.onlyReported + "&before=" + data.before + "&after="+ data.after + "&limit=" + data.limit);
|
|
_httpRequest.ContentType = "application/json";
|
|
_httpRequest.Method = "GET";
|
|
_httpRequest.Headers.Add("Authorization", auth);
|
|
|
|
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
|
|
if (_httpResponse.StatusCode==HttpStatusCode.OK)
|
|
{
|
|
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
|
|
{
|
|
sResponseFromServer = _streamReader.ReadToEnd();
|
|
_feedResponse = new JavaScriptSerializer().Deserialize<FeedResponse>(sResponseFromServer);
|
|
dbResult.SetError("0", "Success", "");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//_dbResult.SetError("1",_httpResponse)
|
|
}
|
|
_httpResponse.Close();
|
|
Utility.LogResponse(logId, sResponseFromServer, dbResult.ErrorCode, dbResult.Msg);
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
dbResult.SetError("1", ex.Message, "");
|
|
str = serializer.Serialize(_dbResult);
|
|
}
|
|
err = dbResult;
|
|
return _feedResponse;
|
|
}
|
|
public Feeds GetSpecificFeed(FeedQueryParameters data, out DbResult err)
|
|
{
|
|
Feeds _feed = new Feeds();
|
|
string str = "";
|
|
var serializer = new JavaScriptSerializer();
|
|
|
|
var auth = Utility.GetSocialWallApiAuthKey();
|
|
var _request = serializer.Serialize(data);
|
|
_dbResult = Utility.LogRequest(data.userId, providerName, "GetFeeds", "", _request);
|
|
logId = _dbResult.Id;
|
|
try
|
|
{
|
|
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/feeds/" + data.feedId + "?userId=" + data.userId);
|
|
|
|
_httpRequest.ContentType = "application/json";
|
|
_httpRequest.Method = "GET";
|
|
_httpRequest.Headers.Add("Authorization", auth);
|
|
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
|
|
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
|
|
{
|
|
String sResponseFromServer = _streamReader.ReadToEnd();
|
|
_feed = new JavaScriptSerializer().Deserialize<Feeds>(sResponseFromServer);
|
|
dbResult.SetError("0", "Success", "");
|
|
}
|
|
_httpResponse.Close();
|
|
var responseXml = Utility.ObjectToXML(_feed);
|
|
Utility.LogResponse(logId, responseXml, "", "");
|
|
}
|
|
|
|
catch (WebException ex)
|
|
{
|
|
var res=ex.Response.ToString();
|
|
dbResult.SetError("1", ex.Message, "");
|
|
str = serializer.Serialize(dbResult);
|
|
}
|
|
err = dbResult;
|
|
return _feed;
|
|
}
|
|
public List<ReportedFeedResponse> GetFeedReportDetails(FeedQueryParameters data, out DbResult err)
|
|
{
|
|
List<ReportedFeedResponse> _reportedFeedResponse = new List<ReportedFeedResponse>();
|
|
string str = "";
|
|
var serializer = new JavaScriptSerializer();
|
|
var auth = Utility.GetSocialWallApiAuthKey();
|
|
var _request = serializer.Serialize(data);
|
|
_dbResult = Utility.LogRequest(data.userId, providerName, "GetFeedReportDetails", data.feedId, _request);
|
|
logId = _dbResult.Id;
|
|
try
|
|
{
|
|
HttpWebRequest _httpRequest = (HttpWebRequest)WebRequest.Create(_baseURL + "/feeds/" + data.feedId + "/reports?page=" + data.page + "&size=" + data.size);
|
|
_httpRequest.ContentType = "application/json";
|
|
_httpRequest.Method = "GET";
|
|
_httpRequest.Headers.Add("Authorization", auth);
|
|
var _httpResponse = (HttpWebResponse)_httpRequest.GetResponse();
|
|
using (var _streamReader = new StreamReader(_httpResponse.GetResponseStream()))
|
|
{
|
|
str = _streamReader.ReadToEnd();
|
|
_reportedFeedResponse = new JavaScriptSerializer().Deserialize<List<ReportedFeedResponse>>(str);
|
|
dbResult.SetError("0", "Success", "");
|
|
}
|
|
_httpResponse.Close();
|
|
Utility.LogResponse(logId, str, dbResult.ErrorCode, dbResult.Msg);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
dbResult.SetError("1", ex.Message, "");
|
|
str = serializer.Serialize(dbResult);
|
|
}
|
|
err = dbResult;
|
|
return _reportedFeedResponse;
|
|
}
|
|
public string BlockUnblockFeed(BlockUnblockFeedParameters data,out DbResult err)
|
|
{
|
|
var result = "";
|
|
try
|
|
{
|
|
var auth = Utility.GetSocialWallApiAuthKey();
|
|
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
|
var _request = serializer.Serialize(data);
|
|
_dbResult = Utility.LogRequest(data.userId, providerName, "GetFeedReportDetails", data.feedId, _request);
|
|
logId = _dbResult.Id;
|
|
using (var client = new WebClient())
|
|
{
|
|
client.Headers.Add("Content-Type:application/json");
|
|
client.Headers.Add("Authorization", auth);
|
|
result = client.UploadString(_baseURL + "/feeds/" + data.feedId + "/blocks", "PATCH", serializer.Serialize(data));
|
|
dbResult.SetError("0", "Feed block/unblock Successfully!!!", "");
|
|
}
|
|
Utility.LogResponse(logId, result, dbResult.ErrorCode, dbResult.Msg);
|
|
}
|
|
catch (WebException wex)
|
|
{
|
|
if (((HttpWebResponse)wex.Response).StatusCode == HttpStatusCode.InternalServerError)
|
|
{
|
|
|
|
dbResult.SetError("1", "Provided feed doesn't exist or it may have been deleted or you are not authorized to perform this action.", "");
|
|
}
|
|
else
|
|
{
|
|
dbResult.SetError("0", "Oops Something Went Wrong!!!", "");
|
|
}
|
|
}
|
|
err = dbResult;
|
|
return result;
|
|
}
|
|
}
|
|
}
|