mirror of
https://forgejo.merr.is/annika/isl-api.git
synced 2025-12-13 07:06:39 -05:00
Added JWT Auth
Wrote my own JWT auth middleware, since I could not get the go-chi middleware to accept a JWKS instead of a certificate.
This commit is contained in:
parent
ac18b94a86
commit
b5ea01729b
12 changed files with 336 additions and 132 deletions
93
services/PowerItemService.go
Normal file
93
services/PowerItemService.go
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"forgejo.merr.is/annika/isl-api/entities"
|
||||
"forgejo.merr.is/annika/isl-api/sql/powerItem"
|
||||
"github.com/jackc/pgtype"
|
||||
)
|
||||
|
||||
type PowerItemService struct {
|
||||
querier *powerItem.DBQuerier
|
||||
context context.Context
|
||||
}
|
||||
|
||||
func NewPowerItemService(querier *powerItem.DBQuerier) *PowerItemService {
|
||||
return &PowerItemService{
|
||||
querier: querier,
|
||||
context: context.Background(),
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PowerItemService) GetAll() ([]entities.PowerItem, error) {
|
||||
rows, err := p.querier.GetAllItems(p.context)
|
||||
if err != nil {
|
||||
return []entities.PowerItem{}, err
|
||||
}
|
||||
var powerItems []entities.PowerItem
|
||||
for _, sqlItem := range rows {
|
||||
powerItems = append(powerItems, entities.FromGetAllItemsRow(sqlItem))
|
||||
}
|
||||
return powerItems, nil
|
||||
}
|
||||
|
||||
func (p *PowerItemService) GetAllByType(itemType int) ([]entities.PowerItem, error) {
|
||||
rows, err := p.querier.GetAllByType(p.context, int32(itemType))
|
||||
if err != nil {
|
||||
return []entities.PowerItem{}, err
|
||||
}
|
||||
var powerItems []entities.PowerItem
|
||||
for _, sqlItem := range rows {
|
||||
powerItems = append(powerItems, entities.FromGetAllItemsByTypeRow(sqlItem))
|
||||
}
|
||||
return powerItems, nil
|
||||
}
|
||||
|
||||
func (p *PowerItemService) Add(newItem entities.PowerItem) (entities.PowerItem, error) {
|
||||
sqlItem := powerItem.AddNewItemWithIDParams{
|
||||
ID: newItem.ID,
|
||||
ItemType: newItem.ItemType,
|
||||
IconUrl: newItem.IconURL,
|
||||
ItemName: newItem.ItemName,
|
||||
MinItemPower: newItem.MinItemPower,
|
||||
MaxItemPower: newItem.MaxItemPower,
|
||||
Rarity: newItem.Rarity,
|
||||
Origin: newItem.Origin,
|
||||
Tooltip: newItem.Tooltip,
|
||||
IsEventItem: newItem.IsEventItem,
|
||||
}
|
||||
row, err := p.querier.AddNewItemWithID(p.context, powerItem.AddNewItemWithIDParams(sqlItem))
|
||||
if err != nil {
|
||||
return entities.PowerItem{}, err
|
||||
}
|
||||
return entities.FromAddNewItemWithIDParams(row), nil
|
||||
}
|
||||
|
||||
func (p *PowerItemService) AddMultipile(newItems map[string]entities.PowerItem, itemType int32) ([]entities.PowerItem, []error) {
|
||||
var errors []error
|
||||
var addedItems []entities.PowerItem
|
||||
for key, value := range newItems {
|
||||
id := pgtype.UUID{}
|
||||
id.Set(key)
|
||||
newItem := powerItem.AddNewItemWithIDParams{
|
||||
ID: id,
|
||||
ItemType: itemType,
|
||||
IconUrl: value.IconURL,
|
||||
ItemName: value.ItemName,
|
||||
MinItemPower: value.MinItemPower,
|
||||
MaxItemPower: value.MaxItemPower,
|
||||
Rarity: value.Rarity,
|
||||
Origin: value.Origin,
|
||||
Tooltip: value.Tooltip,
|
||||
IsEventItem: value.IsEventItem,
|
||||
}
|
||||
row, err := p.querier.AddNewItemWithID(p.context, powerItem.AddNewItemWithIDParams(newItem))
|
||||
if err != nil {
|
||||
errors = append(errors, err)
|
||||
continue
|
||||
}
|
||||
addedItems = append(addedItems, entities.FromAddNewItemWithIDParams(row))
|
||||
}
|
||||
return addedItems, errors
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue