Skip to content

Instantly share code, notes, and snippets.

View dmi3coder's full-sized avatar
🇩🇪
arbeite

Dmytro dmi3coder

🇩🇪
arbeite
  • Berlin, Germany
  • 08:45 (UTC +02:00)
View GitHub Profile
@dmi3coder
dmi3coder / UserResource.java
Created May 12, 2020 12:20
UserResource with login and register endpoints for Quarkus JWT auth
package tech.donau.quarkify.user;
import tech.donau.quarkify.data.User;
import tech.donau.quarkify.security.TokenService;
import javax.inject.Inject;
import javax.transaction.Transactional;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@dmi3coder
dmi3coder / ExampleResource.java
Created May 12, 2020 12:48
ExampleResource with security enabled
package tech.donau.quarkify;
import tech.donau.quarkify.data.User;
import tech.donau.quarkify.security.Roles;
import javax.annotation.security.*;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@Path("/hello")
@Produces(MediaType.APPLICATION_JSON)
entity Region {
regionName String
}
entity Country {
countryName String
}
entity Location {
streetAddress String,
postalCode String,
@dmi3coder
dmi3coder / _.java
Created May 29, 2020 08:21
Entity objects for React and Quarkus communication with Swagger
@Entity
public class JobPost extends PanacheEntity {
public String title;
public String description;
@ManyToOne
public User user;
@OneToMany
public List<JobProposal> proposals;
}
...
@dmi3coder
dmi3coder / JobPostResource.java
Last active May 31, 2020 14:08
Example of JobPostResource for React and Quarkus communication with Swagger
package net.quarkify.posts;
import net.quarkify.data.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.List;
import org.eclipse.microprofile.openapi.annotations.Operation;
@Path("/posts")
@Produces(MediaType.APPLICATION_JSON)
@dmi3coder
dmi3coder / Networking.js
Last active May 31, 2020 13:50
Example of networking class for React and Quarkus communication with Swagger
import SwaggerClient from "swagger-client";
export default class Networking {
static client = new SwaggerClient({
url: 'http://localhost:8080/openapi'
});
// TODO security
static exec = ({endpoint, attributes, data, success, failure = res => console.log('failed on api call: ' + res)}) => {
this.client.then(
client => endpoint(client)(attributes, data),
@dmi3coder
dmi3coder / App.js
Last active May 31, 2020 14:11
Example of App.js that uses Swagger endpoints
import React, {useEffect, useState} from 'react';
import './App.css';
import Networking from "./Networking";
import Job from "./Job";
function App() {
const [jobs, setJobs] = useState(null);
const [newJobContent, setNewJobContent] = useState("");
const loadJobs = () => {
Networking.exec({
@dmi3coder
dmi3coder / Job.js
Last active May 31, 2020 14:12
Example of job details using Swagger
import React, {useState} from "react";
import Networking from "./Networking";
export default function Job({job, ...props}) {
const [proposals, setProposals] = useState([]);
const [expanded, setExpanded] = useState(false);
const [newJobOfferContent, setNewJobOfferContent] = useState("");
const expandJob = (jobId) => {
if (!expanded) {
@dmi3coder
dmi3coder / UserResource.java
Last active June 5, 2020 18:48
UserResource for Quarkus React Article with security
package net.quarkify.user;
import net.quarkify.data.User;
import net.quarkify.security.TokenService;
import org.eclipse.microprofile.openapi.annotations.Operation;
import javax.annotation.security.PermitAll;
import javax.inject.Inject;
import javax.transaction.Transactional;
import javax.ws.rs.*;
@dmi3coder
dmi3coder / DownworkApplication.java
Created June 3, 2020 20:07
Example of Swagger jwt auth Application class
package net.quarkify;
import org.eclipse.microprofile.openapi.annotations.Components;
import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition;
import org.eclipse.microprofile.openapi.annotations.enums.SecuritySchemeType;
import org.eclipse.microprofile.openapi.annotations.info.Info;
import org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement;
import org.eclipse.microprofile.openapi.annotations.security.SecurityScheme;
import javax.ws.rs.core.Application;