►
From YouTube: Magento GraphQL Community Meeting, 23 August 2018
Description
Agenda:
1) [Mutations] Cart Operations → Coupons #64 (@Yaroslav Rogoza)
2) New API "Quote Id ← → Masked Quote Id" interfaces (@Yaroslav Rogoza)
3) Clarification about Add to Shopping Cart Mutations (@roma-glushko)
4) Code coverage by API-functional tests (@tkhamlai)
GraphQL Community Project Wiki: https://github.com/magento/graphql-ce/wiki
Mind Map: https://www.mindmeister.com/1094880388?t=a5LVAQ71Vq
Backlog (with Zenhub): https://github.com/magento/graphql-ce#boards?repos=128075669&showPRs=false
Backlog (without Zenhub): https://github.com/magento/graphql-ce/issues
Zenhub Chrome Add-on: https://chrome.google.com/webstore/detail/zenhub-for-github/ogcgkffhplmphkaahpmffcafajaocjbd
B
Yeah,
so
the
task
is
related
to
the
current
issue,
so
the
main
idea
of
the
task
is
providing
a
possibility
to
apply
coupons
to
the
shopping
cart
and
we
have
created
this
flow
already.
So
we
have
added
an
additional
mutation
to
our
code
graph,
QL
module,
and
this
mutation
allows
to
apply
coupons
to
the
existing
shopping
cart
for
for
luggage
in
customers,
as
well
as
for
guest
users.
So
as
an
example
we
have
so
that's,
I
I
will
describe
the
process
a
little
bit
within
the
scope
of
shopping
cart
operations.
We
worked.
B
We
decided
to
work
with
hashed
card
ID,
so
not
with
the
real
cart
ID,
it's
not
with
the
integer,
but
with
the
hashed
value.
We
have
the
similar
flow
in
the
rest
api,
but
in
the
rest,
api
we
work
with
with
the
hashed
IDs
only
in
case
of
guest
users,
but
within
the
scope
of
graph
QL.
We
work
with
hashed
ID
for
both
118
customers
and
gas
customers.
B
So
we
decided
to
go
this
way
because
it's
more
transparent
for
them
like
for
the
realization,
and
so
we
can
use
the
hash
tidy,
always
fall
for
both
or
getting
end
guests,
and
we
transfer
the
cart
idea
as
an
argument
and
the
coupon
code.
So
I
have
just
copied
this
value
from
the
database
to
speed
up
the
process
and,
as
you
can
see,
we
have
in
case
of
the
successful
operation.
B
We
have
response
with
the
apply
a
coupon
code,
and
if
we
try
to
apply
this
code
once
again
or
it's
another
code,
we
get
the
error
message
that
the
coupon
code
is
already
applied
to
current
shopping
cart,
and
in
this
case
we
need
to
remove
the
previous
component
and
apply
the
new
one.
And
we
have
introduced
this
operation
as
well.
This
mutation,
it
calls
from
a
coupon
from
cart.
B
So
we
asked
a
hashed
card
ID
and
it
just
removes
the
existing
coupon
code,
the
active
coupon
code
from
from
this
card,
and
if
we
try
to
apply,
for
example,
some
the
coupon
for
some
non-existent
shopping,
cart,
we'll
have
our
orders
that
this
card
does
not
exist
and
also,
if
we
try
to
apply
some
some
coupon
code
that
also
not
existing
coupon.
So
sorry,
it's
the
same
card.
B
We
need
to
remove
this
coupon
first
of
all
and
apply
some
yeah,
so
we
have
a
message:
that's
the
coupon
code
is
not
valid
for
because
we
don't
have
such
coupon
code
yeah.
That's
that's
the
first
one.
We
have
some
some
minor
adjustments
for
customer
authentication.
We
are
working
on
at
the
moment
and
I
can
jump.
If
you
have
any
question,
please
ask.
B
Yeah
so,
as
I
said
before,
we
work
always
with
hashed
ID
and
in
with
Magento
REST
API,
for
example,
we
can
retrieve
the
hashed
card
ID
only
in
case
if
we
create
an
empty
card
for
guest
customer,
but
we
don't
have
like
transparent
possibility
to
convert
the
existing
quote.
Id
the
real
quote,
ID
to
the
hashed
ID
we
need
to
perform.
B
We
need
to
work
with
database
directly
to
tree
of
the
well
you
to
create
this
value,
and
it's
not
very
handy,
and
we
decided
to
provide
an
interface
and
report
for
converting
the
real
car,
32
hashed
ID
and
vice
versa.
So
we
can.
We
have
introduced
this
to
interface
in
the
quote:
module,
so
you
can
find
it.
You
know,
so
we
have
interfaced
with
named
mast.
B
B
We
could
not
use
it
using
the
interfaces
or
some
contracts,
let's
say,
but
now
we
have
such
possibility
and
it
will
be
helpful
for
everyone
who
works
with
current
operations,
specialist
coordinate
mutations
because
we
need
to
perform
this
conversion
every
time
we
work
with
the
shopping,
cart
so
yeah,
and
that's
it
from
my
side.
Thank
you.
B
Yeah
yeah,
we
have
covered
this
logic
with
integration
tests
in
order
to
check
that
we
have
like
we
considered
all
possible
scenarios.
For
example,
if
we
pass
a
non-existing
quote
ID
or
so
so
we
just
need
to
be
sure
that
we
catch
all
exceptions
and
do
not
allow
some
database
exceptions
or
so
yeah.
That's
why
we
have
created
integration
test.
This
part
is
thank
you.
Thank
you.
A
C
C
C
Can
you
guys
please
tell
me
what
the
purpose
of
this
type
resolver
yeah,
and
should
it
work
under
the
food?
That's
probably
that's
the
main
stuff
I
need
to
implement
and
it
affect
the
are
the
tasks.
So
I
need
to
be
sure
that
I
completely
understand
have
a
comprehensive
view
of
what
we
gonna
have
in
the
end.
So
yeah
that's
great
235
was
there
was
the
component
should
be,
and
probably
it's
already
developed
somewhere
in
a
pull
request.
So
yeah,
can
you
please
clarify
that?
Basically.
D
Tap
is
over
what
does
it
allows
you
when
our
server
generates
response?
It
has
some
fields
and
type
resolver
allows
to
understand
what
exact
type,
what
exact
implementation
should
be
returned
in
response
like
graph
key
or
framework
uses
this
type
resolver
to
create
object,
basically
of
specific
type,
and
we
have
example.
C
D
Find
that
example
yeah
so
I
will
probably
send
you
a
link
to
implementation.
I,
don't
know
where
this
class
is
located
off
top
of
my
head,
but
I
just
know
that,
like
you
can
resolve
the
case,
if
you
have
interfaces
multiple
implementations,
you
need
to
implement
this
practice
over
and
you
can
just
probably
look
at
that
example,
and
it's
also
like
this
product
type,
so
most
likely
will
have
to
do
something
similar
so
that.
C
Okay,
yeah,
that
would
be
perfect,
so
this
composite
should
be
filled
out
by
the
XML
or
something
like
that.
Is
it
true
this
one
we're
talking
about.
C
C
Indeed,
and
also
the
the
second
and
probably
the
last
question,
because
it's
pretty
clear
for
me
now-
I
see
that
there
is
mutation
that
directly
related
to
simple
product
and
to
this
scope
and
also
I,
also
see
the
related
types
yeah
and
a
scheme,
a
component
that
looks
like
abstract,
like
cart,
so
we
should
have
in
my
case
two
models.
One
will
be
provide
this
point
of
extensibility
and
the
second
one
will
be
using
it
right
to
enable
integration
with
simple
product
is
the
truth.
So
we
should.
D
Actually
split
all
these
types
between
respective
modules,
so
let's
say:
if
you
have
card,
then
it
must
like
to
quote
model,
and
if
you
have
a
definition
of
simple
product,
then
it
will
most
likely
go
to
catwalk
model,
but
we
need
to
look
like
for
now.
This
is
definition,
result
look
at
multi,
Verity
and
in
scope
of
a
task.
You
should
decide
how
to
decompose
this
types
declaration
between
models.
Basically
mm-hmm.
D
D
Yeah
those
who
implemented
in
the
face
one
particular
element
was
internal
development
and
there
are
no
github
issues.
It
was
until
Nigeria
and
I'm
not
sure,
like
you'll
be
able
to
find
it,
but
I
can
just
send
you
a
link
to
a
schema.
Basically,
you
can
just
look
at
catalog
graph,
kill
module
and
it
kills
chemo
and
you
will
find
declaration
for
product
in
two
ways
and
for
everything
else
and
including
this
composite
type
resolver
for
a
product
interface,
but
I
will
add
those
things
to
the
task
itself,
as
well.
Just
for
transparency.
C
A
We're
waiting
for
the
stickers
because
it
will
be
example
for
another
like
configurable
products,
so
good,
okay.
Next,
our
topic
is
about
code
coverage
by
IP
functional
test.
Now
we
have
a
few
open
pull
requests
without
IP
functional
test.
Also,
we
already
know
just
a
few
pull
requests
without
test,
but
we
consider
it
as
that
our
functionality
should
maybe
must
be
covered
by
a
functional
test
and
Thomas
helped
us
with
this
problem.
Thomas,
hello,.
E
E
E
F
E
E
E
A
A
B
E
F
D
F
D
D
F
D
A
D
Actually
I
have
one
more
plant
so
and
raise
the
bar.
It's
currently
working
on
implementation
of
tokens,
like
retrieval
token
and
revoke
revocation
of
tokens.
He
is
but
I
had
the
call
with
him
just
like
half
an
hour
ago,
and
he
has
this,
create
customer
talk
and
implement
it
and
he's
going
to
mentor
walk
token
as
well.
So
most
likely
we
will
see
something
next
week.