CWL spec -> CWL standards
[arvados.git] / lib / controller / localdb / conn.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package localdb
6
7 import (
8         "context"
9
10         "git.arvados.org/arvados.git/lib/controller/railsproxy"
11         "git.arvados.org/arvados.git/lib/controller/rpc"
12         "git.arvados.org/arvados.git/sdk/go/arvados"
13 )
14
15 type railsProxy = rpc.Conn
16
17 type Conn struct {
18         cluster     *arvados.Cluster
19         *railsProxy // handles API methods that aren't defined on Conn itself
20         loginController
21 }
22
23 func NewConn(cluster *arvados.Cluster) *Conn {
24         railsProxy := railsproxy.NewConn(cluster)
25         return &Conn{
26                 cluster:         cluster,
27                 railsProxy:      railsProxy,
28                 loginController: chooseLoginController(cluster, railsProxy),
29         }
30 }
31
32 func (conn *Conn) Logout(ctx context.Context, opts arvados.LogoutOptions) (arvados.LogoutResponse, error) {
33         return conn.loginController.Logout(ctx, opts)
34 }
35
36 func (conn *Conn) Login(ctx context.Context, opts arvados.LoginOptions) (arvados.LoginResponse, error) {
37         return conn.loginController.Login(ctx, opts)
38 }
39
40 func (conn *Conn) UserAuthenticate(ctx context.Context, opts arvados.UserAuthenticateOptions) (arvados.APIClientAuthorization, error) {
41         return conn.loginController.UserAuthenticate(ctx, opts)
42 }