MCPcopy
hub / github.com/ory/hydra / GetDeviceCodeSessionByRequestID

Method GetDeviceCodeSessionByRequestID

persistence/sql/persister_device.go:240–264  ·  view source on GitHub ↗

GetDeviceCodeSessionByRequestID returns a device code session from the database. Implements FositeStorer.

(ctx context.Context, requestID string, session fosite.Session)

Source from the content-addressed store, hash-verified

238
239// GetDeviceCodeSessionByRequestID returns a device code session from the database. Implements FositeStorer.
240func (p *Persister) GetDeviceCodeSessionByRequestID(ctx context.Context, requestID string, session fosite.Session) (_ fosite.DeviceRequester, deviceCodeSignature string, err error) {
241 ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.GetDeviceCodeSessionByRequestID")
242 defer otelx.End(span, &err)
243
244 r := DeviceRequestSQL{}
245 if err = p.QueryWithNetwork(ctx).Where("request_id = ?", requestID).First(&r); errors.Is(err, sql.ErrNoRows) {
246 return nil, "", errors.WithStack(fosite.ErrNotFound)
247 } else if err != nil {
248 return nil, "", sqlcon.HandleError(err)
249 }
250
251 if !r.DeviceCodeActive {
252 fr, err := r.toRequest(ctx, session, p)
253 if err != nil {
254 return nil, "", err
255 }
256 return fr, r.ID, errors.WithStack(fosite.ErrInactiveToken)
257 }
258
259 fr, err := r.toRequest(ctx, session, p)
260 if err != nil {
261 return nil, "", err
262 }
263 return fr, r.ID, nil
264}
265
266// UpdateDeviceCodeSessionBySignature updates a device code session by the device_code signature. Implements FositeStorer.
267func (p *Persister) UpdateDeviceCodeSessionBySignature(ctx context.Context, signature string, requester fosite.DeviceRequester) (err error) {

Callers

nothing calls this directly

Implementers 1

BasePersisterpersistence/sql/persister.go

Calls 4

toRequestMethod · 0.95
QueryWithNetworkMethod · 0.80
TracerMethod · 0.65
IsMethod · 0.45

Tested by

no test coverage detected