Search in sources :

Example 6 with Person

use of io.swagger.v3.core.oas.models.Person in project swagger-parser by swagger-api.

the class OpenAPIDeserializerTest method testDefinitions.

@Test
public void testDefinitions() {
    String yaml = "openapi: 3.0.0\n" + "servers: []\n" + "info:\n" + "  version: ''\n" + "  title: ''\n" + "paths: {}\n" + "components:\n" + "  schemas:\n" + "    invalid: true\n" + "    Person:\n" + "      required:\n" + "        - id\n" + "        - name\n" + "      properties:\n" + "        id:\n" + "          type: integer\n" + "          format: int64\n" + "        name:\n" + "          type: string";
    OpenAPIV3Parser parser = new OpenAPIV3Parser();
    SwaggerParseResult result = parser.readContents(yaml, null, null);
    List<String> messageList = result.getMessages();
    Set<String> messages = new HashSet<>(messageList);
    assertTrue(messages.contains("attribute components.schemas.invalid is not of type `object`"));
    assertTrue(result.getOpenAPI().getComponents().getSchemas().get("Person") instanceof Schema);
    List<String> required = ((Schema) result.getOpenAPI().getComponents().getSchemas().get("Person")).getRequired();
    Set<String> requiredKeys = new HashSet<String>(required);
    assertTrue(requiredKeys.contains("id"));
    assertTrue(requiredKeys.contains("name"));
    assertTrue(requiredKeys.size() == 2);
}
Also used : DateSchema(io.swagger.v3.oas.models.media.DateSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) DateTimeSchema(io.swagger.v3.oas.models.media.DateTimeSchema) ByteArraySchema(io.swagger.v3.oas.models.media.ByteArraySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) StringSchema(io.swagger.v3.oas.models.media.StringSchema) ObjectSchema(io.swagger.v3.oas.models.media.ObjectSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) MapSchema(io.swagger.v3.oas.models.media.MapSchema) BinarySchema(io.swagger.v3.oas.models.media.BinarySchema) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPIV3Parser(io.swagger.v3.parser.OpenAPIV3Parser) HashSet(java.util.HashSet) Test(org.testng.annotations.Test)

Example 7 with Person

use of io.swagger.v3.core.oas.models.Person in project oxTrust by GluuFederation.

the class PeopleWebResource method createPerson.

@POST
@Operation(summary = "Add person", description = "Add a person")
@ApiResponses(value = { @ApiResponse(responseCode = "201", content = @Content(schema = @Schema(implementation = GluuPersonApi.class)), description = "Success"), @ApiResponse(responseCode = "500", description = "Server error") })
@ProtectedApi(scopes = { WRITE_ACCESS })
public Response createPerson(GluuPersonApi person) {
    log(logger, "Adding person " + person.getDisplayName());
    try {
        Objects.requireNonNull(person, "Attempt to create null person");
        GluuCustomPerson gluuPerson = copyAttributes(person);
        String inum = person.getInum();
        if (StringHelper.isEmpty(inum)) {
            inum = personService.generateInumForNewPerson();
        }
        gluuPerson.setDn(personService.getDnForPerson(inum));
        gluuPerson.setInum(inum);
        personService.addPerson(gluuPerson);
        return Response.status(Response.Status.CREATED).entity(convert(Arrays.asList(personService.getPersonByInum(inum))).get(0)).build();
    } catch (Exception e) {
        log(logger, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ProtectedApi(org.gluu.oxtrust.service.filter.ProtectedApi) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Example 8 with Person

use of io.swagger.v3.core.oas.models.Person in project oxTrust by GluuFederation.

the class PeopleWebResource method updatePerson.

@PUT
@Operation(summary = "Update person", description = "Update a person")
@ApiResponses(value = { @ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = GluuPersonApi.class)), description = "Success"), @ApiResponse(responseCode = "500", description = "Server error") })
@ProtectedApi(scopes = { WRITE_ACCESS })
public Response updatePerson(GluuPersonApi person) {
    String inum = person.getInum();
    log(logger, "Update group " + inum);
    try {
        Objects.requireNonNull(inum, "inum should not be null");
        Objects.requireNonNull(person, "Attempt to update null person");
        GluuCustomPerson existingPerson = personService.getPersonByInum(inum);
        if (existingPerson != null) {
            person.setInum(existingPerson.getInum());
            person.setPassword(existingPerson.getUserPassword());
            GluuCustomPerson personToUpdate = updateValues(existingPerson, person);
            personToUpdate.setDn(personService.getDnForPerson(inum));
            personService.updatePerson(personToUpdate);
            return Response.ok(convert(Arrays.asList(personService.getPersonByInum(inum))).get(0)).build();
        } else {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    } catch (Exception e) {
        log(logger, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ProtectedApi(org.gluu.oxtrust.service.filter.ProtectedApi) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Example 9 with Person

use of io.swagger.v3.core.oas.models.Person in project oxTrust by GluuFederation.

the class GroupWebResource method addGroupMember.

@POST
@Operation(summary = "Add group member", description = "Add group member")
@ApiResponses(value = { @ApiResponse(responseCode = "200", content = @Content(schema = @Schema(implementation = GluuGroupApi[].class)), description = "Success"), @ApiResponse(responseCode = "500", description = "Server error") })
@Path(ApiConstants.INUM_PARAM_PATH + ApiConstants.GROUP_MEMBERS + ApiConstants.MEMBER_INUM_PARAM_PATH)
@ProtectedApi(scopes = { WRITE_ACCESS })
public Response addGroupMember(@PathParam(ApiConstants.INUM) @NotNull String groupInum, @PathParam(ApiConstants.MEMBER_INUM) @NotNull String memberInum) {
    log("Add member " + memberInum + " to group" + groupInum);
    try {
        Objects.requireNonNull(groupInum, "Group's inum should not be null");
        Objects.requireNonNull(memberInum, "Member's inum should not be null");
        GluuGroup group = groupService.getGroupByInum(groupInum);
        GluuCustomPerson person = personService.getPersonByInum(memberInum);
        if (group != null && person != null) {
            List<String> members = new ArrayList<String>();
            if (group.getMembers() != null) {
                members = group.getMembers();
            }
            members.add(personService.getDnForPerson(person.getInum()));
            group.setMembers(members);
            groupService.updateGroup(group);
            return Response.ok(Response.Status.OK).build();
        } else {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    } catch (Exception e) {
        log(logger, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ArrayList(java.util.ArrayList) GluuGroup(org.gluu.oxtrust.model.GluuGroup) ProtectedApi(org.gluu.oxtrust.service.filter.ProtectedApi) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Example 10 with Person

use of io.swagger.v3.core.oas.models.Person in project oxTrust by GluuFederation.

the class GroupWebResource method removeGroupMember.

@DELETE
@Operation(summary = "Remove group member", description = "Remove a member from group")
@ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Success"), @ApiResponse(responseCode = "500", description = "Server error") })
@Path(ApiConstants.INUM_PARAM_PATH + ApiConstants.GROUP_MEMBERS + ApiConstants.MEMBER_INUM_PARAM_PATH)
@ProtectedApi(scopes = { WRITE_ACCESS })
public Response removeGroupMember(@PathParam(ApiConstants.INUM) @NotNull String groupInum, @PathParam(ApiConstants.MEMBER_INUM) @NotNull String memberInum) {
    log("Remove member " + memberInum + " from group" + groupInum);
    try {
        Objects.requireNonNull(groupInum, "Group's inum should not be null");
        Objects.requireNonNull(memberInum, "Member's inum should not be null");
        GluuGroup group = groupService.getGroupByInum(groupInum);
        GluuCustomPerson person = personService.getPersonByInum(memberInum);
        if (group != null && person != null) {
            List<String> members = new ArrayList<String>(group.getMembers());
            members.remove(personService.getDnForPerson(person.getInum()));
            group.setMembers(members);
            groupService.updateGroup(group);
            return Response.ok(Response.Status.OK).build();
        } else {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    } catch (Exception e) {
        log(logger, e);
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}
Also used : GluuCustomPerson(org.gluu.oxtrust.model.GluuCustomPerson) ArrayList(java.util.ArrayList) GluuGroup(org.gluu.oxtrust.model.GluuGroup) ProtectedApi(org.gluu.oxtrust.service.filter.ProtectedApi) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponses(io.swagger.v3.oas.annotations.responses.ApiResponses)

Aggregations

IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)6 Schema (io.swagger.v3.oas.models.media.Schema)6 StringSchema (io.swagger.v3.oas.models.media.StringSchema)6 Test (org.testng.annotations.Test)6 Operation (io.swagger.v3.oas.annotations.Operation)5 ApiResponses (io.swagger.v3.oas.annotations.responses.ApiResponses)5 GluuCustomPerson (org.gluu.oxtrust.model.GluuCustomPerson)4 ProtectedApi (org.gluu.oxtrust.service.filter.ProtectedApi)4 Person (io.swagger.v3.core.oas.models.Person)3 OpenAPI (io.swagger.v3.oas.models.OpenAPI)3 Operation (io.swagger.v3.oas.models.Operation)3 PathItem (io.swagger.v3.oas.models.PathItem)3 Contact (io.swagger.v3.oas.models.info.Contact)3 Info (io.swagger.v3.oas.models.info.Info)3 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)3 Parameter (io.swagger.v3.oas.models.parameters.Parameter)3 Server (io.swagger.v3.oas.models.servers.Server)3 BinarySchema (io.swagger.v3.oas.models.media.BinarySchema)2 ByteArraySchema (io.swagger.v3.oas.models.media.ByteArraySchema)2 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)2