public IActionResult UpdateWebsiteDataById([FromRoute] string schemaid, [FromRoute] string clientid, [FromBody] UpdateWebsiteDataRequestModel requestModel) { ///TODO : Chheck that mongodb driver support long for skip and limit // string userid = Request.Headers.Authorization.ToString(); // command.UserId = userid; try { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } requestModel.SchemaId = schemaid; // requestModel.SchemaName = schemaname.ToUpper(); var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } return(new CommonActionResult(MongoConnector.UpdateWebsiteData(requestModel))); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult UpdateCacheInvalidationStatus([FromRoute] string websiteid, [FromQuery] string clientid, [FromQuery] int nextInvalidationInSec) { try { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(Unauthorized()); } if (string.IsNullOrEmpty(websiteid)) { return(new CommonActionResult(CommonAPIResponse.BadRequest(new ValidationResult("Invalid websiteid")))); } if (nextInvalidationInSec == 0) { return(new CommonActionResult(CommonAPIResponse.BadRequest(new ValidationResult("Provide valid next invalidation in secnd paramater")))); } return(new CommonActionResult(MongoConnector.UpdateCacheInvalidationStatus(websiteid, nextInvalidationInSec))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult KitsuneUpdateDomain([FromQuery] string websiteid, [FromQuery] string newDomain, [FromQuery] string clientid) { try { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } var requestModel = new KitsuneUpdateDomainRequestModel { CustomerId = websiteid, NewDomain = newDomain }; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } return(Ok(MongoConnector.UpdateDomainName(requestModel))); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult GetLanguageEntity([FromRoute] string languageid, [FromRoute] string clientid, bool propertygroup = false) { try { if (!string.IsNullOrEmpty(clientid) && BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() == clientid.Trim().ToUpper()) { var requestModel = new GetLanguageEntityRequestModel { EntityId = languageid, }; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } if (propertygroup) { return(Ok(MongoConnector.GetLanguageEntityByPropertyGroup(requestModel))); } else { return(Ok(MongoConnector.GetLanguageEntity(requestModel))); } } return(Unauthorized()); } catch (Exception ex) { throw; } }
public IActionResult GetCustomersPerProject(string clientid, string projectid = null) { if (!string.IsNullOrEmpty(clientid) && BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() == clientid.Trim().ToUpper()) { return(Ok(MongoConnector.GetLiveWebsiteIds(projectid))); } return(Unauthorized()); }
internal static KitsuneWebsiteCollection CreateDefaultWebsite(string projectId, string projectName, string developerEmail, string clientId) { try { if (_kitsuneServer == null) { InitializeConnection(); } var userCollection = _kitsuneDatabase.GetCollection <UserModel>(KitsuneUserCollectionName); var websiteCollection = _kitsuneDatabase.GetCollection <KitsuneWebsiteCollection>(KitsuneWebsiteCollectionName); UserModel userDetails = userCollection.Find(x => x.UserName.Equals(developerEmail)).Limit(1).FirstOrDefault(); #region GENERATE WEBSITETAG AND WEBSITEURL bool?isSSLEnabled = null; // Removes all special characters if (projectName.ToLower().Trim().StartsWith("http://")) { isSSLEnabled = false; } string websiteTag = projectName.Replace("http://", "", StringComparison.InvariantCultureIgnoreCase) .Replace("https://", "", StringComparison.InvariantCultureIgnoreCase) .Replace("www.", "", StringComparison.InvariantCultureIgnoreCase); websiteTag = Regex.Replace(websiteTag, @"[^0-9a-zA-Z]+", "").ToUpper(); websiteTag = $"{websiteTag}DEFAULT"; //If the same name website tag exist use {projectname_developerfirstname_01} var existingWebsites = websiteCollection.Find(x => x.WebsiteTag == websiteTag).Count(); if (existingWebsites > 0) { Random random = new Random(); websiteTag = websiteTag + random.Next(100, 999); } var basePlugin = BasePluginConfigGenerator.GetBasePlugin(clientId); //update clientId if the id is not present clientId = basePlugin.GetClientId(); string websiteDomain = websiteTag.ToUpper() + basePlugin.GetSubDomain(); #endregion //Create new customer KitsuneWebsiteCollection customerDetails = CreateNewWebsite(projectId, websiteTag, developerEmail, userDetails.PhoneNumber, developerEmail, websiteDomain, userDetails._id, clientId, isSSLEnabled: isSSLEnabled); return(customerDetails); } catch (Exception ex) { throw ex; } }
public IActionResult GetStorageSize([FromQuery] string clientid, [FromQuery] string userid = null) { try { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } return(new CommonActionResult(MongoConnector.GetWebsiteDataStorageSize(userid))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult GetBasePluginDetails([FromQuery] string projectId, [FromQuery] string clientId) { if (String.IsNullOrEmpty(clientId)) { //Use this till all data is filled in project - collections clientId = MongoConnector.GetClientIdFromWebsiteId(projectId); } var basePlugin = BasePluginConfigGenerator.GetBasePlugin(clientId); return(Ok(new BasePluginResponseModel() { clientId = basePlugin.GetClientId(), clientName = basePlugin.GetClientName(), _defaultSubDomain = basePlugin.GetSubDomain(), })); }
public IActionResult CreateNewWebsite([FromBody] CreateNewWebsiteRequestModel requestModel, [FromQuery] string clientid = null) { try { var authId = AuthHelper.AuthorizeRequest(Request); try { if (String.IsNullOrEmpty(clientid) && !String.IsNullOrEmpty(requestModel.DeveloperId)) { requestModel.ClientId = MongoConnector.GetClientIdFromProjectId(requestModel.ProjectId); } } catch { } requestModel.ClientId = BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId(); if (string.IsNullOrEmpty(clientid) || requestModel.ClientId != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } requestModel.ActivateWebsite = false; if (requestModel.ClientId == Constants.ClientIdConstants.NowFloatsClientId) { requestModel.ActivateWebsite = true; } requestModel.DeveloperId = MongoConnector.GetUserIdFromProjectId(requestModel.ProjectId); var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(new CommonActionResult(CommonAPIResponse.BadRequest(validationResult))); } return(new CommonActionResult(MongoConnector.CreateNewWebsite(requestModel))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult ChangeProjectId([FromRoute] string websiteid, [FromRoute] string projectid, [FromQuery] string clientid) { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } if (string.IsNullOrEmpty(websiteid) || string.IsNullOrEmpty(projectid)) { return(new CommonActionResult(CommonAPIResponse.BadRequest(new ValidationResult("Invalid input paramater")))); } try { return(new CommonActionResult(CommonAPIResponse.OK(MongoConnector.ChangeProjectId(websiteid, projectid)))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult GetObjectLink([FromRoute] string websiteid, [FromRoute] string objectid, [FromRoute] string clientid, [FromQuery] string classname, [FromQuery] string schemaid = null) { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } if (string.IsNullOrEmpty(classname)) { return(new CommonActionResult(CommonAPIResponse.BadRequest(new System.ComponentModel.DataAnnotations.ValidationResult("Class name can not be empty")))); } try { return(new CommonActionResult(MongoConnector.GenerateObjectUrl(websiteid, classname, objectid, schemaid))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult ToggleCDNCache([FromRoute] string websiteid, [FromQuery] string clientid, [FromQuery] bool enable) { try { if (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(Unauthorized()); } if (string.IsNullOrEmpty(websiteid)) { return(new CommonActionResult(CommonAPIResponse.BadRequest(new ValidationResult("Invalid websiteid")))); } return(new CommonActionResult(MongoConnector.UpdateCacheInvalidationStatus(websiteid, enable: enable))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult AddOrUpdateWebsite([FromRoute] string schemaname, [FromBody] AddOrUpdateWebsiteRequestModel requestModel, [FromRoute] string clientid = null, [FromRoute] string schemaid = null) { try { var userId = AuthHelper.AuthorizeRequest(Request); if (string.IsNullOrEmpty(userId) && (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper())) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } requestModel.UserId = userId; requestModel.SchemaId = schemaid; requestModel.SchemaName = schemaname; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } return(Ok(MongoConnector.AddDataForWebsite(requestModel))); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult GetWebsiteData([FromQuery] string website, [FromQuery] string id = null, [FromQuery] int skip = 0, [FromQuery] int limit = 100, [FromQuery] string query = null, [FromQuery] string sort = null, [FromQuery] string include = null, [FromRoute] string clientid = null, [FromRoute] string schemaid = null, [FromRoute] string schemaname = null) { try { var requestModel = new GetWebsiteDataRequestModel { Limit = limit, Query = query, SchemaName = schemaname, Skip = skip, Sort = sort, WebsiteId = website, Include = include, ClientId = clientid, SchemaId = schemaid }; var userId = AuthHelper.AuthorizeRequest(Request); if (string.IsNullOrEmpty(userId) && (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper())) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } requestModel.UserId = userId; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } return(Ok(MongoConnector.GetWebsiteData(requestModel))); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult GetWebsiteDataByPropertyPathV2([FromRoute] string schemaid, [FromQuery] string requestObject, [FromRoute] string clientid = null) { try { var userId = AuthHelper.AuthorizeRequest(Request); if (string.IsNullOrEmpty(userId) && (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper())) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } var requestModel = JsonConvert.DeserializeObject <GetWebsiteDataByPropertyPath>(requestObject); requestModel.SchemaId = schemaid; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } var result = MongoConnector.GetWebsiteDataByPropertyPath(requestModel); return(new CommonActionResult(CommonAPIResponse.OK(result))); } catch (Exception ex) { return(BadRequest(ex)); } }
//mails public string SendEmail(EmailRequestWithAttachments req, EmailUserConfigType configType = EmailUserConfigType.WEBSITE_DEVELOPER, string clientId = null) { try { var basePlugin = BasePluginConfigGenerator.GetBasePlugin(clientId); var basePluginEmailConfiguration = (configType == EmailUserConfigType.WEBSITE_DEVELOPER) ? basePlugin.GetEmailConfiguration() : basePlugin.GetKAdminEmailConfiguration(); WithFloatsExternalSMTPConfiguration smtpConfig; #region INIT EMAIL CONFIGURATION if (req.CustomSMTPConfig == null) { smtpConfig = new WithFloatsExternalSMTPConfiguration() { EnableSsl = basePluginEmailConfiguration.EnableSsl, ServerHost = basePluginEmailConfiguration.ServerHost, ServerPort = basePluginEmailConfiguration.ServerPort, SMTPUserName = basePluginEmailConfiguration.SMTPUserName, SMTPUserPassword = basePluginEmailConfiguration.SMTPUserPassword, TimeOut = basePluginEmailConfiguration.TimeOut, UserName = basePluginEmailConfiguration.SMTPUserName }; } else { smtpConfig = new WithFloatsExternalSMTPConfiguration() { EnableSsl = req.CustomSMTPConfig.EnableSsl, ServerHost = req.CustomSMTPConfig.ServerHost, ServerPort = req.CustomSMTPConfig.ServerPort, SMTPUserName = req.CustomSMTPConfig.SMTPUserName, SMTPUserPassword = req.CustomSMTPConfig.SMTPUserPassword, TimeOut = req.CustomSMTPConfig.TimeOut, UserName = req.CustomSMTPConfig.UserName }; } #endregion var request = (HttpWebRequest)WebRequest.Create(EnvConstants.Constants.EmailAPI); request.Method = "POST"; request.ContentType = "application/json"; var requestObj = new KitsuneConvertMailRequest { ClientId = EnvConstants.Constants.KitsuneDevClientId, EmailBody = req.EmailBody, Subject = req.Subject, To = req.To, Attachments = req.Attachments, From = basePluginEmailConfiguration.FromEmailAddress, CustomSMTPConfig = smtpConfig }; var jsonSerializer = new DataContractJsonSerializer(typeof(KitsuneConvertMailRequest)); var mem = new MemoryStream(); jsonSerializer.WriteObject(mem, requestObj); string finalData = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length); var bytes = new UTF8Encoding().GetBytes(finalData); using (Stream stream = request.GetRequestStream()) { stream.Write(bytes, 0, bytes.Length); } WebResponse ws = request.GetResponse(); var sr = new StreamReader(ws.GetResponseStream()); var rs = sr.ReadToEnd(); return(rs); } catch (Exception ex) { return(null); //EventLogger.Write(ex, "NowFloats.Boost Exception: Unable to SendMailToServer", null); } }
public IActionResult GetWebsiteDataByPropertyPath([FromRoute] string schemaid, [FromBody] GetWebsiteDataByPropertyPathV2 requestModel, [FromRoute] string clientid = null) { try { var userId = AuthHelper.AuthorizeRequest(Request); if (string.IsNullOrEmpty(userId) && (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper())) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } requestModel.SchemaId = schemaid; var validationResult = requestModel.Validate(); if (validationResult.Any()) { return(BadRequest(validationResult)); } var result = new List <GetWebsiteDataByPropertyResponseModel>(); var segmentRequet = new GetWebsiteDataByPropertyPath() { SchemaId = requestModel.SchemaId, UserEmail = requestModel.UserEmail, WebsiteId = requestModel.WebsiteId }; foreach (var segments in requestModel.BulkPropertySegments) { segmentRequet.PropertySegments = segments; result.Add(MongoConnector.GetWebsiteDataByPropertyPath(segmentRequet)); } return(new CommonActionResult(CommonAPIResponse.OK(result))); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult GetKitsuneWebsiteDetails(string WebsiteId, [FromQuery] string clientid = null) { try { var developerId = AuthHelper.AuthorizeRequest(Request); if (string.IsNullOrEmpty(developerId) && (string.IsNullOrEmpty(clientid) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper())) { return(new CommonActionResult(CommonAPIResponse.UnAuthorized())); } return(new CommonActionResult(MongoConnector.GetKitsuneWebsiteDetails(WebsiteId))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }
public IActionResult PushToSitemapQueue([FromQuery] string clientid, [FromQuery] string websiteId) { try { if (string.IsNullOrEmpty(clientid) || string.IsNullOrEmpty(websiteId) || BasePluginConfigGenerator.GetBasePlugin(clientid).GetClientId() != clientid.Trim().ToUpper()) { return(Unauthorized()); } if (websiteId.ToLower() == "all") { var liveWebsites = MongoConnector.GetLiveWebsiteIds(); if (liveWebsites != null && liveWebsites.Any()) { var result = string.Empty; foreach (var website in liveWebsites.Select(x => new KeyValuePair <string, string>(x.Substring(0, x.IndexOf(':')), x.Substring(x.IndexOf(':') + 1)))) { result = CommonHelpers.PushSitemapGenerationTaskToSQS(new SitemapGenerationTaskModel() { WebsiteId = website.Key, ProjectId = website.Value }); } if (!string.IsNullOrEmpty(result)) { return(Ok()); } } } else { var result = CommonHelpers.PushSitemapGenerationTaskToSQS(new SitemapGenerationTaskModel() { WebsiteId = websiteId }); if (!string.IsNullOrEmpty(result)) { return(Ok()); } } return(new CommonActionResult(CommonAPIResponse.BadRequest(new ValidationResult("Invalid sitemap request")))); } catch (Exception ex) { return(new CommonActionResult(CommonAPIResponse.InternalServerError(ex))); } }