Skip to content
Snippets Groups Projects
Select Git revision
  • 422437b9ece0c86840e51321585882c0c47efc0c
  • test default protected
  • master protected
  • feat/custom-css
  • feat/redesign-improvements-10
  • feat/redesign-improvements-8
  • feat/redesign-fixes-3
  • feat/pirstan-changes
  • feat/separate-import-thread
  • feat/dary-improvements
  • features/add-pdf-page
  • features/add-typed-table
  • features/fix-broken-calendar-categories
  • features/add-embed-to-articles
  • features/create-mastodon-feed-block
  • features/add-custom-numbering-for-candidates
  • features/add-timeline
  • features/create-wordcloud-from-article-page
  • features/create-collapsible-extra-legal-info
  • features/extend-hero-banner
  • features/add-link-to-images
21 results

0011_donateprojectpage_form_preselected.py

Blame
  • octopus.go 1.47 KiB
    package octopus
    
    import (
        "os"
        "fmt"
        "log"
        "errors"
        "context"
        "github.com/google/uuid"
        "github.com/machinebox/graphql"
    )
    
    func ProfilePhoto (id string) (string, error) {
        var keyname string
        var response struct {
           AllPeople struct {
               Edges []struct {
                   Node struct {
                       ProfilePhoto string `json:"profilePhoto"`
                   }                       `json:"node"`
               }                           `json:"edges"`
           }                               `json:"allPeople"`
        }
    
        if _, err := uuid.Parse(id); err == nil {
            keyname = "keycloakId"
        } else {
            keyname = "username"
        }
    
        // GraphAPI klient
        octopus := graphql.NewClient(os.Getenv("OCTOPUS"))
        if os.Getenv("DEBUG") != "" {
            octopus.Log = func(s string) { log.Println(s) }
        }
    
        // Request
        req := graphql.NewRequest(fmt.Sprintf(
        `query profilePhoto($username: String!) {
            allPeople(filters: {%s: {iExact: $username}}) {
                edges { node { profilePhoto } }
            }}
        `, keyname ))
    
        req.Var("username", id)
    
    // define a Context for the request
        ctx := context.Background()
    
    // run it and capture the response
        if err := octopus.Run(ctx, req, &response); err != nil {
            log.Fatal(err)
        }
    
        if people := response.AllPeople.Edges; len(people) == 1 {
            return people[0].Node.ProfilePhoto, nil
        } else {
            return "", errors.New("User not found")
        }
    }