Skip to content

Instantly share code, notes, and snippets.

View dmi3coder's full-sized avatar
🇩🇪
arbeite

Dmytro dmi3coder

🇩🇪
arbeite
  • Berlin, Germany
  • 21:12 (UTC +02:00)
View GitHub Profile
@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 / 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 / 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 / _.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;
}
...
entity Region {
regionName String
}
entity Country {
countryName String
}
entity Location {
streetAddress String,
postalCode String,
@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)
@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 / User.java
Created May 12, 2020 12:10
User Object for Quarkus JWT auth example
package tech.donau.quarkify.data;
import io.quarkus.hibernate.orm.panache.PanacheEntity;
import javax.persistence.Entity;
@Entity
public class User extends PanacheEntity {
public String login;
public String email;
public String password; // Use e.g Bcrypt to encrypt password, don't store it as plain text :)
@dmi3coder
dmi3coder / TokenService.java
Created May 12, 2020 11:55
TokenService to generate JTW Token for Quarkus Application
package tech.donau.quarkify.security;
import org.eclipse.microprofile.jwt.Claims;
import org.jboss.logmanager.Logger;
import org.jose4j.jwt.JwtClaims;
import javax.enterprise.context.RequestScoped;
import java.util.Arrays;
import java.util.UUID;
@dmi3coder
dmi3coder / Roles.java
Created May 12, 2020 11:09
Static Roles class for Quarkus JWT Example
package tech.donau.quarkify.security;
public final class Roles {
private Roles() { }
public static final String USER = "User";
public static final String SERVICE = "Service";
public static final String ADMIN = "Admin";
}