Code Monkey home page Code Monkey logo

webring-api's Introduction

webring-api

Queer Coded Webring API & Frontend.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

API code: SiteResource.kt
Integration Tests: SiteResourceTest.kt

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./gradlew quarkusDev

Packaging and running the application

The application can be packaged using:

./gradlew build

It produces the quarkus-run.jar file in the build/quarkus-app/ directory. Be aware that it’s not an über-jar as the dependencies are copied into the build/quarkus-app/lib/ directory.

The application is now runnable using java -jar build/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./gradlew build -Dquarkus.package.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar build/*-runner.jar.

Creating a native executable

You can create a native executable using:

./gradlew build -Dquarkus.package.type=native

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./gradlew build -Dquarkus.package.type=native -Dquarkus.native.container-build=true

You can then execute your native executable with: ./build/webring-api-1.0.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/gradle-tooling.

API Documentation

Env vars

# Dev
export WEBRING_API_TOKEN=ADMIN_TOKEN_CHANGE_ME
export WEBRING_API_URL=http://127.0.0.1:8080

# Prod
export WEBRING_API_TOKEN=...
export WEBRING_API_URL=https://webring.queercoded.dev

List sites

curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/all | jq

List all disabled sites

curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/disabled | jq

List all dead end sites

curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/all-dead-end | jq

List all sites including disabled & dead ends

curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/all-plus-disabled | jq

Create site

export SITE_DATA=$(cat << EOF
{
	"name": "Queer Coded",
	"domain": "queercoded.dev",
	"https": true,
	"author": "Queer Coded Staff",
	"path": "/",
	"disable_checks": false,
	"enabled": true
}
EOF
)

curl -X POST \
-H \
"Content-Type: application/json" \
--data ${SITE_DATA} \
-H \
"Authorization: Bearer ${WEBRING_API_TOKEN}" \
-v -k ${WEBRING_API_URL}/sites/ --raw

Update site

export SITE_ID=1
export SITE_DATA=$(cat << EOF
{
	"disable_checks": true
}
EOF
)

curl -X PUT \
-H \
"Content-Type: application/json" \
--data ${SITE_DATA} \
-H \
"Authorization: Bearer ${WEBRING_API_TOKEN}" \
-v -k ${WEBRING_API_URL}/sites/id/${SITE_ID}/update --raw

Enable site

export SITE_ID=1

curl -X PUT \
-H \
"Content-Type: application/json" \
-H \
"Authorization: Bearer ${WEBRING_API_TOKEN}" \
-v -k ${WEBRING_API_URL}/sites/id/${SITE_ID}/enable --raw

Disable site

export SITE_ID=1

curl -X PUT \
-H \
"Content-Type: application/json" \
-H \
"Authorization: Bearer ${WEBRING_API_TOKEN}" \
-v -k ${WEBRING_API_URL}/sites/id/${SITE_ID}/disable --raw

Delete site

export SITE_ID=1

curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/id/${SITE_ID} --raw

Force recheck sites

curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Bearer ${WEBRING_API_TOKEN}" -v -k ${WEBRING_API_URL}/sites/force-recheck --raw

webring-api's People

Contributors

diademiemi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.