private SCMFileChangeFilters loadStore(ID projectId) { return securityService.asAdmin(() -> { // Loads the project Project project = structureService.getProject(projectId); // Loads the store SCMFileChangeFilters config = entityDataService.retrieve( project, SCMFileChangeFilters.class.getName(), SCMFileChangeFilters.class ); if (config == null) config = SCMFileChangeFilters.create(); return config; }); }
/** * Deletes a change log file filter */ @RequestMapping(value = "changeLog/fileFilter/{projectId}/{name}/delete", method = RequestMethod.DELETE) public Ack deleteChangeLogFileFilter(@PathVariable ID projectId, @PathVariable String name) { securityService.checkProjectFunction(projectId.get(), ProjectConfig.class); securityService.asAdmin(() -> entityDataService.withData( structureService.getProject(projectId), SCMFileChangeFilters.class.getName(), SCMFileChangeFilters.class, (SCMFileChangeFilters filters) -> filters.remove(name) ) ); return Ack.OK; }
/** * Adding a change log file filter */ @RequestMapping(value = "changeLog/fileFilter/{projectId}/create", method = RequestMethod.POST) public Resource<SCMFileChangeFilter> createChangeLogFileFilter(@PathVariable ID projectId, @RequestBody SCMFileChangeFilter filter) { securityService.checkProjectFunction(projectId.get(), ProjectConfig.class); return securityService.asAdmin(() -> { // Loads the project Project project = structureService.getProject(projectId); // Gets the store SCMFileChangeFilters config = entityDataService.retrieve( project, SCMFileChangeFilters.class.getName(), SCMFileChangeFilters.class ); if (config == null) config = SCMFileChangeFilters.create(); // Updates the store config = config.save(filter); // Saves the store back entityDataService.store(project, SCMFileChangeFilters.class.getName(), config); // OK return getChangeLogFileFilter(projectId, filter.getName()); }); }
@Override public GraphQLObjectType createType(GQLTypeCache cache) { return newObject() .name(AUTHORIZED_PROJECT) .field( newFieldDefinition() .name("role") .description("Role for the project") .type(new GraphQLNonNull(projectRole.getTypeRef())) .dataFetcher(fetcher(ProjectRoleAssociation.class, ProjectRoleAssociation::getProjectRole)) .build() ) .field( newFieldDefinition() .name("project") .description("Authorized project") .type(new GraphQLNonNull(new GraphQLTypeReference(GQLTypeProject.PROJECT))) .dataFetcher(fetcher( ProjectRoleAssociation.class, pra -> structureService.getProject(ID.of(pra.getProjectId())) )) .build() ) .build(); }