package
0.0.0-20241226194405-aa180ae67e86
Repository: https://github.com/calebq42/darkstorm-server.git
Documentation: pkg.go.dev

# README

Blog module

A simple blog module for darkstorm-backend.

Requests

Author info

Get author info

GET /author/{authorID}

{
  id: "authorID",
  name: "author name",
  about: "about",
  picurl: "picture URL"
}

Update author info

POST /author/{authorID}

Must have a auth token for a user with the "blog": "admin" permission.

{
  name: "author name",
  about: "about",
  picurl: "picture url"
}

Add Author info

POST /author

Must have a auth token for a user with the "blog": "admin" permission.

{
  name: "author name",
  about: "about",
  picurl: "picture URL"
}

Blog

Specific blog

GET /blog/{blogID}

Return:

{
  id: "blogID",
  staticPage: false, // static pages don't show up alongside other blog pages.
  createTime: 0, // creation time in Unix format
  updateTime: 0, // last update time in Unix format
  author: "authorID",
  favicon: "favicon url",
  title: "blog title",
  blog: "blog", // blog will have been converted to HTML
}

Create blog

Request:

POST /blog

Must have a auth token for a user with the "blog": "admin" permission.

{
  favicon: "favicon url",
  title: "blog title",
  blog: "blog", // blog will have been converted to HTML
}

Return:

{
  id: "blogID"
}

Update blog

Request:

POST /blog/{blogID}

Must have a auth token for a user with the "blog": "admin" permission.

{
  favicon: "new icon",
  title: "new title",
  blog: "new blog content"
}

Latest blogs

GET /blog?page=0

Will return up to 5 blogs. page query is optional (implies 0 if not set).

Return:

{
  num: 1, // Number of returned results, returns up to 5 results
  blogs: [
    {
      id: "blogID",
      createTime: 0, // creation time in Unix format
      updateTime: 0, // last update time in Unix format
      author: "authorID",
      favicon: "favicon url",
      title: "blog title",
      blog: "blog", // blog will have been converted to HTML
    }
    ...
  ]
}

Blog List

GET /blog/list?page=0

Will return up to 50 IDs. page query is optional (implies 0 if not set).

Return:

{
  num: 1, // Number of returned results, returns up to 50 results
  blogList: [
    {
      id: "blogID",
      createTime: 0, // Unix format
    },
    {
      id: "blogID",
      createTime: 0, // Unix format
    },
    ...
  ]
}

Portfolio

Get Projects

GET: /portfolio?lang=go

Return:

[
  {
    title: "Darkstorm Server",
    order: 0,
    repository: "https://github.com/CalebQ42/darkstorm-server",
    description: "The backend that runs runs my website and APIs",
    technologies: [ // May be empty
      "MongoDB",
      "RESTful API"
    ],
    language: [
      {
        language: "go",
        dates: "September 2021"
      }
    ]
  }
]