public ProjectTeamMemberCrudController() { Post("/api/v1/project_team_member/create", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "project_guid", "user_guid" }), new ExistsInTable("project_guid", "projects", "guid"), new ExistsInTable("user_guid", "users", "guid"), new HasPermission(me, project.id, EntityType.Project), }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var user = UserRepository.FindByGuid(GetRequestStr("user_guid")); var projectTeamMember = ProjectTeamMemberRepository.CreateAndGet(project, user); return(HttpResponse.Item( "project_team_member", new ProjectTeamMemberTransformer().Transform(projectTeamMember), HttpStatusCode.Created )); }); Delete("/api/v1/project_team_member/delete", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ExistsInTable("project_guid", "projects", "guid"), new ExistsInTable("user_guid", "users", "guid"), new HasPermission(me, project.id, EntityType.Project) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var projectTeamMember = ProjectTeamMemberRepository.FindByProjectAndUser( GetRequestStr("project_guid"), GetRequestStr("user_guid") ); projectTeamMember.Delete(); return(HttpResponse.Item( "project_team_member", new ProjectTeamMemberTransformer().Transform(projectTeamMember) )); }); }
public void Find_DataCorrect() { var user = UserFaker.Create(); var project = ProjectFaker.Create(); ProjectTeamMemberRepository.CreateAndGet(project, user); var teamMember = ProjectTeamMemberRepository.FindByProjectAndUser(project.guid, user.guid); Assert.AreEqual(teamMember.project_id, project.id); Assert.AreEqual(teamMember.user_id, user.id); }