public FrontModule(IViewProjectionFactory viewFactory) { _viewFactory = viewFactory; After.AddItemToEndOfPipeline(SetRecentBlogPosts); After.AddItemToEndOfPipeline(SetTagCloud); }
public SampleModule() { After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); //需要把views文件夹复制到debug目录 Get["/test"] = _ => View["test.html"]; Get["/razor"] = _ => View["razor"]; Get["/"] = r => { Console.WriteLine("ok"); return("hello world"); }; Get["/call1"] = Call1; //读卡集成 Get["apc/call"] = Call; //关闭端口 Get["/exit"] = Dc_Exit; //打开端口 Get["/init"] = Dc_Init; //弹卡 Get["/cardexit"] = dc_SelfServiceDeviceCardEject; //弹卡集成 Get["/cardexitx"] = cardexitx; }
private void SetupModelDefaults() { Before.AddItemToEndOfPipeline(ctx => { baseModel.MasterPage = new Model.MasterPageView(); baseModel.MasterPage.Title = "Log Parser Monitor and Reporting"; if (Request.Cookies.ContainsKey("lastvisit")) { baseModel.MasterPage.LastVisit = Uri.UnescapeDataString(Request.Cookies["lastvisit"]); } else { baseModel.MasterPage.LastVisit = "No cookie value yet"; } baseModel.MasterPage.IsAuthenticated = (ctx.CurrentUser != null); if (ctx.CurrentUser != null) { baseModel.MasterPage.UserName = ctx.CurrentUser.UserName; } // TODO: Get a list of the user claims here - set in model for use in view? return(null); }); After.AddItemToEndOfPipeline(ctx => { var now = DateTime.Now; ctx.Response.AddCookie("lastvisit", now.ToShortDateString() + " " + now.ToShortTimeString(), now.AddYears(1)); }); }
public ApiModule() { // CORS After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); Get("/classify", ctx => { var req = this.Bind <ClassifyRequest>(); if (req.Month == null || req.Day == null || req.DayOfWeek == null || req.Airline == null || req.Airport == null) { return("{\"error\": \"must provide all parameters\"}"); } // build example based on params var example = new Example(""); example.AddAttribute(Attrs.Month, int.Parse(req.Month)); example.AddAttribute(Attrs.Day, int.Parse(req.Day)); example.AddAttribute(Attrs.DayOfWeek, int.Parse(req.DayOfWeek)); example.AddAttribute(Attrs.Airline, req.Airline); example.AddAttribute(Attrs.Airport, req.Airport); var result = WebServer.Tree.Classify(example); var value = result.classification.ToLower(); var ratio = result.randomnessRatio; return("{\"classification\": " + value + ", \"randomnessRatio\": " + ratio + "}"); }); }
public Initialize() { After.AddItemToEndOfPipeline((ctx) => { ctx.Response.WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"); }); Get["/"] = parameters => { return("handshake successful"); }; Get["/init"] = parameters => { return(JsonConvert.SerializeObject(Medina.Initialize())); }; Get["/init/site"] = parameters => { //Do the logic. return(JsonConvert.SerializeObject(Medina.LoadSite(@"G:\My Drive\medina\protocol_site_v0.5.0.3dm"))); }; Get["/init/motifs"] = parameters => { //Please work I beg you return(JsonConvert.SerializeObject(Medina.LoadMotifs(@"G:\My Drive\medina\motifs\Arc_Construct.ghx"))); }; }
public FrontModule(IViewProjectionFactory viewFactory) { _viewFactory = viewFactory; After.AddItemToEndOfPipeline(SetRecentBlogPosts); After.AddItemToEndOfPipeline(SetTagCloud); After.AddItemToEndOfPipeline(NancyCompressionExtenstion.CheckForCompression); }
protected BaseModule(string modulePath) : base(modulePath) { if (AuthInfo?.Validate) { this.RequiresAuthentication(); } After.AddItemToEndOfPipeline(NancyCompressionExtenstion.CheckForCompression); }
private void EnableCors() { After.AddItemToEndOfPipeline((ctx) => { ctx.Response.WithHeader("Access-Control-Allow-Origin", "*") // Set to allow all, change with implementation .WithHeader("Access-Control-Allow-Methods", "POST,GET,DELETE") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type, X-Requested-With") .WithHeader("Access-Control-Allow-Credentials", "true"); }); }
public VersionModule(string version, string route, IComponentManager componentManager) : base(version + route) { foreach (var extender in componentManager.GetModuleExtenders()) { Before.AddItemToEndOfPipeline(extender.Before); After.AddItemToEndOfPipeline(extender.After); } Get("/", _ => HttpStatusCode.NotFound); }
public WelcomeModule() { this.RequiresAuthentication(); After.AddItemToEndOfPipeline((context) => context.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type") ); //var s=this.Context.CurrentUser.Identity.IsAuthenticated; var commandHandlers = Program.container.GetTypesToRegister(typeof(ICommandHandler <>), new[] { typeof(LoanAppService).Assembly }); var commands = commandHandlers.SelectMany(type => type.GetInterfaces()) .Where(type => type.IsGenericType) .Select(type => type.GetGenericArguments().First()); foreach (var command in commands) { var serviceName = command.Namespace.Split('.').LastOrDefault(); var address = $"/{serviceName}/{command.Name}"; var makeHandler = this.GetType().GetMethod("MakeHandler", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance) .MakeGenericMethod(command); // // Get["/"] = parameters => "Hello World!"; // Get(address+"t", async (args, ct) => // { // var result = await MakeHandler1(this); // return result; // }); // Post(address + "t", async (args, ct) => // { // var result = await MakeHandler(this); // return result; //}); Get(address, async x => await(Task <object>) makeHandler.Invoke(this, new object[0])); Post(address, async x => await(Task <object>) makeHandler.Invoke(this, new object[0])); //Get(address, x => (Func<object, object>)makeHandler.Invoke(this, new object[0])); //Post(address, x => (Func<object, object>)makeHandler.Invoke(this, new object[0])); } this.serviceProvider = serviceProvider; }
public TabService() { Post["/chrome"] = SetChromeTabs; Post["/firefox"] = SetFirefoxTabs; Get["/test"] = Test; // Allow CORS, so that extension are able to get answer After.AddItemToEndOfPipeline(ctx => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); }
private void SetupModelDefaults() { Before.AddItemToEndOfPipeline(ctx => { Model.MasterPage = new MasterPageViewModel(); Model.MasterPage.Title = "Nancy & Hangfire - Hello World!"; Model.MasterPage.IsAuthenticated = (ctx.CurrentUser == null); return(null); }); After.AddItemToEndOfPipeline(ctx => { }); }
protected ApiModule() { After.AddItemToEndOfPipeline(ctx => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Accept", "application/json") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type") .WithHeader("Expires", "Tue, 03 Jul 2001 06:00:00 GMT") .WithHeader("Last-Modified", DateTime.Now.ToUniversalTime().ToString("R")) .WithHeader("Cache-Control", "max-age=0, no-cache, must-revalidate, proxy-revalidate, no-store") .WithHeader("Pragma", "no-cache") ); }
public ApiClassFile() { //To allow cors After.AddItemToEndOfPipeline((ctx) => { ctx.Response.WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"); }); Get["/api/thing/{val}"] = x => method(x); Get["/api/thing"] = x => anotherMethod(x); }
/* * TODO: city data service access for desired shards. * Need to maintain connections to shards and request from their data services... * Either that or online status has to at least writeback to DB. */ public CityInfoController(IDAFactory daFactory, IServerNFSProvider nfs) : base("/userapi/city") { DAFactory = daFactory; NFS = nfs; After.AddItemToEndOfPipeline(x => { x.Response.WithHeader("Access-Control-Allow-Origin", "*"); }); Get["/{shardid}/{id}.png"] = parameters => { using (var da = daFactory.Get) { var lot = da.Lots.GetByLocation((int)parameters.shardid, (uint)parameters.id); if (lot == null) { return(HttpStatusCode.NotFound); } return(Response.AsImage(Path.Combine(NFS.GetBaseDirectory(), "Lots/" + lot.lot_id.ToString("x8") + "/thumb.png"))); } }; Get["/{shardid}/city.json"] = parameters => { var now = Epoch.Now; if (LastModelUpdate < now - 15) { LastModelUpdate = now; lock (ModelLock) { LastModel = new CityInfoModel(); using (var da = daFactory.Get) { var lots = da.Lots.AllLocations((int)parameters.shardid); var lotstatus = da.LotClaims.AllLocations((int)parameters.shardid); LastModel.reservedLots = lots.ConvertAll(x => x.location).ToArray(); LastModel.names = lots.ConvertAll(x => x.name).ToArray(); LastModel.activeLots = lotstatus.ConvertAll(x => x.location).ToArray(); LastModel.onlineCount = lotstatus.ConvertAll(x => x.active).ToArray(); } } } lock (ModelLock) { return(Response.AsJson(LastModel)); } }; }
public Module() { After.AddItemToEndOfPipeline((ctx) => ctx.Response.WithHeader("Access-Control-Allow-Origin", "*").WithHeader("Access-Control-Allow-Methods", "POST,GET").WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); Options["/"] = _ => new Response(); Get["/{printerName?printi}"] = (ctx) => { var model = new PrinterPageModel(ctx.printerName, ctx.printerName == "printi"); int.TryParse(Request.Query["log"], out model.ShowDebug); return(View["Index", model]); }; Get["/ping"] = para => "OK"; Get["/snel"] = Get["/sneller"] = Get["/fast"] = Get["/faster"] = para => Response.AsRedirect("http://192.168.2.42/"); }
public LoginServer() { After.AddItemToEndOfPipeline(ctx => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); Get("/token", x => { if (LauncherLogic.User != null) { return(JsonConvert.SerializeObject(new { StatusCode = 0, UserName = Base64Encode(LauncherLogic.User.UserName), Token = LauncherLogic.User.AuthCode })); } //1 = Not Authenticated return(JsonConvert.SerializeObject(new { StatusCode = 1 })); }); }
public RestApiModule() : base("/api/v0.1") { //todo: debug code, get rid of this later Before.AddItemToStartOfPipeline(x => { _stopwatch = new Stopwatch(); _stopwatch.Start(); return(null); }); //version number request Get["/version"] = _ => { return(_GetVersion()); }; //list the current boxes Get["/boxes"] = _ => { return(_GetBoxList()); }; //create a new box Put["/boxes/{box}"] = x => { return(_CreateBox(x["box"])); }; //delete a box Delete["/boxes/{box}"] = x => { return(_DeleteBox(x["box"])); }; //list messages in a box Get["/boxes/{box}"] = x => { return(_GetMessagesInBox(x["box"])); }; //create a new message Put["/boxes/{box}/{message}"] = x => { var msg = this.Bind <Message>(); return(_CreateMessage(x["box"], x["message"], msg)); }; //delete a message Delete["/boxes/{box}/{message}"] = x => { return(_DeleteMessage(x["box"], x["message"])); }; //get message details Get["/boxes/{box}/{message}"] = x => { return(_GetMessage(x["box"], x["message"])); }; //todo: debug code, get rid of this later After.AddItemToEndOfPipeline(x => { _stopwatch.Stop(); Console.WriteLine("> ({0}ms) {1}: {2}", _stopwatch.ElapsedMilliseconds, Request.Method, Request.Url.Path); }); }
public Endpoints() { Options["/{catchAll*}"] = parmeters => { return(new Response { StatusCode = HttpStatusCode.Accepted }); }; After.AddItemToEndOfPipeline(context => { context.Response.WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST, GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"); }); Get[nameof(PreviousRun)] = _ => PreviousRun(); Get[$"{nameof(PreviousRun)}/{{runId}}"] = parameters => PreviousRun(parameters.runId); Get[nameof(RuleDefinitions)] = _ => RuleDefinitions(); Post[nameof(NewAnalysis)] = _ => NewAnalysis(); }
public AdminShardOpController(IDAFactory daFactory, JWTFactory jwt, ApiServer server) : base("/admin/shards") { JWTTokenAuthentication.Enable(this, jwt); DAFactory = daFactory; Server = server; After.AddItemToEndOfPipeline(x => { x.Response.WithHeader("Access-Control-Allow-Origin", "*"); }); Post["/shutdown"] = _ => { this.DemandAdmin(); var shutdown = this.Bind <ShutdownModel>(); var type = ShutdownType.SHUTDOWN; if (shutdown.update) { type = ShutdownType.UPDATE; } else if (shutdown.restart) { type = ShutdownType.RESTART; } //JWTUserIdentity user = (JWTUserIdentity)this.Context.CurrentUser; Server.RequestShutdown((uint)shutdown.timeout, type); return(Response.AsJson(true)); }; Post["/announce"] = _ => { this.DemandModerator(); var announce = this.Bind <AnnouncementModel>(); Server.BroadcastMessage(announce.sender, announce.subject, announce.message); return(Response.AsJson(true)); }; }
public ComputerInfoApi() { #if DEBUG After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); #endif Get("/", x => { return(View["Web/index.html"]); }); Get("/GetTemp", x => { var cdata = ComputerData.Get(); cdata.Refresh();//todo 可能需要改成独立线程刷新 //Dictionary<string, string> result = new Dictionary<string, string>(); //result.Add("cputemp", cdata.GetCpuTemperature()); //result.Add("gputemp", cdata.GetGpuTemperature()); //result.Add("cpuload", cdata.GetCpuLoad()); //result.Add("ramload", cdata.GetMemoryLoad()); ComputerInfoModel result = new ComputerInfoModel() { CpuLoad = cdata.GetCpuLoad(), CpuTemp = cdata.GetCpuTemperature(), RamLoad = cdata.GetMemoryLoad(), GpuTemp = cdata.GetGpuTemperature(), DiskLoad = cdata.GetDiskLoad() }; return(Response.AsJson(result)); }); Get("/test", x => { var cpu = ComputerData.Get().GetCpu(); if (cpu == null) { return("Cant find cpu"); } return(ComputerData.Get().GetTemperature(cpu)); }); }
public NancyDemo() : base("/nancy") { Before.AddItemToEndOfPipeline(async(ctx, ct) => { this.AddToLog("Before Hook Delay\n"); await Task.Delay(5000); return(null); }); After.AddItemToEndOfPipeline(async(ctx, ct) => { this.AddToLog("After Hook Delay\n"); await Task.Delay(5000); this.AddToLog("After Hook Complete\n"); ctx.Response = this.GetLog(); }); Get["/", runAsync : true] = async(x, ct) => { this.AddToLog("Delay 1\n"); await Task.Delay(1000); this.AddToLog("Delay 2\n"); await Task.Delay(1000); this.AddToLog("Executing async http client\n"); using (var client = new HttpClient()) { var res = await client.GetAsync("http://nancyfx.org"); var content = await res.Content.ReadAsStringAsync(); this.AddToLog("Response: " + content + "\n"); } return((Response)this.GetLog()); }; Get["/nancy/demo"] = parameters => new string[] { "Hello", "World" }; }
private void SetupModelDefaults() { Before.AddItemToEndOfPipeline(ctx => { var guid = System.Guid.NewGuid().ToString(); if (Request.Cookies.ContainsKey("NerdGuid")) { guid = Request.Cookies["NerdGuid"]; } Model.NerdGuid = guid; Model.Nerd = DB.Nerds.FindByGuid(guid) ?? DB.Nerds.Insert(Name: "John Doe", Guid: guid); Model.Title = "NerdBeers"; IEnumerable <BeerEvent> ube = DB.BeerEvents.FindAllByEventDate(DateTime.Now.to(DateTime.Now.AddYears(1))).Cast <BeerEvent>(); Model.UpcomingEvents = ube.OrderBy(e => e.EventDate).Take(10); Model.SubscribedEvents = DB.BeerEvents.FindAll(DB.BeerEvents.NerdSubscriptions.Nerds.Guid == Model.Nerd.Guid).Cast <BeerEvent>(); return(null); }); After.AddItemToEndOfPipeline(ctx => { ctx.Response.AddCookie("NerdGuid", Model.NerdGuid); }); }
public Resource() : base(Constants.Path) { After.AddItemToEndOfPipeline(ctx => ctx.Response .WithHeader("Access-Control-Allow-Credentials", "true") .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") .WithHeader("Access-Control-Allow-Headers", "origin, content-type, accept, authorization, X-HTTP-Method-Override, Accept-Encoding, Content-Encoding")); Get["/portal"] = _ => { // Return the UI's script var jsonBytes = Encoding.UTF8.GetBytes(System.IO.File.ReadAllText(@"../../Client/build/ServiceConfiguration.bundle.js")); return(new Response { StatusCode = HttpStatusCode.OK, ContentType = "text/plain", Contents = c => c.Write(jsonBytes, 0, jsonBytes.Length) }); }; Options["/portal"] = _ => new Response { StatusCode = HttpStatusCode.OK }; }
public ApiModule() { After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*")); Get("/", _ => ""); Get("/GetTraders", _ => { return(Response.AsJson(new { code = 200, status = "success", result = GetTraders() })); }); var nicksList = File.ReadAllLines("traders.txt") .ToList(); for (var i = 0; i < nicksList.Count(); i++) { nicks[i + 1400060] = nicksList[i]; } if (thread == null) { thread = new Thread(() => { while (true) { Update(); Thread.Sleep(30000); } }); thread.Start(); } }
public CalcNancyModule() { After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", GetOrigin(ctx)) .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); Get["/Calc"] = _ => { //Simaulate hard work... Thread.Sleep(1000); var assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); return($"{{ \"version\": \"{assemblyVersion}\" }}"); }; Get["/Calc/Add"] = _ => { //Simaulate hard work... Thread.Sleep(1000); var num1String = Request.Query["num1"] ?? ""; var num2String = Request.Query["num2"] ?? ""; var parsed1 = int.TryParse(num1String, out int num1); var parsed2 = int.TryParse(num2String, out int num2); var parsed = parsed1 && parsed2; if (parsed) { return($"{{ \"result\": \"{num1 + num2}\" }}"); } else { return($"{{ \"error\": \"can't parse input values\" }}"); } }; }
public TaskModule(IManagableScheduleTask manager) : base("/v1") { After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")); Get["/"] = parameters => { string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"sharedResources\html\page.html"); return(Response.AsFile(path, "text/html")); }; Get["/gettasks"] = parameters => { var results = manager.GetAllScheduleTask(); Console.WriteLine("# of task loaded: " + results.Count); return(Response.AsJson(results)); }; Get["/removetask/{id}"] = parameters => { string id = parameters.id; if (int.TryParse(id, out int numbericId)) { manager.RemoveScheduleTaskByID(numbericId); Console.WriteLine("Id called: " + id); return(Response.AsJson("# " + id)); } else { return(HttpStatusCode.BadRequest); } }; }
public JabbRModule(string modulePath) : base(modulePath) { Before.AddItemToEndOfPipeline(AlertsToViewBag); After.AddItemToEndOfPipeline(RemoveAlters); }
public RegistrationController(IDAFactory daFactory, JWTFactory jwt, ApiServerConfiguration config) : base("/userapi/registration") { JWTTokenAuthentication.Enable(this, jwt); DAFactory = daFactory; After.AddItemToEndOfPipeline(x => { x.Response.WithHeader("Access-Control-Allow-Origin", "*"); }); //Create a new user Post["/"] = x => { var user = this.Bind <RegistrationModel>(); var tryIP = Request.Headers["X-Forwarded-For"].FirstOrDefault(); if (tryIP != null) { tryIP = tryIP.Substring(tryIP.LastIndexOf(',') + 1).Trim(); } var ip = tryIP ?? Request.UserHostAddress; user.username = user.username ?? ""; user.username = user.username.ToLowerInvariant(); user.email = user.email ?? ""; user.key = user.key ?? ""; string failReason = null; if (user.username.Length < 3) { failReason = "user_short"; } else if (user.username.Length > 24) { failReason = "user_long"; } else if (!USERNAME_VALIDATION.IsMatch(user.username ?? "")) { failReason = "user_invalid"; } else if ((user.password?.Length ?? 0) == 0) { failReason = "pass_required"; } if (failReason != null) { return(Response.AsJson(new RegistrationError() { error = "bad_request", error_description = failReason })); } bool isAdmin = false; if (config.Regkey != null && config.Regkey != user.key) { return(Response.AsJson(new RegistrationError() { error = "key_wrong", error_description = failReason })); } var passhash = PasswordHasher.Hash(user.password); using (var da = daFactory.Get) { //has this ip been banned? var ban = da.Bans.GetByIP(ip); if (ban != null) { return(Response.AsJson(new RegistrationError() { error = "registration_failed", error_description = "ip_banned" })); } //has this user registered a new account too soon after their last? var now = Epoch.Now; var prev = da.Users.GetByRegisterIP(ip); if (now - (prev.FirstOrDefault()?.register_date ?? 0) < REGISTER_THROTTLE_SECS) { //cannot create a new account this soon. return(Response.AsJson(new RegistrationError() { error = "registration_failed", error_description = "registrations_too_frequent" })); } //TODO: is this ip banned? var userModel = new User { username = user.username, email = user.email, is_admin = isAdmin, is_moderator = isAdmin, user_state = UserState.valid, register_date = now, is_banned = false, register_ip = ip, last_ip = ip }; var authSettings = new UserAuthenticate { scheme_class = passhash.scheme, data = passhash.data }; try { var userId = da.Users.Create(userModel); authSettings.user_id = userId; da.Users.CreateAuth(authSettings); userModel = da.Users.GetById(userId); if (userModel == null) { throw new Exception("Unable to find user"); } return(Response.AsJson(userModel)); } catch (Exception) { return(Response.AsJson(new RegistrationError() { error = "registration_failed", error_description = "user_exists" })); } } }; }
private void EnableCORS() => After.AddItemToEndOfPipeline((ctx) => ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Methods", "POST,GET") .WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"));